Public reference
API reference
There is no private API. The operator portal, the subscriber app and the point-of-sale tile all call the surface below.
Users
92GET /api/v1/users List subscribers
One page of subscribers under the caller's authority. A manager without tenant-wide visibility sees only subscribers owned by their own manager subtree, and that scope is injected server-side, so a filter can narrow within it but never widen past it.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users - Rate limit
user_list
The per-subscriber scan token (lookup_token) is deliberately absent from list rows. It is served by GET /users/{id} and GET /users/resolve only, because a page of a thousand rows is a bulk harvest of codes that each unlock a subscriber record.
Parameters
| Parameter | Description |
|---|---|
q
query · string
|
Searches username, email, first and last name, phone, contract id, national id and static IP. A purely numeric term also matches the subscriber id exactly. |
filter[enabled]
query · boolean
|
The admin suspend flag. Not the same thing as expired. |
filter[expired]
query · boolean
|
Subscription window has passed. |
filter[online]
query · boolean
|
An open RADIUS session exists right now. |
filter[profile_id]
query · integer
|
Bound plan. |
filter[parent_id]
query · integer
|
Owning manager. Ignored, not honoured, when it would widen a restricted caller's scope. |
filter[username_exact]
query · string
|
Case-insensitive exact username, for a caller that already knows the identity and wants one deterministic row instead of a page of substring hits. |
filter[expiring_within_days]
query · integer
|
Future expiries only. |
filter[created_from]
query · string
|
yyyy-MM-dd HH:mm:ss in UTC. A malformed value is a 400, not an ignored filter. |
{
"data": [
{
"id": 4711,
"tenant_id": 12,
"username": "ahmed",
"email": "ahmed@example.test",
"enabled": true,
"status": {
"enabled": true,
"deleted": false,
"online": true,
"expired": false,
"have_quota": true,
"fup": false,
"can_connect": true
},
"profile_id": 7,
"profile_name": "Home 20M",
"parent_id": 41,
"parent_username": "cairo-reseller",
"bytes_remaining": 48318382080,
"plan_bytes_limit": 107374182400,
"used_bytes": 59055800320,
"expiration": "2026-10-14 00:00:00",
"balance": 0.00,
"debt": 0.00,
"mac_lock_enabled": false,
"mac_locked_addrs": [],
"enforces_bytes": true,
"enforces_seconds": false,
"created_at": "2026-03-02 11:40:12"
}
],
"meta": { "page": 1, "page_size": 50, "total": 812, "has_next": true }
}
POST /api/v1/users Create a subscriber
Creates the account and its identity only. It does not activate a plan, take money or grant quota — binding profile_id here is metadata. Use the activation endpoint for the paid part.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_createCreate users - Rate limit
t_mutate
debt_limit is tri-state and the two falsy values mean opposite things. Omitted or null is unlimited credit; 0 is no credit at all. Sending 0 to mean "no opinion" silently blocks every future debit.
Parameters
| Parameter | Description |
|---|---|
usernamerequired
body · string
|
Unique within the tenant, not globally. |
passwordrequired
body · string
|
The RADIUS password. Stored recoverable, because CHAP and MS-CHAPv2 need it that way. |
parent_id
body · integer
|
Owning manager. Defaults to the caller. A subscriber is never parent-less, and a named owner must be a manager the caller may act on. |
profile_id
body · integer
|
Plan to bind. Must be one the acting manager may actually assign. |
expiration
body · string
|
yyyy-MM-dd HH:mm:ss in UTC. |
debt_limit
body · number
|
Credit ceiling. Omitted or null is unlimited, 0 is no credit. |
portal_password
body · string
|
Optional portal-only password, hashed before storage and distinct from the RADIUS password above. |
custom_fields
body · object
|
Tenant-defined form values, validated against the user form schema. |
{
"data": {
"id": 4712,
"tenant_id": 12,
"username": "ahmed",
"enabled": true,
"profile_id": 7,
"parent_id": 41,
"balance": 0.00,
"debt": 0.00,
"created_at": "2026-09-20 09:14:55"
}
}
POST /api/v1/users/bulk-add-days Extend subscription
- Authentication
- Staff token or session
- Requires permission
-
prm_users_extendExtend subscription - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-add-hours Extend subscription
- Authentication
- Staff token or session
- Requires permission
-
prm_users_extendExtend subscription - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-add-traffic Add traffic
- Authentication
- Staff token or session
- Requires permission
-
prm_users_add_trafficAdd traffic - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-delete Delete users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_deleteDelete users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-deposit Deposit to user wallet
- Authentication
- Staff token or session
- Requires permission
-
prm_users_depositDeposit to user wallet - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-deposit/preview Deposit to user wallet
- Authentication
- Staff token or session
- Requires permission
-
prm_users_depositDeposit to user wallet - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-disable Suspend many subscribers
Takes an array of ids and suspends each. One request against the per-tenant write budget instead of one per subscriber, which is the difference between fitting in a minute and not.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_enable_disableEnable / suspend users - Rate limit
t_mutate
A bulk call reports per-id outcomes and returns 200 even when some ids failed. failed is always present, as an array, and each entry carries a stable reason (not_found, not_authorized, error) alongside a localized message. Branch on reason; treating the 200 as "all of them worked" is the mistake this shape exists to prevent.
Parameters
| Parameter | Description |
|---|---|
idsrequired
body · array
|
Subscriber ids. |
{
"data": {
"updated": [4711, 4713],
"failed": [
{ "id": 4712, "reason": "not_authorized", "message": "You may not act on this record." }
]
}
}
POST /api/v1/users/bulk-disconnect Live traffic / disconnect
- Authentication
- Staff token or session
- Requires permission
-
prm_users_live_trafficLive traffic / disconnect - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-enable Enable / suspend users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_enable_disableEnable / suspend users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-extend
- Authentication
- Staff token or session
- Requires any one of
-
prm_users_activateprm_users_extend - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-extend/preview
- Authentication
- Staff token or session
- Requires any one of
-
prm_users_activateprm_users_extend - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-reset-balance Withdraw / settle user debt
- Authentication
- Staff token or session
- Requires permission
-
prm_users_withdrawalWithdraw / settle user debt - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-reset-quota Reset user quota
- Authentication
- Staff token or session
- Requires permission
-
prm_users_reset_quotaReset user quota - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-set-expiration Extend subscription
- Authentication
- Staff token or session
- Requires permission
-
prm_users_extendExtend subscription - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-set-group Assign groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_assignAssign groups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-set-parent Change user parent
- Authentication
- Staff token or session
- Requires permission
-
prm_users_change_parentChange user parent - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-set-profile Change user profile
- Authentication
- Staff token or session
- Requires permission
-
prm_users_change_profileChange user profile - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-withdraw Withdraw / settle user debt
- Authentication
- Staff token or session
- Requires permission
-
prm_users_withdrawalWithdraw / settle user debt - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/bulk-withdraw/preview Withdraw / settle user debt
- Authentication
- Staff token or session
- Requires permission
-
prm_users_withdrawalWithdraw / settle user debt - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/owner-context Create users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_createCreate users
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/resolve Resolve a subscriber by scan code
Exchanges the opaque per-subscriber scan token, the one encoded in a printed QR code, for the subscriber record. Scoped to the caller's subtree exactly like a direct fetch.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users - Rate limit
user_resolve
Parameters
| Parameter | Description |
|---|---|
coderequired
query · string
|
The scan token. The QR payload is prefixed with xr:u: — strip the prefix before sending. |
GET /api/v1/users/summary Count subscribers by state
Fleet-health counters over exactly the same authority scope as the list, so a count and the rows behind it always agree.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
active means enabled AND not expired, not the bare enabled flag. total is every non-deleted subscriber, so the four other counters do not sum to it.
{
"data": {
"total": 812,
"active": 640,
"disabled": 44,
"online": 318,
"expired": 128
}
}
DELETE /api/v1/users/{id} Delete a subscriber
Soft-deletes the account and frees its username slot by renaming the row. The subscriber's live portal sessions are ended.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_deleteDelete users - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
GET /api/v1/users/{id} Fetch one subscriber
The full record, including the computed status object and the fields the list projection leaves out.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
A subscriber that exists but sits outside your subtree returns the same 404 as one that does not exist, byte for byte including details.reason. That is deliberate: a 403 would confirm the id and make the id space enumerable.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
{
"data": {
"id": 4711,
"tenant_id": 12,
"username": "ahmed",
"enabled": true,
"status": { "online": true, "expired": false, "have_quota": true, "can_connect": true },
"profile_id": 7,
"fup_profile_id": null,
"bytes_remaining": 48318382080,
"seconds_remaining": null,
"expiration": "2026-10-14 00:00:00",
"balance": 0.00,
"debt": 0.00,
"debt_limit": null,
"mac_lock_enabled": false,
"mac_locked_addrs": [],
"simultaneous_sessions": 1,
"allowed_services": "both",
"lookup_token": "n8Qk2vRa1pLd7WxYzB0cEf",
"custom_fields": {},
"created_at": "2026-03-02 11:40:12"
}
}
PATCH /api/v1/users/{id} Update a subscriber
Partial update. An omitted field is left alone. Three fields are separately permission-gated and are dropped silently rather than refused when the caller lacks the right: parent_id, profile_id and expiration.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_updateEdit users - Rate limit
t_mutate
A stored mac_locked_addrs list is inert until mac_lock_enabled is true. Writing the list alone locks nothing, which reads on screen like the lock silently failed. Set both.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
form_name
body · string
|
Which custom-field schema to validate custom_fields against. Defaults to the user form. |
POST /api/v1/users/{id}/activate Un-suspend a subscriber
Sets enabled back to true. This is the inverse of suspend and has nothing to do with activating a plan — that is the activation endpoint, which charges money.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_enable_disableEnable / suspend users - Rate limit
t_mutate
The name is a historical trap. This endpoint lifts a suspension and takes no money. POST /users/{id}/activation is the one that prices, charges and provisions a plan.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
POST /api/v1/users/{id}/activation Charge and provision an activation
Prices, charges and provisions in one operation. Funds are reserved first, then the plan is applied, and both halves are keyed off your request_id, so a retry after a crash re-runs neither the charge nor the grant.
- Authentication
- Staff token or session
- Requires any one of
-
prm_users_activateprm_users_extend - Rate limit
t_mutate- Idempotency key
request_id
The nested activation object is serialised with Go field names (UserID, NewSubscriptionEnd) and RFC3339 timestamps, unlike every other object on this API. Everything around it uses snake_case and yyyy-MM-dd HH:mm:ss. Do not write a parser that assumes one convention.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
request_idrequired
body · string
|
Idempotency key, up to 255 characters, no colon or pipe. Reuse the same one on every retry of one intent. |
money_collected
body · boolean
|
Defaults to true. |
card_code
body · string
|
Required when method is card. The voucher must be in the caller's subtree. |
issue_invoice
body · boolean
|
Also record an invoice document. Skipped on a replay so a retry never double-issues. |
{
"data": {
"quote": { "profile_id": 7, "required_amount": 171.00, "new_expiration": "2026-10-14 00:00:00" },
"activation": {
"UserID": 4711,
"ProfileID": 7,
"NewSubscriptionEnd": "2026-10-14T00:00:00Z",
"BytesRemaining": 107374182400,
"SecondsRemaining": -1,
"PointsAwarded": 10,
"QuotaCarried": false,
"Replay": false
},
"manager_balance": 4029.00,
"replay": false
}
}
POST /api/v1/users/{id}/activation-quote Price an activation or extension
Read-only preview of what an activation would cost and grant: unit price, VAT, the computed new expiration, the plan's quota, both wallets, reward points and whether the chosen method can cover it. Writes nothing, so it is safe to call on every keystroke of a form.
- Authentication
- Staff token or session
- Requires any one of
-
prm_users_activateprm_users_extend - Rate limit
t_mutate
A quota figure of -1 means unlimited, and 0 means none. They are not interchangeable and the difference is load-bearing on the RADIUS gate. Read uptime_seconds -1 above as "no time cap on this plan", not "no time left".
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
profile_id
body · integer
|
Plan to price. Defaults to the subscriber's current plan. |
operation
body · enum
|
activate or extend. Defaults to activate. |
method
body · enum
|
manager_balance, user_balance, reward_points or card. |
units
body · integer
|
How many periods to buy. |
user_price
body · number
|
Retail price override. Silently ignored for a caller without the price-override permission, which then falls back to the plan or pricing-tree price. |
{
"data": {
"user_id": 4711,
"username": "ahmed",
"profile_id": 7,
"profile_name": "Home 20M",
"operation": "activate",
"method": "manager_balance",
"units": 1,
"unit_price": 150.00,
"end_user_price": 180.00,
"vat_percent": 14.00,
"vat_amount": 21.00,
"required_amount": 171.00,
"price_overridden": false,
"duration_value": 30,
"duration_unit": "days",
"total_bytes": 107374182400,
"uptime_seconds": -1,
"old_expiration": "2026-09-14 00:00:00",
"new_expiration": "2026-10-14 00:00:00",
"manager_balance": 4200.00,
"manager_available": 4200.00,
"user_balance": 0.00,
"points_awarded": 10,
"can_afford": true,
"warnings": [],
"debitable": false
}
}
POST /api/v1/users/{id}/add-traffic Grant quota directly
Adds bytes and/or seconds to the subscriber's remaining period quota without pricing or charging anything, and drops the hot-path quota cache so the grant applies on the next RADIUS request.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_add_trafficAdd traffic - Rate limit
t_mutate
request_id is accepted here for your own tracing but is not enforced, because adding traffic is not naturally idempotent. Two calls add twice. Do not build a retry loop on this endpoint the way you would on deposit.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
bytes
body · integer
|
Bytes to add. At least one of bytes or seconds must be present and positive. |
seconds
body · integer
|
Seconds to add. |
POST /api/v1/users/{id}/addon-quote Sell add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_users_addonSell add-ons - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/addons Sell add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_users_addonSell add-ons - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/approve Approve pending signups
- Authentication
- Staff token or session
- Requires permission
-
prm_users_approve_signupApprove pending signups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/assign-profile Edit users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_updateEdit users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/users/{id}/bucket-order Set the bucket drain order
Replaces the subscriber's custom drain order. Every id must be one of their active buckets, except the sentinel 0, which stands for the plan's own main quota and may be placed anywhere in the sequence.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_bucketsManage quota buckets - Rate limit
t_mutate
The 0 in that array is meaningful and positional. It is the main plan quota, so stripping non-positive ids as "empty" would silently reorder the drain sequence rather than reject it.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
orderrequired
body · array
|
Bucket ids in drain order. 0 is the main quota, not a missing value. |
POST /api/v1/users/{id}/cancel-service Cancel service
- Authentication
- Staff token or session
- Requires permission
-
prm_users_cancelCancel service - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/change-parent Move a subscriber to another owner
Re-points the subscriber at a different owning manager. The destination must be a manager the caller may act on, because the owner is both the creditor on a debt and the revenue attribution. Naturally idempotent, so request_id is accepted for your own tracing but is not enforced.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_change_parentChange user parent - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
parent_idrequired
body · integer
|
The new owning manager. |
POST /api/v1/users/{id}/change-profile Change user profile
- Authentication
- Staff token or session
- Requires permission
-
prm_users_change_profileChange user profile - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/compensate Compensate users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_compensateCompensate users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/compensations/{reqId}/approve Approve/reject compensation requests
- Authentication
- Staff token or session
- Requires permission
-
prm_users_compensate_approveApprove/reject compensation requests - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/compensations/{reqId}/reject Approve/reject compensation requests
- Authentication
- Staff token or session
- Requires permission
-
prm_users_compensate_approveApprove/reject compensation requests - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/cpe-console Remote access to user's CPE (router admin UI)
- Authentication
- Staff token or session
- Requires permission
-
prm_users_remoteRemote access to user's CPE (router admin UI) - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/debt Read a subscriber's debt
Total outstanding debt across all creditors, plus the slice of it owed to the calling manager specifically, read live off the loan ledger.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
{
"data": { "total": 340.00, "owed_to_me": 120.00 }
}
POST /api/v1/users/{id}/deposit Credit a subscriber wallet
Moves money into the subscriber's wallet and writes the matching ledger line. Idempotent on request_id through a unique constraint on the ledger itself, so the charge and the record of it cannot disagree.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_depositDeposit to user wallet - Rate limit
t_mutate- Idempotency key
request_id
replay true means this exact request already happened and nothing moved this time. It is a success, and the balance shown is the one from the original operation.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
amountrequired
body · number
|
Major units, a bare JSON number. 150.50, not "150.50" and not 15050. |
request_idrequired
body · string
|
Idempotency key. |
issue_invoice
body · boolean
|
Also record an invoice document. Skipped on a replay. |
{
"data": {
"journal_id": 90412,
"balance": 250.00,
"debt": 0.00,
"replay": false
}
}
GET /api/v1/users/{id}/documents Manage user documents
- Authentication
- Staff token or session
- Requires permission
-
prm_users_documentsManage user documents
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/documents Manage user documents
- Authentication
- Staff token or session
- Requires permission
-
prm_users_documentsManage user documents - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/documents/bulk-delete Manage user documents
- Authentication
- Staff token or session
- Requires permission
-
prm_users_documentsManage user documents - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/users/{id}/documents/{docId} Manage user documents
- Authentication
- Staff token or session
- Requires permission
-
prm_users_documentsManage user documents - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/users/{id}/documents/{docId} Manage user documents
- Authentication
- Staff token or session
- Requires permission
-
prm_users_documentsManage user documents - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/documents/{docId}/download Manage user documents
- Authentication
- Staff token or session
- Requires permission
-
prm_users_documentsManage user documents
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/free-zone-traffic View free-zone traffic
- Authentication
- Staff token or session
- Requires permission
-
prm_users_freezone_trafficView free-zone traffic - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/free-zones View free-zone traffic
- Authentication
- Staff token or session
- Requires permission
-
prm_users_freezone_trafficView free-zone traffic
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/history View usage history
- Authentication
- Staff token or session
- Requires permission
-
prm_users_historyView usage history
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/invoices List one subscriber's invoices
Invoices belonging to a single subscriber, newest first.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_viewView user invoices
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
POST /api/v1/users/{id}/invoices Create an invoice for a subscriber
The per-subscriber form of issuing an invoice. Same validation and the same server-computed total; the subscriber comes from the path rather than the body.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_createCreate user invoices - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
itemsrequired
body · array
|
At least one line item. |
POST /api/v1/users/{id}/invoices/bulk-pay Edit / pay user invoices
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_editEdit / pay user invoices - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/invoices/bulk-unpay Edit / pay user invoices
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_editEdit / pay user invoices - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/users/{id}/invoices/{invoiceId} Delete an invoice
Deletes a hand-created invoice. Auto-issued documents cannot be deleted here, for the same reason they cannot be edited.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_deleteDelete user invoices - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
invoiceIdrequired
path · integer
|
Invoice id. |
GET /api/v1/users/{id}/invoices/{invoiceId} Fetch one invoice
The invoice with its line items.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_viewView user invoices
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
invoiceIdrequired
path · integer
|
Invoice id. |
PATCH /api/v1/users/{id}/invoices/{invoiceId} Edit an invoice
Edits a hand-created invoice. Auto-issued documents — activations, extensions, add-ons, deposits and withdrawals — are not editable through this path.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_editEdit / pay user invoices - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
invoiceIdrequired
path · integer
|
Invoice id. |
POST /api/v1/users/{id}/invoices/{invoiceId}/pay Mark an invoice paid
Records the invoice as settled and stamps paid_on. This is bookkeeping: it does not move money between wallets.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_editEdit / pay user invoices - Rate limit
t_mutate
Marking an invoice paid and taking a payment are different operations. This one changes a status; a deposit changes a balance. Doing one does not do the other.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
invoiceIdrequired
path · integer
|
Invoice id. |
GET /api/v1/users/{id}/invoices/{invoiceId}/render-data View user invoices
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_viewView user invoices
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/invoices/{invoiceId}/unpay Mark an invoice unpaid
Reverses the paid stamp. Again, bookkeeping only.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_invoices_editEdit / pay user invoices - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
invoiceIdrequired
path · integer
|
Invoice id. |
GET /api/v1/users/{id}/journal View users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/login-as Log in as subscriber
- Authentication
- Staff token or session
- Requires permission
-
prm_users_login_asLog in as subscriber - Rate limit
user_login_as
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/lookup-token/rotate Edit users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_updateEdit users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/parental Manage parental controls
- Authentication
- Staff token or session
- Requires permission
-
prm_users_parentalManage parental controls
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/parental/reset-pin Manage parental controls
- Authentication
- Staff token or session
- Requires permission
-
prm_users_parentalManage parental controls - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/pay-debt Withdraw / settle user debt
- Authentication
- Staff token or session
- Requires permission
-
prm_users_withdrawalWithdraw / settle user debt - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/payments View users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/quota-buckets List a subscriber's quota buckets
Separately-metered grants layered on top of the plan's own quota — add-ons, extensions, card top-ups — in the order they will be drained.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
Un-paginated: the whole list is page 1 and has_next is always false. Do not write a paging loop against it. A subscriber may hold at most 50 active buckets, and a grant that would exceed the cap is refused before any money moves.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
{
"data": [
{
"id": 331,
"source": "addon",
"label": "Night 50GB",
"priority": 10,
"bytes_granted": 53687091200,
"bytes_remaining": 41231686144,
"seconds_granted": 0,
"seconds_remaining": 0,
"activated_at": "2026-09-12 20:04:01",
"valid_until": "2026-10-12 20:04:01",
"works_when_expired": false,
"status": "active"
}
],
"meta": { "page": 1, "page_size": 1, "total": 1, "has_next": false }
}
POST /api/v1/users/{id}/quota-buckets/{bid}/cancel Manage quota buckets
- Authentication
- Staff token or session
- Requires permission
-
prm_users_bucketsManage quota buckets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/quota-history View usage history
- Authentication
- Staff token or session
- Requires permission
-
prm_users_historyView usage history
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/radius-attrs Manage user RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_users_radius_attributesManage user RADIUS attributes
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/radius-attrs Manage user RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_users_radius_attributesManage user RADIUS attributes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/radius-attrs/bulk-delete Manage user RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_users_radius_attributesManage user RADIUS attributes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/users/{id}/radius-attrs/{attrId} Manage user RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_users_radius_attributesManage user RADIUS attributes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/users/{id}/radius-attrs/{attrId} Manage user RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_users_radius_attributesManage user RADIUS attributes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/receipts View users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/redeem-points Redeem reward points
- Authentication
- Staff token or session
- Requires permission
-
prm_users_reward_pointsRedeem reward points - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/refund-activation Refund last activation
- Authentication
- Staff token or session
- Requires permission
-
prm_users_refundRefund last activation - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/rename Rename users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_renameRename users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/reset-password Edit users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_updateEdit users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/reset-quota Reset quota counters
Always zeroes the daily counters. With clear_period true it also nulls the period quota, which is the destructive form. Lifts a daily FUP throttle and kicks the live session so full speed returns immediately. An empty body is accepted and means clear_period false.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_reset_quotaReset user quota - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
clear_period
body · boolean
|
Also null the period quota counters. Defaults to false. |
reason
body · string
|
Free-text note recorded on the quota-history audit row. |
GET /api/v1/users/{id}/sessions List a subscriber's session history
Accounting history for this subscriber, newest first, paginated with the standard list parameters.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_sessions_indexView user sessions
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
filter[status]
query · string
|
Narrows to open or closed sessions. |
DELETE /api/v1/users/{id}/speed Edit users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_updateEdit users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/users/{id}/speed View users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_indexView users
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/users/{id}/speed Edit users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_updateEdit users - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/suspend Suspend a subscriber
Sets enabled to false and, when the tenant has disconnect-on-update enabled, kicks any live session so the suspension takes effect now rather than at the next re-auth.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_enable_disableEnable / suspend users - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
{
"data": {
"id": 4711,
"username": "ahmed",
"enabled": false,
"status": { "enabled": false, "can_connect": false }
}
}
GET /api/v1/users/{id}/usage-history View usage history
- Authentication
- Staff token or session
- Requires permission
-
prm_users_historyView usage history
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/users/{id}/withdraw Debit a subscriber wallet
The inverse of deposit. Refuses to take the balance below zero unless allow_negative is set.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_withdrawalWithdraw / settle user debt - Rate limit
t_mutate- Idempotency key
request_id
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Subscriber id. |
amountrequired
body · number
|
Major units. |
request_idrequired
body · string
|
Idempotency key. |
allow_negative
body · boolean
|
Permit the withdrawal to drive the balance below zero. |
Tickets
83GET /api/v1/tickets View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/assignees View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/assignment-strategies Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/blocklist Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/blocklist Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/blocklist/bulk-delete Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/blocklist/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-assign Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-category Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-close Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-priority Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-reopen Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-resolve Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-snooze Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/bulk-team Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/canned-replies Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/canned-replies Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/canned-replies/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/tickets/canned-replies/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/categories Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/categories Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/categories/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/tickets/categories/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/categories/{id}/fields Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/categories/{id}/fields Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/categories/{id}/fields/{fid} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/tickets/categories/{id}/fields/{fid} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/counts View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/form View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/macros Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/macros Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/macros/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/tickets/macros/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/sla/breaches View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/sla/calendars Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/sla/calendars Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/sla/calendars/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/tickets/sla/calendars/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/sla/policies Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/sla/policies Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/sla/policies/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/tickets/sla/policies/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/teams Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/teams Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/teams/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/tickets/teams/{id} Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/teams/{id}/members Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/tickets/teams/{id}/members Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/views View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/views View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/views/{id} View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/tickets/views/{id} View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id} View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/answers View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/assign Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/attach Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/{id}/attachments/{attId} Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/attachments/{attId} View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/auto-assign Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/block-candidates Manage ticket categories & settings
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_configManage ticket categories & settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/canned-replies Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/claim Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/events View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/internal-note Add internal notes to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_noteAdd internal notes to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/macros/{macroId}/apply Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/participants View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/participants Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/{id}/participants/{userId} Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/presence View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/presence View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/tickets/{id}/priority Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/tickets/{id}/read View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/reminders Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/reminders Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/tickets/{id}/reminders/{remId} Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/reopen Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/reply Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/resolve Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/tickets/{id}/sla View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/snooze Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/team Claim / assign support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_assignClaim / assign support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/tickets/{id}/unsnooze Reply to support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_replyReply to support tickets - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
NAS
69GET /api/v1/admin/nas List NAS devices
Every NAS registered to the caller's tenant, with its reachability cache and the count of sessions currently on it.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
Un-paginated, and there is no meta block at all. Do not write a paging loop against it. ping_status is a cached verdict from the background sweep, not a probe performed by your request — it is 'unknown' until the first sweep classifies the device.
{
"data": [
{
"id": 3,
"tenant_id": 12,
"nas_identifier": "cairo-edge-1",
"nas_ip": "10.20.0.1",
"description": "Nasr City edge",
"vendor": "mikrotik",
"model": "CCR2004",
"coa_port": 3799,
"ssh_port": 22,
"winbox_port": 8291,
"ip_accounting_enabled": true,
"ping_status": "up",
"last_ping_at": "2026-09-20 09:07:30",
"last_rtt_ms": 4.2,
"online_users": 118,
"ping_fail_count": 0,
"wg_enabled": true,
"tunnel_transport": "wireguard",
"active_tunnel_ip": "10.8.0.14",
"zerologin_enabled": true,
"needs_onboarding": false,
"created_at": "2026-04-11 10:02:00"
}
]
}
POST /api/v1/admin/nas Register a NAS
Creates the device record and its RADIUS shared secret. At least one of nas_identifier, nas_ip and called_station_id must be present — that is what an incoming RADIUS packet will be matched on.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_createAdd NAS - Rate limit
t_mutate
A 409 here can be caused by a device belonging to a tenant you cannot see. The three identity columns are globally unique because RADIUS resolves on the bare key before any tenant is known, so "already taken" does not mean "already in your list".
Parameters
| Parameter | Description |
|---|---|
shared_secretrequired
body · string
|
The RADIUS shared secret. Required. |
nas_identifier
body · string
|
NAS-Identifier. Unique across the whole platform. |
nas_ip
body · string
|
NAS-IP-Address. Unique across the whole platform. |
called_station_id
body · string
|
Called-Station-Id. Unique across the whole platform. |
vendor
body · string
|
Device vendor. Validated against the known-vendor catalogue. |
coa_port
body · integer
|
RFC 5176 port. Omit for the schema default of 3799. |
ip_accounting_enabled
body · boolean
|
Defaults to true when omitted. An explicit false is honoured. |
POST /api/v1/admin/nas/bulk-apply-hotspot Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/bulk-apply-parental Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/bulk-delete Delete NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_deleteDelete NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/bulk-enable-zerologin Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/catalog List supported NAS vendors and models
The vendor and model catalogue the create and update endpoints validate against. Static data, safe to cache.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
GET /api/v1/admin/nas/device-groups View LAN devices
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_devices_indexView LAN devices
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/device-groups Manage LAN device groups & manager access
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_device_groupsManage LAN device groups & manager access - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/device-groups/bulk-delete Manage LAN device groups & manager access
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_device_groupsManage LAN device groups & manager access - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/nas/device-groups/{id} Manage LAN device groups & manager access
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_device_groupsManage LAN device groups & manager access - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/nas/device-groups/{id} Manage LAN device groups & manager access
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_device_groupsManage LAN device groups & manager access - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/device-groups/{id}/managers Manage LAN device groups & manager access
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_device_groupsManage LAN device groups & manager access
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/nas/device-groups/{id}/managers Manage LAN device groups & manager access
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_device_groupsManage LAN device groups & manager access - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/devices View LAN devices
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_devices_indexView LAN devices
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/devices/bulk-delete Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/devices/bulk-group Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/nas/devices/{id} Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/nas/devices/{id} Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/devices/{id}/console Remote console to a LAN device
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_devices_remoteRemote console to a LAN device - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/management-credentials/bulk-delete Delete NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_deleteDelete NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/nas/management-credentials/{id} Delete NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_deleteDelete NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/management-credentials/{id} View NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/management-credentials/{id}/rotate Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/onboard Add NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_createAdd NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/ping Ping every NAS
Probes all of the tenant's devices from the platform and reports reachability. An operator action.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS - Rate limit
t_probe
On the per-tenant probe budget — 10 a minute on a standard licence, shared with every other probe endpoint. For continuous reachability, read ping_status off the NAS list instead: the background sweep maintains it for free.
GET /api/v1/admin/nas/vpn/peers
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/vpn/peers/bulk-delete
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/vpn/peers/bulk-reassign All VPN accounts (tenant-wide, incl. reassign)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpn_peers_allAll VPN accounts (tenant-wide, incl. reassign) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/nas/vpn/peers/{peerID}
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/vpn/peers/{peerID}/credentials
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/vpn/peers/{peerID}/history
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/vpn/peers/{peerID}/reassign All VPN accounts (tenant-wide, incl. reassign)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpn_peers_allAll VPN accounts (tenant-wide, incl. reassign) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/vpn/peers/{peerID}/rotate
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/vpn/servers
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/nas/{id} Delete a NAS
Removes the device record. Sessions already open on it are not affected.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_deleteDelete NAS - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
NAS id. |
GET /api/v1/admin/nas/{id} Fetch one NAS
The full device record, including tunnel and operator-VPN configuration.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
Read tunnel_transport to decide how to render a device, never "whichever tunnel IP is non-null". A NAS keeps its standby allocations after switching transport, so more than one of wg_tunnel_ip, ovpn_tunnel_ip and sstp_tunnel_ip is set on any device that ever changed. active_tunnel_ip is the database's own resolution of that question.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
NAS id. |
PATCH /api/v1/admin/nas/{id} Update a NAS
Partial update; an omitted field is left alone. The shared secret is not editable here — rotating it has its own endpoint, because it must be pushed to the device in step with the change.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
NAS id. |
POST /api/v1/admin/nas/{id}/apply-hotspot Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/apply-parental Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/console Remote console (WebFig/SSH/Winbox) to a NAS router
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_remoteRemote console (WebFig/SSH/Winbox) to a NAS router - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/devices List devices behind a NAS
Customer-premises and infrastructure devices discovered or registered under this NAS, as the monitoring and topology views see them.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_devices_indexView LAN devices
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
NAS id. |
POST /api/v1/admin/nas/{id}/devices Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/enable-zerologin Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/hotspot-preflight View NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/management-credentials View NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/management-credentials Add NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_createAdd NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/management-script Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/onboarding-script Render the onboarding script for a NAS
Returns the RouterOS script that configures the device to talk to this platform: RADIUS client, accounting, the management tunnel and the captive portal redirect. Rendered for this specific device.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS
The script contains the device's shared secret and tunnel credentials in the clear, because the router needs them. Treat the response as a secret, and do not log it.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
NAS id. |
GET /api/v1/admin/nas/{id}/parental-script View NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/ping-history View NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_indexView NAS
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/provision-tunnel Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/revert-hotspot Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/rotate-secret Rotate a NAS shared secret
Issues a new shared secret for the device. The router must be updated to match, or it stops authenticating — this endpoint changes the platform side only.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
There is no overlap window. From the moment this returns, RADIUS packets signed with the old secret are rejected. Push the new secret to the device in the same maintenance step.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
NAS id. |
POST /api/v1/admin/nas/{id}/scan View LAN devices
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_devices_indexView LAN devices - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/test Test a NAS connection
Checks that the platform can reach the device's management interface.
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_probe
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
NAS id. |
POST /api/v1/admin/nas/{id}/test-ssh Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/transport Edit NAS
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_updateEdit NAS - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/vpn Operator VPN access to NAS (issue/revoke VPN configs)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpnOperator VPN access to NAS (issue/revoke VPN configs)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/nas/{id}/vpn Operator VPN access to NAS (issue/revoke VPN configs)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpnOperator VPN access to NAS (issue/revoke VPN configs) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/vpn/disable Operator VPN access to NAS (issue/revoke VPN configs)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpnOperator VPN access to NAS (issue/revoke VPN configs) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/vpn/enable Operator VPN access to NAS (issue/revoke VPN configs)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpnOperator VPN access to NAS (issue/revoke VPN configs) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/vpn/history Operator VPN access to NAS (issue/revoke VPN configs)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpnOperator VPN access to NAS (issue/revoke VPN configs)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/vpn/peers
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_vpn_peers_ownprm_nas_vpn_peers_all - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/nas/{id}/vpn/script All VPN accounts (tenant-wide, incl. reassign)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpn_peers_allAll VPN accounts (tenant-wide, incl. reassign)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/nas/{id}/vpn/zerotier/install-package Operator VPN access to NAS (issue/revoke VPN configs)
- Authentication
- Staff token or session
- Requires permission
-
prm_nas_vpnOperator VPN access to NAS (issue/revoke VPN configs) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/nas/hotspot-asset
- Authentication
- Public
- Rate limit
nas_provision
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/nas/provision
- Authentication
- Public
- Rate limit
nas_provision
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Portal
58PATCH /api/v1/portal/account
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/auto-renew
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/portal/bucket-order
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/captcha
- Authentication
- Public
- Rate limit
portal_captcha
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/cards/redeem
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/change-profile
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/config
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/credentials
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/deposit
- Authentication
- Subscriber session
- Rate limit
portal_deposit
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/exchange
- Authentication
- Public
- Rate limit
portal_exchange
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/extend
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/extensions
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/extensions/{id}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/guest/context
- Authentication
- Subscriber session
- Rate limit
portal_guest
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/guest/register
- Authentication
- Subscriber session
- Rate limit
portal_guest
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/invoices
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/invoices/{id}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/invoices/{id}/render-data
- Authentication
- Subscriber session
- Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/join
- Authentication
- Public
- Rate limit
portal_join
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/join/context
- Authentication
- Public
- Rate limit
portal_join
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/ledger
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/login
- Authentication
- Public
- Rate limit
portal_login
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/me
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/parental
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/parental/pause
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/parental/pin
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/portal/parental/rules
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/parental/unlock
- Authentication
- Public
- Rate limit
portal_parental_unlock
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/password
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/payments/gateways
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/payments/transactions
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/profiles
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/purchase
- Authentication
- Subscriber session
- Rate limit
portal_deposit
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/portal/push-tokens
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/push-tokens
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/quota-buckets
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/quote
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/refresh
- Authentication
- Public
- Rate limit
portal_refresh
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/renew
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/sessions
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/signup
- Authentication
- Public
- Rate limit
portal_signup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/signup/schema
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/portal/speed
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/speed
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/portal/speed
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/telegram-exchange
- Authentication
- Public
- Rate limit
portal_telegram_exchange
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/telegram/link
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/tickets
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/tickets
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/tickets/form
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/tickets/{id}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/tickets/{id}/attach
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/portal/tickets/{id}/attachments/{attId}
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/tickets/{id}/attachments/{attId}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/tickets/{id}/messages
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/tunnel-identify
- Authentication
- Public
- Rate limit
portal_tunnel_identify
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/portal/tunnel-tenant
- Authentication
- Public
- Rate limit
portal_tunnel_tenant
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/portal/usage
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
User
58PATCH /api/v1/user/account
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/auto-renew
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/user/bucket-order
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/captcha
- Authentication
- Public
- Rate limit
portal_captcha
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/cards/redeem
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/change-profile
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/config
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/credentials
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/deposit
- Authentication
- Subscriber session
- Rate limit
portal_deposit
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/exchange
- Authentication
- Public
- Rate limit
portal_exchange
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/extend
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/extensions
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/extensions/{id}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/guest/context
- Authentication
- Subscriber session
- Rate limit
portal_guest
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/guest/register
- Authentication
- Subscriber session
- Rate limit
portal_guest
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/invoices
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/invoices/{id}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/invoices/{id}/render-data
- Authentication
- Subscriber session
- Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/join
- Authentication
- Public
- Rate limit
portal_join
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/join/context
- Authentication
- Public
- Rate limit
portal_join
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/ledger
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/login
- Authentication
- Public
- Rate limit
portal_login
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/me
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/parental
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/parental/pause
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/parental/pin
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/user/parental/rules
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/parental/unlock
- Authentication
- Public
- Rate limit
portal_parental_unlock
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/password
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/payments/gateways
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/payments/transactions
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/profiles
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/purchase
- Authentication
- Subscriber session
- Rate limit
portal_deposit
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/user/push-tokens
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/push-tokens
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/quota-buckets
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/quote
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/refresh
- Authentication
- Public
- Rate limit
portal_refresh
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/renew
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/sessions
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/signup
- Authentication
- Public
- Rate limit
portal_signup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/signup/schema
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/user/speed
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/speed
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/user/speed
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/telegram-exchange
- Authentication
- Public
- Rate limit
portal_telegram_exchange
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/telegram/link
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/tickets
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/tickets
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/tickets/form
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/tickets/{id}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/tickets/{id}/attach
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/user/tickets/{id}/attachments/{attId}
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/tickets/{id}/attachments/{attId}
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/tickets/{id}/messages
- Authentication
- Subscriber session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/tunnel-identify
- Authentication
- Public
- Rate limit
portal_tunnel_identify
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/user/tunnel-tenant
- Authentication
- Public
- Rate limit
portal_tunnel_tenant
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/user/usage
- Authentication
- Subscriber session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Tools
48GET /api/v1/admin/tools/announcements Manage announcements
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_announcementsManage announcements
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/announcements Manage announcements
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_announcementsManage announcements - Rate limit
t_egress
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/announcements/preview-count Manage announcements
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_announcementsManage announcements - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/announcements/{id} Manage announcements
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_announcementsManage announcements
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/backup Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/backup Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/backup/bulk-delete Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/backup/jobs Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/backup/jobs/{id} Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/backup/schedule Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/tools/backup/schedule Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/backup/upload Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/tools/backup/{id} Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/backup/{id}/download Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/backup/{id}/download-ticket Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/backup/{id}/restore Backup & restore
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_backupBackup & restore - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/bandwidth Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/bandwidth/apply Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/bandwidth/history Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/bandwidth/schedules Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/bandwidth/schedules Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/bandwidth/schedules/bulk-delete Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/tools/bandwidth/schedules/{id} Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/tools/bandwidth/schedules/{id} Bandwidth control
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bandwidth_controlBandwidth control - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/bulk/apply Bulk changes
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bulk_changesBulk changes - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/bulk/jobs Bulk changes
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bulk_changesBulk changes
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/bulk/jobs/{id} Bulk changes
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bulk_changesBulk changes
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/bulk/preview Bulk changes
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_bulk_changesBulk changes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/dashboards Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/dashboards Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/dashboards/bulk-delete Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/dashboards/restore-defaults Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/tools/dashboards/{id} Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/dashboards/{id} Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/tools/dashboards/{id} Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/factory-reset Factory reset
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_factory_resetFactory reset - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/factory-reset/preview Factory reset
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_factory_resetFactory reset
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/maintenance/operations System maintenance
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_maintenanceSystem maintenance - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/maintenance/run System maintenance
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_maintenanceSystem maintenance - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/maintenance/runs System maintenance
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_maintenanceSystem maintenance
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/widget-data/sources Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/widget-data/{id} Dashboard Manager
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_dashboard_managerDashboard Manager
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/widgets Widget Factory
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_widget_factoryWidget Factory
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/widgets Widget Factory
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_widget_factoryWidget Factory - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/tools/widgets/bulk-delete Widget Factory
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_widget_factoryWidget Factory - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/tools/widgets/{id} Widget Factory
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_widget_factoryWidget Factory - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/tools/widgets/{id} Widget Factory
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_widget_factoryWidget Factory
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/tools/widgets/{id} Widget Factory
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_widget_factoryWidget Factory - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Monitoring
45GET /api/v1/admin/monitoring/alerts View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/alerts/bulk-delete Acknowledge alerts
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_ackAcknowledge alerts - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/alerts/clear-all Acknowledge alerts
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_ackAcknowledge alerts - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/alerts/unacked-count View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/alerts/{id}/ack Acknowledge alerts
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_ackAcknowledge alerts - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/alerts/{id}/deliveries View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/devices Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/devices/bulk-delete Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/monitoring/devices/{id} Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/devices/{id} Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref} View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/monitoring/devices/{kind}/{ref}/geo Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/devices/{kind}/{ref}/geo Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/devices/{kind}/{ref}/icon Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/impact View network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_viewView network map
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/live-traffic View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/live-traffic/stream View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/notify View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/devices/{kind}/{ref}/notify Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/owners View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/devices/{kind}/{ref}/owners Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/devices/{kind}/{ref}/ping Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/ping/stream Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/snmp-interfaces Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/stability View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/devices/{kind}/{ref}/users View network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_viewView network map
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/devices/{kind}/{ref}/users Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/geo View network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_viewView network map
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/geo/hygiene View network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_viewView network map
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/geo/import Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/geo/incidents View network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_viewView network map
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/geo/links View network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_viewView network map
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/geo/links Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/geo/links/bulk-delete Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/monitoring/geo/links/{id} Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/geo/links/{id}/reverse Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/map View network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_viewView network map
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/map Edit network map
- Authentication
- Staff token or session
- Requires permission
-
prm_map_editEdit network map - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/sensors Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/monitoring/sensors/bulk-delete Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/monitoring/sensors/{id} Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/monitoring/sensors/{id} Manage monitored devices & sensors
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_manageManage monitored devices & sensors - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/monitoring/sensors/{id}/samples View monitoring
- Authentication
- Staff token or session
- Requires permission
-
prm_monitoring_viewView monitoring
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Managers
32POST /api/v1/admin/managers/bulk-group Assign groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_assignAssign groups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/managers/{id}/group Assign groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_assignAssign groups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers List managers
One page of managers. A caller without tenant-wide visibility sees their own descendants only — never their parent, never a sibling branch.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_indexView managers
debt, parent_username, users_count and the other joined fields are computed by the list projection only. Fetching one manager by id returns the same record without them, so a client that reads users_count off a detail response will always see zero.
Parameters
| Parameter | Description |
|---|---|
filter[parent_id]
query · integer
|
Direct children of one manager. Also accepted as a bare parent_id query parameter. Narrows within the caller's subtree, never past it. |
q
query · string
|
Searches name, username and email. |
{
"data": [
{
"id": 57,
"tenant_id": 12,
"email": "giza@acme.example",
"username": "giza-reseller",
"firstname": "Mona",
"status": "active",
"parent_manager_id": 41,
"parent_username": "cairo-reseller",
"balance": 1840.00,
"debt_limit": 5000.00,
"debt": 0.00,
"discount_rate": 10.00,
"points_balance": 240,
"users_count": 312,
"created_at": "2026-05-02 09:00:00"
}
],
"meta": { "page": 1, "page_size": 50, "total": 9, "has_next": false }
}
POST /api/v1/managers Create a manager
Creates a staff or reseller account. A manager needs at least one login identity, so email or username must be present.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_createCreate managers - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
email
body · string
|
Login email. Unique within the tenant. Required unless username is given. |
username
body · string
|
Login username. Required unless email is given. |
passwordrequired
body · string
|
Hashed with Argon2id before storage, unlike a subscriber's. |
parent_manager_id
body · integer
|
Defaults to the caller. Never null — a tenant keeps exactly one root manager, its owner. A named parent must be one the caller may act on. |
GET /api/v1/managers/all List managers for a picker
Id and name only, un-paginated, for populating a select control. Same subtree scope as the full list.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_indexView managers
POST /api/v1/managers/bulk-activate Edit managers
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_updateEdit managers - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/bulk-delete Delete managers
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_deleteDelete managers - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/bulk-suspend Edit managers
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_updateEdit managers - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/managers/{id} Delete a manager
Hard-deletes the manager. Refused while they are still referenced by subscribers, card stock or ledger records — move those first.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_deleteDelete managers - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
GET /api/v1/managers/{id} Fetch one manager
The manager record, including their custom form fields.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_indexView managers
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
PATCH /api/v1/managers/{id} Update a manager
Partial update. An omitted field is left alone.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_updateEdit managers - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
POST /api/v1/managers/{id}/2fa/reset Edit managers
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_managers_updateEdit managers - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/{id}/activate Edit managers
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_updateEdit managers - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers/{id}/debt Read a manager's debt
Outstanding debt for this manager, read off the loan ledger.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_journalView manager journal
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
GET /api/v1/managers/{id}/invoices View manager invoices
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_invoicesView manager invoices
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers/{id}/journal Read a manager's ledger
Every money movement on this manager's wallet, newest first, with a running balance. This is the authoritative record — the wallet balance is its consequence, not a parallel truth.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_journalView manager journal
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
GET /api/v1/managers/{id}/loans View manager journal
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_journalView manager journal
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/{id}/login-as Log in as manager
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_managers_login_asLog in as manager - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers/{id}/overview View managers
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_indexView managers
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers/{id}/payments View manager receipts
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_receiptsView manager receipts
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/{id}/points/add Add / deduct manager reward points
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_reward_pointsAdd / deduct manager reward points - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/{id}/points/deduct Add / deduct manager reward points
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_reward_pointsAdd / deduct manager reward points - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers/{id}/profile View managers
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_indexView managers
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers/{id}/receipts View manager receipts
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_receiptsView manager receipts
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/{id}/reset-password Edit managers
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_updateEdit managers - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/managers/{id}/roles Read a manager's roles
The roles assigned to this manager, which is what their permissions resolve from.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_indexView managers
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
PUT /api/v1/managers/{id}/roles Replace a manager's roles
Replaces the whole set. A caller may only grant roles whose permissions are a subset of their own, so this cannot be used to escalate.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions - Rate limit
t_mutate
This takes effect on every API token that manager holds, immediately and silently. A token's authority is its owner's live permissions intersected with its own scope, so removing a role here shrinks every integration running as that person with no notification and no change to the token record.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
role_idsrequired
body · array
|
The complete new set of role ids. |
POST /api/v1/managers/{id}/suspend Suspend a manager
Sets the account to suspended. They can no longer sign in, and every API token they own stops authenticating with reason api_token_owner_inactive.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_updateEdit managers - Rate limit
t_mutate
Suspending a reseller does not touch the subscribers below them. Those keep connecting; only the person's own access ends.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
POST /api/v1/managers/{id}/wallet/deposit Credit a manager wallet
Moves money into a reseller's wallet and posts the matching ledger entry. Idempotent on request_id through the ledger's own unique constraint.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_depositDeposit to manager wallet - Rate limit
t_mutate- Idempotency key
request_id
issue_invoice defaults differently here than on the subscriber wallet. Omitting it on a manager deposit issues the document; omitting it on a subscriber deposit does not. Send it explicitly if you care either way.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. May not be the caller themselves. |
amountrequired
body · number
|
Major units, a bare JSON number. |
request_idrequired
body · string
|
Idempotency key. |
reason
body · string
|
Free-text note recorded on the ledger row. |
issue_invoice
body · boolean
|
Also record the human-facing accounting document. Defaults to TRUE when omitted on the manager side, unlike the subscriber side. |
POST /api/v1/managers/{id}/wallet/pay-debt Settle a manager's debt
Records a repayment against a creditor. The creditor defaults to the debtor's parent manager.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_pay_debtSettle manager debt - Rate limit
t_mutate- Idempotency key
request_id
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
The debtor. May not be the caller themselves. |
amountrequired
body · number
|
Major units. |
creditor_manager_id
body · integer
|
Which creditor is being repaid. Absent means the debtor's parent. |
request_idrequired
body · string
|
Idempotency key. |
POST /api/v1/managers/{id}/wallet/topup Deposit to manager wallet
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_depositDeposit to manager wallet - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/managers/{id}/wallet/withdraw Debit a manager wallet
The inverse of deposit, posting the matching ledger entry.
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_withdrawalWithdraw from manager wallet - Rate limit
t_mutate- Idempotency key
request_id
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Manager id. |
amountrequired
body · number
|
Major units. |
request_idrequired
body · string
|
Idempotency key. |
allow_negative
body · boolean
|
Permit the withdrawal to drive the balance below zero. |
Public
29POST /api/v1/public/auth/resolve-host
- Authentication
- Public
- Rate limit
resolve_host
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/backup/oauth/{provider}/callback
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/csat/{token}
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/csat/{token}
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/csp-report
- Authentication
- Public
- Rate limit
csp_report
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/pay/gateways
- Authentication
- Public
- Rate limit
pay_guest_gateways
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/pay/guest-checkout
- Authentication
- Public
- Rate limit
pay_guest_init
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/pay/lookup
- Authentication
- Public
- Rate limit
pay_guest_lookup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/pay/recover
- Authentication
- Public
- Rate limit
pay_guest_recover
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/pay/status/{state}
- Authentication
- Public
- Rate limit
pay_status
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/pay/{gateway}/redirect/{tenant_id}/{token}/{outcome}
- Authentication
- Public
- Rate limit
pay_return
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/pay/{gateway}/return/{state}
- Authentication
- Public
- Rate limit
pay_return
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/pay/{gateway}/webhook/{tenant_id}/{secret}
- Authentication
- Public
- Rate limit
pay_webhook
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/register/captcha
- Authentication
- Public
- Rate limit
register_captcha
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/register/policy
- Authentication
- Public
- Rate limit
register_policy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/register/slug-available
- Authentication
- Public
- Rate limit
slug_available
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/site/captcha
- Authentication
- Public
- Rate limit
site_captcha
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/site/leads
- Authentication
- Public
- Rate limit
site_leads
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
CONNECT /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
HEAD /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
OPTIONS /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
QUERY /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
TRACE /api/v1/public/sysbackup/{name}
- Authentication
- Public
- Rate limit
sysbackup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/public/telegram/{bot_kind}/webhook/{license_id}/{secret}
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Card Batches
28GET /api/v1/card-batches List card series
One page of card series with their stock breakdown. A non-admin caller sees only series created within their own manager subtree.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
Never derive stock by subtraction. used excludes both unused and revoked, so quantity minus used is not the unused count, and quantity itself grows when the point of sale mints into the series. available is the sellable stock. stuck_sale is a warning, not a bucket: it counts cards held by a till sale that never completed, and there is no reaper for it.
Parameters
| Parameter | Description |
|---|---|
filter[status]
query · string
|
Generation status — generating, ready, failed. |
filter[card_mode]
query · string
|
The series mode. |
filter[owner_manager_id]
query · integer
|
The reseller holding the series after any transfer. |
filter[suspended]
query · boolean
|
Series whose unused cards have been revoked. |
filter[template_id]
query · integer
|
Series cut from one saved card template. |
q
query · string
|
Plan name, distribution note, or series id. |
{
"data": [
{
"id": 208,
"plan_id": 7,
"plan_name": "Home 20M",
"card_mode": "voucher_account",
"quantity": 500,
"face_value": 150.00,
"code_length": 10,
"code_charset": "alnum_no_ambig",
"status": "ready",
"suspended": false,
"processed": 500,
"used": 312,
"available": 171,
"sold_online": 9,
"sold_counter": 8,
"stuck_sale": 0,
"expiration": "2027-01-01 00:00:00",
"printed_at": "2026-08-30 12:01:44",
"print_count": 1,
"pdf_ready": true,
"has_cards": true,
"owner_manager_id": 41,
"sell_online": false,
"auto_activate": false,
"created_by": 41
}
],
"meta": { "page": 1, "page_size": 50, "total": 24, "has_next": false }
}
POST /api/v1/card-batches Generate a card series
Stages an asynchronous generation job and returns immediately. The cards and the printable artifact are produced in the background; poll the series until status is ready, then fetch the print job.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_generate_userGenerate user cards - Rate limit
t_mutate- Idempotency key
request_id
A fresh stage answers 202 Accepted; a replay of the same request_id answers 200 OK with the original batch_id and replay true. The status field says generating in both cases, because it describes the job, not the outcome of this call. Branch on the HTTP status or on replay, not on status.
Parameters
| Parameter | Description |
|---|---|
typerequired
body · enum
|
refill or prepaid. |
quantityrequired
body · integer
|
How many cards to mint. |
face_valuerequired
body · number
|
Value per card, major units. |
expirationrequired
body · string
|
yyyy-MM-dd HH:mm:ss or yyyy-MM-dd. Series-level card lifetime. |
plan_profile_id
body · integer
|
Required for prepaid, and for a refill card that auto-activates. |
code_length
body · integer
|
The redemption PIN length. A MINIMUM, not an exact value — a mint may exceed it when the tenant's live code pool needs more entropy. |
code_charset
body · enum
|
numeric, alpha, alnum or alnum_no_ambig. |
owner_manager_id
body · integer
|
The series owner. Defaults to the creator. |
request_idrequired
body · string
|
Idempotency key. |
{
"data": {
"batch_id": 209,
"mode": "voucher_account",
"status": "generating",
"replay": false
}
}
POST /api/v1/card-batches/bulk-delete Delete card batches
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_deleteDelete card batches - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-batches/bulk-expiry Change card expiry
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_change_expiryChange card expiry - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-batches/bulk-print-job Download / export cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_downloadDownload / export cards - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-batches/bulk-printed Download / export cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_downloadDownload / export cards - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-batches/bulk-release Suspend / release cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_suspend_releaseSuspend / release cards - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-batches/bulk-suspend Suspend / release cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_suspend_releaseSuspend / release cards - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-batches/code-length Generate user cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_generate_userGenerate user cards
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/card-batches/{id} Delete a card series
Deletes the series and its cards. Refuses outright once any card in it has been redeemed, transferred or sold at the till, because those are financial records.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_deleteDelete card batches - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
GET /api/v1/card-batches/{id} Fetch one card series
The series header, its generation spec and its stock breakdown.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
PATCH /api/v1/card-batches/{id} Manage card designs
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_designerManage card designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-batches/{id}/cards List the cards in a series
One row per card, carrying the plaintext code and, for prepaid series, the login username and password. Behind both the card-list permission and the per-series subtree gate for that reason.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
state and effective_state are different questions and you almost always want the second. Nothing ever writes state 'expired', so a voucher past its expiry still reads as 'unused' in state and shows as available stock; effective_state applies the expiry at read time. Meanwhile disposition answers who holds the card — a voucher sold at the till but not yet redeemed is still 'unused' and is not stock you can sell again.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
filter[state]
query · string
|
Stored state — unused, consumed, active, exhausted, revoked. |
filter[disposition]
query · string
|
Who holds the card, which is orthogonal to state. |
filter[has_customer]
query · boolean
|
Cards linked to a subscriber. |
{
"data": [
{
"id": 90211,
"serial": "000312",
"code": "K7P4M2Q9XD",
"username": "v90211",
"password": "8sk3ndq1",
"state": "unused",
"effective_state": "unused",
"disposition": "available",
"redemptions_left": 1,
"expires_at": "2027-01-01 00:00:00",
"used_bytes": 0,
"used_seconds": 0
}
],
"meta": { "page": 1, "page_size": 50, "total": 500, "has_next": true }
}
POST /api/v1/card-batches/{id}/expiry Change card expiry
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_change_expiryChange card expiry - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-batches/{id}/pdf Download / export cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_downloadDownload / export cards - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-batches/{id}/pricing View card batches & cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/card-batches/{id}/pricing/{resellerId} Manage card designs
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_designerManage card designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/card-batches/{id}/pricing/{resellerId} Manage card designs
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_designerManage card designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-batches/{id}/print-job Fetch a series' print job
The data a client needs to render the printable sheet in the browser. Rendering happens client-side; the server ships no PDF engine.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_downloadDownload / export cards
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
POST /api/v1/card-batches/{id}/printed Mark a series printed
Records that the sheet was rendered, stamping printed_at and incrementing print_count.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_downloadDownload / export cards - Rate limit
t_mutate
Print tracking is observational only and deliberately does NOT move the series status. Nothing may set status to 'printed': the till refuses to mint into any series whose status is not 'ready', so auto-stamping would silently close every printed series to counter top-ups.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
POST /api/v1/card-batches/{id}/regenerate Generate user cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_generate_userGenerate user cards - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-batches/{id}/release Release a suspended card series
Puts the revoked-but-unused cards of a suspended series back into stock.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_suspend_releaseSuspend / release cards - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
POST /api/v1/card-batches/{id}/suspend Suspend a card series
Revokes every still-unused card in the series. Cards already in flight are left alive. Re-running it is a harmless no-op.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_suspend_releaseSuspend / release cards - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
{
"data": { "message_key": "card_batch_suspended" }
}
POST /api/v1/card-batches/{id}/transfer-count Transfer N cards from a series
Like transfer-whole, but moves a count of cards off the top of the available stock rather than the entire series.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_change_ownerTransfer / change card owner - Rate limit
t_mutate- Idempotency key
request_id
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
countrequired
body · integer
|
How many cards to move. |
from_manager_idrequired
body · integer
|
The current holder. |
to_manager_idrequired
body · integer
|
The receiving reseller. |
unit_pricerequired
body · number
|
Price per card. Required, never defaulted to zero. |
request_idrequired
body · string
|
Idempotency key. |
POST /api/v1/card-batches/{id}/transfer-range Transfer a card id range
Moves a contiguous range of card ids from the series, for the case where the physical cards handed over are a known block.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_change_ownerTransfer / change card owner - Rate limit
t_mutate- Idempotency key
request_id
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
card_id_rangerequired
body · object
|
The inclusive id range to move. |
unit_pricerequired
body · number
|
Price per card. Required. |
request_idrequired
body · string
|
Idempotency key. |
POST /api/v1/card-batches/{id}/transfer-whole Transfer a whole series to another reseller
Moves every card in the series from one manager to another at an agreed unit price, posting the matching ledger entries on both sides.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_change_ownerTransfer / change card owner - Rate limit
t_mutate- Idempotency key
request_id
unit_price is a required tri-state and omitting it is refused rather than read as zero. A bare 0 from a client that simply left the field out would mean "give the stock away", which is exactly the defect this check exists to stop. A negative price inverts the transfer.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Series id. |
from_manager_idrequired
body · integer
|
The current holder. |
to_manager_idrequired
body · integer
|
The receiving reseller. |
unit_pricerequired
body · number
|
Price per card, major units. Must be sent explicitly — omitting it is an error, not a zero. |
request_idrequired
body · string
|
Idempotency key. |
GET /api/v1/card-batches/{id}/transferable-cards View card batches & cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-batches/{id}/transfers View card batches & cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Profiles
26GET /api/v1/profiles List plans
One page of service plans, scoped to what the calling manager may actually see. A private plan is visible only to managers it was explicitly allow-listed for.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_indexView profiles
vat_percent is a STRING, not a number. It is a NUMERIC(5,2) in the database and is serialised as text so the exact value survives the round trip. Every other money field on the plan is a bare JSON number.
Parameters
| Parameter | Description |
|---|---|
filter[type]
query · enum
|
prepaid, postpaid, fup, extension or addon. |
filter[status]
query · string
|
Plan status. |
filter[assignable]
query · boolean
|
Only plans this caller may bind to a subscriber. Narrower than visibility, and the right filter behind a plan picker. |
filter[allowed_services]
query · enum
|
ppp, hotspot or both. |
filter[show_in_ucp]
query · boolean
|
Plans the subscriber portal offers for self-service renewal. |
filter[private]
query · boolean
|
Plans restricted to an explicit manager allow-list. |
filter[has_fup_chain]
query · boolean
|
Plans that fall back to another plan on expiry or quota exhaustion. |
sort
query · string
|
id, created_at, name, type or status. Defaults to name ascending. |
{
"data": [
{
"id": 7,
"tenant_id": 12,
"name": "Home 20M",
"type": "prepaid",
"base_fee": 150.00,
"end_user_price": 180.00,
"vat_percent": "14.00",
"enforce_expiration": true,
"expiration_value": 30,
"expiration_unit": "days",
"combined_bytes_limit": 107374182400,
"enforce_combined_bytes": true,
"enforce_period_seconds": false,
"download_kbps": 20480,
"upload_kbps": 4096,
"speed_share_mode": "per_session",
"allowed_services": "both",
"private": false,
"show_in_ucp": true,
"carry_over_remaining_quota": false,
"auto_renew_supported": true,
"points_award": 10
}
],
"meta": { "page": 1, "page_size": 50, "total": 18, "has_next": false }
}
POST /api/v1/profiles Create a plan
name and type are the only required fields; everything else has a schema default. A plan created with no enforce toggles on is an unlimited plan.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_createCreate profiles - Rate limit
t_mutate
A quota limit does nothing until its enforce toggle is on. Setting combined_bytes_limit while enforce_combined_bytes is false leaves the plan unlimited on data, and the number sits there looking like a cap. The two always travel together.
Parameters
| Parameter | Description |
|---|---|
namerequired
body · string
|
Display name. |
typerequired
body · enum
|
prepaid, postpaid, fup, extension or addon. |
base_fee
body · number
|
Wholesale price to the reseller, major units. |
end_user_price
body · number
|
Retail price, major units. |
expiration_value
body · integer
|
Period length, paired with expiration_unit. |
expiration_unit
body · enum
|
hours, days or months. |
GET /api/v1/profiles/all List plans for a picker
Id and name only, un-paginated, for populating a select control. Cheaper than the full list when you do not need the plan bodies.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_indexView profiles
POST /api/v1/profiles/bulk-delete Delete profiles
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_deleteDelete profiles - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/profiles/{id} Delete a plan
Refused while the plan is still referenced — by a subscriber, a card series or another plan's fall-back chain.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_deleteDelete profiles - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
GET /api/v1/profiles/{id} Fetch one plan
The full plan definition: pricing, quota limits and their enforce toggles, speed, lifecycle flags and the fall-back chain.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_indexView profiles
A plan you may not see answers 404, identical to one that does not exist. This route carries wholesale terms (base_fee, max_price), so a 403 would have let a reseller walk plan ids and read a rival's private pricing.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
PATCH /api/v1/profiles/{id} Update a plan
Partial update. Numeric and foreign-key fields can be cleared to null by sending null explicitly, which is distinct from omitting them.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_updateEdit profiles - Rate limit
t_mutate
Editing a plan does not re-provision the subscribers already on it. Their quota and window were written at activation time; a price or limit change applies to the next activation, not retroactively.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
GET /api/v1/profiles/{id}/allowed-extensions Manage profile visibility / policy
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policy_managerManage profile visibility / policy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/profiles/{id}/allowed-extensions Manage profile visibility / policy
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policy_managerManage profile visibility / policy - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/profiles/{id}/allowed-managers Read a private plan's manager allow-list
Which managers may see and assign this plan. Only meaningful while the plan is private; a public plan is visible to everyone regardless of this list.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policy_managerManage profile visibility / policy
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
PUT /api/v1/profiles/{id}/allowed-managers Replace a private plan's manager allow-list
Replaces the whole list. Managers omitted from the payload lose access.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policy_managerManage profile visibility / policy - Rate limit
t_mutate
The allow-list is inert while private is false. Setting it on a public plan stores the rows and changes nothing, which looks exactly like the restriction failing to apply.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
GET /api/v1/profiles/{id}/allowed-parents Manage profile visibility / policy
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policy_managerManage profile visibility / policy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/profiles/{id}/allowed-parents Manage profile visibility / policy
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policy_managerManage profile visibility / policy - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/profiles/{id}/clone Clone a plan
Copies the plan, including its RADIUS attributes and policies, under a new name. The usual way to build a variant without re-entering forty fields.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_createCreate profiles - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan to copy. |
GET /api/v1/profiles/{id}/policies Manage plan policy rules
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policiesManage plan policy rules
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/profiles/{id}/policies Manage plan policy rules
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policiesManage plan policy rules - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/profiles/{id}/policies/bulk-delete Manage plan policy rules
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policiesManage plan policy rules - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/profiles/{id}/policies/{policyID} Manage plan policy rules
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policiesManage plan policy rules - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/profiles/{id}/policies/{policyID} Manage plan policy rules
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_policiesManage plan policy rules - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/profiles/{id}/price-list Read a plan's per-reseller prices
The pricing-tree overrides for this plan: what each manager in the tree pays and may charge, where it differs from the plan default.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_pricingManage profile pricing
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
PUT /api/v1/profiles/{id}/price-list Replace a plan's per-reseller prices
Replaces the whole override set for this plan in one call. An entry omitted from the payload is removed, not left alone.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_pricingManage profile pricing - Rate limit
t_mutate
A price cap of 0 and an absent cap mean different things. Absent is "no cap"; 0 is a cap of zero, which blocks every sale of that plan below the manager it is set on and reads on screen as "Over cap 0.00".
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
GET /api/v1/profiles/{id}/radius-attrs List a plan's RADIUS attributes
The reply attributes this plan adds to an Access-Accept, beyond the ones derived from its speed and quota settings.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_radius_attributesManage RADIUS attributes
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
POST /api/v1/profiles/{id}/radius-attrs Add a RADIUS attribute to a plan
Adds one reply attribute. Attributes set here ride on every session of every subscriber on the plan.
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_radius_attributesManage RADIUS attributes - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Plan id. |
POST /api/v1/profiles/{id}/radius-attrs/bulk-delete Manage RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_radius_attributesManage RADIUS attributes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/profiles/{id}/radius-attrs/{attrId} Manage RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_radius_attributesManage RADIUS attributes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/profiles/{id}/radius-attrs/{attrId} Manage RADIUS attributes
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_radius_attributesManage RADIUS attributes - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Auth
24GET /api/v1/auth/account
- Authentication
- Staff token or session Staff session only — an API token cannot call this
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/auth/account
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/account/2fa/disable
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
account_reauth
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/account/2fa/enable
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/account/2fa/recovery-codes
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
account_reauth
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/account/2fa/setup
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/account/avatar
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/auth/account/limits
- Authentication
- Staff token or session Staff session only — an API token cannot call this
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/account/password
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
account_reauth
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/auth/account/sessions
- Authentication
- Staff token or session Staff session only — an API token cannot call this
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/account/sessions/revoke-others
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/auth/account/sessions/{jti}
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/auth/context Classify the host before signing in
Tells a login page which flow to render: whether the host it was loaded on is a tenant subdomain, the instance apex, or unknown, plus the public tenant descriptor when it resolves. Unauthenticated, and always 200. It exposes only the public tenant slug, name and branding, and tenant is null for apex and unknown hosts.
- Authentication
- Public
POST /api/v1/auth/impersonation/exit
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/login Sign a manager in
Exchanges an email or username and a password for a tenant-scoped session token. The tenant is taken from the host when you call a tenant subdomain, and a selector in the body is discarded in that case.
- Authentication
- Public
- Rate limit
login
mfa_required is a 401 with the same code as a wrong password. Branch on details.reason, never on the status or the message: six different login outcomes share ERR_UNAUTHORIZED and only the reason tells them apart. expires_at is unix SECONDS, not milliseconds and not a formatted timestamp.
Parameters
| Parameter | Description |
|---|---|
emailrequired
body · string
|
Email or username. |
passwordrequired
body · string
|
The manager's password. |
totp_code
body · string
|
Six-digit code or a recovery code. Sent on the second attempt, after the first returns mfa_required. |
tenant_slug
body · string
|
Honoured only when the host carries no tenant. Ignored outright on a tenant subdomain. |
refresh
body · boolean
|
Opt in to the refresh-token flow. Omitting it returns one long-lived token and no refresh fields at all. |
{
"data": {
"token": "eyJhbGciOiJIUzI1NiIs...",
"user_id": 41,
"tenant_id": 12,
"tenant_slug": "acme",
"roles": ["support"],
"expires_at": 1758358800
}
}
POST /api/v1/auth/logout End the current session
Revokes the calling session's token id, so it stops working immediately rather than at expiry.
- Authentication
- Staff token or session Staff session only — an API token cannot call this
Best-effort by design: it answers ok even if the revocation write failed, because the worst case is a token that dies at its natural expiry. Do not treat ok true as proof the token is dead.
{
"data": { "ok": true }
}
GET /api/v1/auth/me Who am I, and what may I do
The one-shot bootstrap call: the current manager, their roles, the resolved permission codes, and the tenant settings a client needs before it can render anything. Authenticated but not permission-gated, so any working credential reaches it.
- Authentication
- Staff token or session
For an API token, permissions is the INTERSECTION of the token's scope with its owner's live permissions, and is_admin is forced to false even when the owner is a tenant administrator. That is the authoritative answer to what the credential may do — gate your client on this array, not on the owner's role names. max_users null means unlimited; 0 means blocked, not unlimited.
{
"data": {
"version": "0.2.34",
"manager": {
"id": 41,
"tenant_id": 12,
"email": "ops@acme.example",
"username": "ops",
"status": "active",
"two_factor_enabled": true
},
"roles": ["support"],
"permissions": ["prm_users_index", "prm_users_update"],
"is_admin": false,
"settings": {
"currency": "EGP",
"timezone": "Africa/Cairo",
"default_language": "en",
"pos_undo_window_seconds": 60
},
"tenant": {
"license_status": "active",
"license_expires_at": "2027-01-31 00:00:00",
"max_users": 5000,
"users_count": 812,
"blocked": false,
"blocked_reason": ""
}
}
}
DELETE /api/v1/auth/push-tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/push-tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/refresh Exchange a refresh token
Issues a new session token from a refresh token. Only available when the original login asked for one.
- Authentication
- Public
- Rate limit
refresh
An expired refresh token and an unknown one answer identically, on purpose. A revoked session is the one case that is distinguished, because the remedy differs: sign in again rather than retry.
Parameters
| Parameter | Description |
|---|---|
refresh_tokenrequired
body · string
|
The refresh token returned by login. Shown once; only its hash is stored. |
POST /api/v1/auth/register/complete
- Authentication
- Public
- Rate limit
register_complete
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/register/resend
- Authentication
- Public
- Rate limit
register_resend
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/register/start
- Authentication
- Public
- Rate limit
register_start
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/auth/register/verify
- Authentication
- Public
- Rate limit
register_verify
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Reports
18GET /api/v1/admin/reports/activation-stats Activation statistics report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_activation_statsActivation statistics report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/activations Activations report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_activationsActivations report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/cards-transfer Cards log report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_cards_logCards log report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/cards-usage Cards usage report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_cards_usageCards usage report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/claims-managers Debts journal report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_debtsDebts journal report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/debtors-managers Debts journal report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_debtsDebts journal report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/debtors-users Debts journal report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_debtsDebts journal report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/debts Debts journal report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_debtsDebts journal report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/gateway-txns
- Authentication
- Staff token or session
- Requires any one of
-
prm_report_gateway_transactionsprm_report_gateway_transactions_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/manager-invoices View manager invoices
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_invoicesView manager invoices - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/manager-journal View manager journal
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_journalView manager journal - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/manager-receipts View manager receipts
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_receiptsView manager receipts - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/money-transfer Money transfer report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_money_transferMoney transfer report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/profits Profits report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_profitsProfits report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/sessions Sessions report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_sessionsSessions report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/suspicious Suspicious users report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_suspiciousSuspicious users report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/traffic Traffic report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_trafficTraffic report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/reports/users Users report
- Authentication
- Staff token or session
- Requires permission
-
prm_report_usersUsers report - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Studio
18GET /api/v1/studio/designs View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/studio/designs Create and edit designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_editCreate and edit designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/studio/designs/bulk-delete Delete designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_deleteDelete designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/studio/designs/{id} Delete designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_deleteDelete designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/studio/designs/{id} View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/studio/designs/{id} Create and edit designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_editCreate and edit designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/studio/designs/{id}/thumbnail View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/studio/store View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/studio/store Publish designs to the store
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_publishPublish designs to the store - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/studio/store/{id} View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/studio/store/{id}/comments View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/studio/store/{id}/comments View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/studio/store/{id}/import Create and edit designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_editCreate and edit designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/studio/store/{id}/reviews View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/studio/store/{id}/reviews View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/studio/store/{id}/star View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/studio/store/{id}/star View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/studio/store/{id}/thumbnail View designs
- Authentication
- Staff token or session
- Requires permission
-
prm_studio_indexView designs
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Payments
14GET /api/v1/admin/payments/config List configured gateways
Just the tenant's configured rows, with credentials masked, for a page that already holds the catalogue.
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
POST /api/v1/admin/payments/config Configure a gateway
Upserts one gateway's credentials and settings. Every field is keep-existing, so a partial payload leaves unsent credentials alone rather than clearing them.
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
gatewayrequired
body · string
|
Driver id from the catalogue. |
DELETE /api/v1/admin/payments/config/{gateway} Remove a gateway configuration
Deletes the tenant's credentials for one driver. Transactions already recorded against it are untouched.
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
gatewayrequired
path · string
|
Driver id. |
PATCH /api/v1/admin/payments/config/{gateway} Update one gateway's configuration
The same upsert as the POST, with the gateway named in the path. The PATH wins over any gateway field in the body, so a stale client cannot retarget an edit at a different gateway.
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
gatewayrequired
path · string
|
Driver id. |
POST /api/v1/admin/payments/config/{gateway}/test Test a gateway configuration
Checks the stored credentials against the provider.
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
gatewayrequired
path · string
|
Driver id. |
GET /api/v1/admin/payments/config/{gateway}/webhook-url Read a gateway's callback URL
The exact URL to register with the provider, including the per-tenant secret path segment. Copy it verbatim.
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
The URL contains a secret. It is what proves an inbound callback came from the provider you configured, so treat the response as a credential and do not paste it into a ticket.
Parameters
| Parameter | Description |
|---|---|
gatewayrequired
path · string
|
Driver id. |
POST /api/v1/admin/payments/deposit Top up own wallet online
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_self_depositTop up own wallet online - Rate limit
pay_init
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/payments/deposit/gateways Top up own wallet online
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_self_depositTop up own wallet online
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/payments/gateways List the gateway catalogue and what is configured
The drivers this build supports, the tenant's own configured rows with secrets masked, and the public base URL a gateway should call back to.
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
Read implemented and pollable before building against a driver. implemented false is a registry stub whose vendor contract is not verified; pollable false means the gateway has no merchant-readable status API, so its callback is the only channel and a lost callback is a lost payment. min_amount is the PSP's own floor in major units, and 0 means no floor.
{
"data": {
"catalog": [
{
"id": "paymob",
"label": "Paymob",
"methods": [],
"fields": [],
"ttl_seconds": 900,
"min_amount": 0,
"implemented": true,
"pollable": true
}
],
"configured": [],
"public_base_url": "https://acme.example.com"
}
}
GET /api/v1/admin/payments/transactions/{id}
- Authentication
- Staff token or session
- Requires any one of
-
prm_report_gateway_transactionsprm_report_gateway_transactions_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/payments/transactions/{id}/recheck Re-check and write off gateway transactions
- Authentication
- Staff token or session
- Requires permission
-
prm_payments_manageRe-check and write off gateway transactions - Rate limit
pay_init
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/payments/transactions/{id}/refund Mark gateway payments paid / refunded (moves money)
- Authentication
- Staff token or session
- Requires permission
-
prm_payments_settleMark gateway payments paid / refunded (moves money) - Rate limit
pay_init
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/payments/transactions/{id}/settle Mark gateway payments paid / refunded (moves money)
- Authentication
- Staff token or session
- Requires permission
-
prm_payments_settleMark gateway payments paid / refunded (moves money) - Rate limit
pay_init
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/payments/transactions/{id}/status Re-check and write off gateway transactions
- Authentication
- Staff token or session
- Requires permission
-
prm_payments_manageRe-check and write off gateway transactions - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Freezone
12GET /api/v1/freezone/preview-address-list Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/freezone/push Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/freezone/router-script Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/freezone/zones Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/freezone/zones Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/freezone/zones/bulk-delete Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/freezone/zones/{id} Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/freezone/zones/{id} Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/freezone/zones/{id}/entries Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/freezone/zones/{id}/entries Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/freezone/zones/{id}/entries/bulk-delete Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/freezone/zones/{id}/entries/{entryId} Manage Free Zone networks
- Authentication
- Staff token or session
- Requires permission
-
prm_freezone_manageManage Free Zone networks - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POS
11GET /api/v1/pos/products Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/pos/sales Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/pos/sales Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/pos/sales/{id}/print-job Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/pos/sales/{id}/printed Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/pos/sales/{id}/void
- Authentication
- Staff token or session
- Requires any one of
-
prm_pos_sellprm_pos_void - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/pos/shifts Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/pos/shifts Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/pos/shifts/current Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/pos/shifts/{id}/close Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/pos/shifts/{id}/report Sell cards at the counter (till)
- Authentication
- Staff token or session
- Requires permission
-
prm_pos_sellSell cards at the counter (till)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Sessions
11GET /api/v1/admin/sessions List live sessions
Sessions with no stop time, paginated with the standard list parameters. A non-admin caller sees only sessions belonging to their own manager subtree, injected server-side.
- Authentication
- Staff token or session
- Requires permission
-
prm_report_sessionsSessions report
user_id is null for a session this instance cannot tie to a subscriber row, such as an anonymous voucher or an orphan left by a NAS restart. status and usage are absent on those too. Do not assume every live session has an owner.
Parameters
| Parameter | Description |
|---|---|
q
query · string
|
Searches username, first and last name, framed IP, device MAC and NAS name. |
filter[nas_id]
query · integer
|
Sessions on one registered NAS. |
filter[kind]
query · enum
|
subscriber, guest, voucher or unknown. |
filter[has_ip]
query · boolean
|
Sessions that were assigned a framed IP. |
filter[duration_band]
query · string
|
Duration bucket. The value "stale" means no accounting update for longer than the tenant's idle window, which is the practical definition of a ghost session. |
filter[expired]
query · boolean
|
Sessions whose owner's subscription has run out but who are still connected. |
{
"data": [
{
"id": 8821904,
"acct_session_id": "81b0c4e2",
"username": "ahmed",
"user_id": 4711,
"kind": "subscriber",
"nas_ip": "10.20.0.1",
"nas_id": 3,
"nas_name": "cairo-edge-1",
"vendor": "mikrotik",
"framed_ip": "10.64.12.51",
"calling_station_id": "AA:BB:CC:DD:EE:FF",
"start_time": "2026-09-20 07:11:02",
"update_time": "2026-09-20 09:06:02",
"session_time": 6900,
"input_octets": 412000000,
"output_octets": 5100000000,
"profile_name": "Home 20M",
"usage": { "percent": 55.0, "dimension": "data" }
}
],
"meta": { "page": 1, "page_size": 50, "total": 318, "has_next": true }
}
POST /api/v1/admin/sessions/bulk-disconnect Disconnect many sessions
Sends a Disconnect-Request per session id and reports the per-id outcome. One request against the write budget rather than one per session.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_live_trafficLive traffic / disconnect - Rate limit
t_mutate
The same NAS-accepted-it caveat as the single disconnect applies to every id in the report, and the partial-failure envelope means a 200 does not mean all of them were sent.
Parameters
| Parameter | Description |
|---|---|
idsrequired
body · array
|
Session ids. |
POST /api/v1/admin/sessions/bulk-lock-mac Lock user MAC
- Authentication
- Staff token or session
- Requires permission
-
prm_users_mac_lockLock user MAC - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/sessions/bulk-ping Ping user
- Authentication
- Staff token or session
- Requires permission
-
prm_users_pingPing user - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/sessions/{id} Fetch one live session
One session with the full projection, including the joined subscriber attributes.
- Authentication
- Staff token or session
- Requires permission
-
prm_report_sessionsSessions report
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
The accounting row id, not the subscriber id. |
POST /api/v1/admin/sessions/{id}/disconnect Disconnect a session
Sends an RFC 5176 Disconnect-Request straight from this platform to the NAS that owns the session. The packet goes out over UDP to the device, not through the RADIUS server.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_live_trafficLive traffic / disconnect - Rate limit
t_mutate
ok true means the NAS ACCEPTED the packet, not that the subscriber is off the network. Whether the session actually ends is up to the device, and it will be reflected in accounting a moment later. nak true is also a success from your point of view: the NAS replied "no such session", so it is already gone. Only a 502 means the disconnect did not happen.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Session id. |
{
"data": { "ok": true, "nak": false, "message": "disconnected" }
}
GET /api/v1/admin/sessions/{id}/live-traffic Read near-real-time throughput
Returns bits per second when the session's NAS has SNMP management credentials with an interface selector configured, by polling the device twice about a second apart. Without them it degrades to the accounting counters.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_live_trafficLive traffic / disconnect
Check the source field before trusting the numbers. source "snmp" is a real measurement; source "interim" means there were no SNMP credentials, the device was unreachable, or the sampler is not wired — the counters are the last accounting values and bps is 0, and your client has to derive the rate from successive polls itself.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Session id. |
GET /api/v1/admin/sessions/{id}/live-traffic/stream Live traffic / disconnect
- Authentication
- Staff token or session
- Requires permission
-
prm_users_live_trafficLive traffic / disconnect
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/sessions/{id}/lock-mac Bind the subscriber to this session's device
Writes the session's calling-station MAC into the subscriber's locked-MAC list. From the next authentication onward only that device may connect. The current session is left up, since it already uses the locked MAC.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_mac_lockLock user MAC - Rate limit
t_mutate
This endpoint also turns the lock ON, which the subscriber PATCH does not. Writing mac_locked_addrs through PATCH /users/{id} without setting mac_lock_enabled stores a list that enforces nothing.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Session id. |
{
"data": {
"user_id": 4711,
"mac": "AA:BB:CC:DD:EE:FF",
"locked_macs": ["AA:BB:CC:DD:EE:FF"]
}
}
POST /api/v1/admin/sessions/{id}/ping Ping the subscriber's device
Sends ICMP echo to the session's framed IP from the platform. An operator diagnostic, not a monitoring feed.
- Authentication
- Staff token or session
- Requires permission
-
prm_users_pingPing user - Rate limit
t_mutate
On the per-tenant probe budget, which is 10 a minute on a standard licence. It is sized for an operator clicking a button; a polling loop will exhaust it in six seconds and take every other probe endpoint down with it.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Session id. |
GET /api/v1/admin/sessions/{id}/traffic Poll a session's counters
The lightweight counter snapshot behind a live traffic graph. It is a snapshot, not a rate — derive throughput from the difference between two polls and the difference between their sampled_at stamps.
- Authentication
- Staff token or session
- Requires permission
-
prm_report_sessionsSessions report
update_time is when the NAS last reported, and sampled_at is when this server read it. They differ by up to one accounting interval, so two polls closer together than that interval return identical counters and a throughput of zero. That is the NAS being quiet, not the subscriber.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Session id. |
{
"data": {
"id": 8821904,
"session_time": 6900,
"input_octets": 412000000,
"output_octets": 5100000000,
"update_time": "2026-09-20 09:06:02",
"sampled_at": "2026-09-20 09:08:31"
}
}
Cards
10POST /api/v1/admin/cards/redeem-otc Redeem a card over the counter
The same operation as the subscriber-facing redeem, with one difference: the acting manager is recorded as the reseller, so the redemption snapshots what they paid against what they charged. Without that, per-reseller pricing never resolves and every redemption records face value on both sides.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_verifyVerify / redeem cards - Rate limit
card_redeem- Idempotency key
request_id
Parameters
| Parameter | Description |
|---|---|
coderequired
body · string
|
The plaintext card code. |
user_idrequired
body · integer
|
The subscriber to credit. |
request_idrequired
body · string
|
Idempotency key. |
POST /api/v1/admin/cards/redeem-to-wallet Top up own wallet online
- Authentication
- Staff token or session
- Requires permission
-
prm_managers_self_depositTop up own wallet online - Rate limit
card_wallet_redeem
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/cards/redemptions/{id} View card batches & cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/cards/redemptions/{id}/reversals View card batches & cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/cards/redemptions/{id}/reversals Refund last activation
- Authentication
- Staff token or session
- Requires permission
-
prm_users_refundRefund last activation - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/cards/redeem Redeem a card onto a subscriber
Spends a card and applies its effect to the named subscriber. Two authority checks run, both derived from your credential and neither from the body: the card must be in your subtree, and the subscriber must be one you may write to. Both denials are 404s identical to "no such card" and "no such subscriber".
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_verifyVerify / redeem cards - Rate limit
card_redeem- Idempotency key
request_id
A replay returns 200 with the same card_id, mode and effect_applied, and NO replay flag — but new_balance is ABSENT, because the replay path returns the stored effect without re-reading the wallet. A missing new_balance is not a failure and is not a reason to retry. Read the balance off the subscriber record if you need it.
Parameters
| Parameter | Description |
|---|---|
coderequired
body · string
|
The plaintext card code. |
user_idrequired
body · integer
|
The subscriber to credit. |
request_idrequired
body · string
|
Idempotency key. |
{
"data": {
"card_id": 90211,
"mode": "refill_balance",
"user_id": 4711,
"effect_applied": { "type": "add_balance", "amount": 150.00 },
"new_balance": 400.00
}
}
POST /api/v1/cards/redeem-create
- Authentication
- Public
- Rate limit
card_redeem
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/cards/search Verify one card by code, serial or username
The counter-staff lookup. Finds a single card and reports its state, its owning reseller and who spent it. Confined to the caller's manager subtree unless they are an administrator.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_verifyVerify / redeem cards - Rate limit
card_search
A card outside your subtree answers the same 404 as an unknown keyword, never a 403 — a 403 would confirm the code exists and turn this into a code-guessing oracle. It carries its own per-operator budget for the same reason, separate from the tenant's.
Parameters
| Parameter | Description |
|---|---|
kindrequired
query · enum
|
code, serial or username. |
keywordrequired
query · string
|
The value to match. A code is normalised first, so separators and mixed case still resolve. |
{
"data": {
"card_id": 90211,
"serial": "000312",
"state": "consumed",
"effective_state": "consumed",
"disposition": "",
"mode": "voucher_account",
"plan_name": "Home 20M",
"batch_id": 208,
"face_value": 150.00,
"redemptions_left": 0,
"owner_manager_id": 41,
"owner_username": "cairo-reseller",
"used_by_kind": "user",
"used_by_user_id": 4711,
"used_by_username": "ahmed",
"used_channel": "customer_portal",
"first_use_at": "2026-09-14 18:22:10",
"expires_at": "2027-01-01 00:00:00"
}
}
POST /api/v1/cards/{id}/revoke Revoke one card
Flips a single card to revoked. A revoked card can never be redeemed, and the state is terminal.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_suspend_releaseSuspend / release cards - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Card id. |
GET /api/v1/cards/{id}/timeline One card's full lifecycle
Header facts plus the chronological event list for a single card: when it was minted, printed, sold, transferred and redeemed.
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_listView card batches & cards - Rate limit
card_timeline
This endpoint's rate-limit bucket counts DENIED lookups too, on purpose. The limiter sits ahead of the visibility check, so a walk of the card id space burns budget rather than running unmetered behind a 404.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Card id. |
Developer
10GET /api/v1/developer/admin/api-tokens View and revoke ALL API tokens in this tenant
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokens_allView and revoke ALL API tokens in this tenant
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/developer/admin/api-tokens/{id} View and revoke ALL API tokens in this tenant
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokens_allView and revoke ALL API tokens in this tenant - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/developer/api-tokens Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/developer/api-tokens Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/developer/api-tokens/scopes Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/developer/api-tokens/{id} Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/developer/api-tokens/{id} Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/developer/api-tokens/{id}/record Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/developer/api-tokens/{id}/reveal Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens - Rate limit
api_token_reveal
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/developer/api-tokens/{id}/roll Create and manage my API tokens
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_api_tokensCreate and manage my API tokens - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Devgw
10CONNECT /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
HEAD /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
OPTIONS /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
QUERY /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
TRACE /api/v1/admin/devgw/ssh/ws
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Hotspot
10GET /api/v1/hotspot/pages Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/hotspot/pages Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/hotspot/pages/bulk-delete Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/hotspot/pages/{id} Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/hotspot/pages/{id} Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/hotspot/pages/{id} Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/hotspot/pages/{id}/download Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/hotspot/pages/{id}/duplicate Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/hotspot/preview Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/hotspot/templates Manage hotspot pages
- Authentication
- Staff token or session
- Requires permission
-
prm_hotspot_manageManage hotspot pages
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Card Templates
9GET /api/v1/card-templates
- Authentication
- Staff token or session
- Requires any one of
-
prm_card_templates_indexprm_card_templates_index_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-templates Create / edit card templates
- Authentication
- Staff token or session
- Requires permission
-
prm_card_templates_manageCreate / edit card templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-templates/from-batch Create / edit card templates
- Authentication
- Staff token or session
- Requires permission
-
prm_card_templates_manageCreate / edit card templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/card-templates/{id} Delete card templates
- Authentication
- Staff token or session
- Requires permission
-
prm_card_templates_deleteDelete card templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-templates/{id}
- Authentication
- Staff token or session
- Requires any one of
-
prm_card_templates_indexprm_card_templates_index_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/card-templates/{id} Create / edit card templates
- Authentication
- Staff token or session
- Requires permission
-
prm_card_templates_manageCreate / edit card templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/card-templates/{id}/generate Generate user cards
- Authentication
- Staff token or session
- Requires permission
-
prm_cards_generate_userGenerate user cards - Requires any one of
-
prm_card_templates_indexprm_card_templates_index_all - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/card-templates/{id}/sharing Share card templates (public / allow-list)
- Authentication
- Staff token or session
- Requires permission
-
prm_card_templates_shareShare card templates (public / allow-list)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/card-templates/{id}/sharing Share card templates (public / allow-list)
- Authentication
- Staff token or session
- Requires permission
-
prm_card_templates_shareShare card templates (public / allow-list) - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
IP Pools
9GET /api/v1/ip-pools View IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_viewView IP pools
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/ip-pools Manage IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_manageManage IP pools - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/ip-pools/bulk-delete Manage IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_manageManage IP pools - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/ip-pools/names View IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_viewView IP pools
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/ip-pools/{id} Manage IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_manageManage IP pools - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/ip-pools/{id} View IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_viewView IP pools
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/ip-pools/{id} Manage IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_manageManage IP pools - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/ip-pools/{id}/leases View IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_viewView IP pools
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/ip-pools/{id}/leases/{leaseId}/release Manage IP pools
- Authentication
- Staff token or session
- Requires permission
-
prm_ippool_manageManage IP pools - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Shop
9POST /api/v1/admin/shop/batches/bulk-publish Publish / unpublish card series to the shop
- Authentication
- Staff token or session
- Requires permission
-
prm_shop_publishPublish / unpublish card series to the shop - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/shop/batches/{id}/publish Publish / unpublish card series to the shop
- Authentication
- Staff token or session
- Requires permission
-
prm_shop_publishPublish / unpublish card series to the shop - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/shop/batches/{id}/unpublish Publish / unpublish card series to the shop
- Authentication
- Staff token or session
- Requires permission
-
prm_shop_publishPublish / unpublish card series to the shop - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/shop/readiness View the Card Shop
- Authentication
- Staff token or session
- Requires permission
-
prm_shop_indexView the Card Shop
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/shop/sales
- Authentication
- Staff token or session
- Requires any one of
-
prm_shop_salesprm_shop_sales_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/shop/sales/{id}
- Authentication
- Staff token or session
- Requires any one of
-
prm_shop_salesprm_shop_sales_all
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/shop/sales/{id}/resend
- Authentication
- Staff token or session
- Requires any one of
-
prm_shop_salesprm_shop_sales_all - Rate limit
pay_init
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/shop/sales/{id}/reveal Reveal a shop buyer's name and phone
- Authentication
- Staff token or session
- Requires permission
-
prm_shop_buyer_contactReveal a shop buyer's name and phone - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/shop/storefront View the Card Shop
- Authentication
- Staff token or session
- Requires permission
-
prm_shop_indexView the Card Shop
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Webhooks
9GET /api/v1/admin/webhooks/deliveries Read the delivery log
One page of delivery attempts, newest first, without the payload bodies. This is where you diagnose an integration that is not receiving events.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
failed and dead are different. failed means it will be retried, and next_attempt_at says when; dead means the attempt budget is spent and nothing further will happen without a replay. An integration that went quiet has rows in dead, not failed.
Parameters
| Parameter | Description |
|---|---|
filter[endpoint_id]
query · integer
|
Narrow to one endpoint. Also accepted as a bare endpoint_id parameter. |
filter[state]
query · enum
|
queued, sending, sent, failed or dead. An unknown value is a 400. |
sort
query · string
|
queued_at, state, attempts or id. Defaults to queued_at descending. |
{
"data": [
{
"id": 77120,
"endpoint_id": 4,
"event_type": "user.created",
"state": "failed",
"attempts": 3,
"max_attempts": 6,
"response_code": 502,
"response_ms": 1204,
"last_error": "upstream returned 502",
"url": "https://hooks.acme.example/xradius",
"queued_at": "2026-09-20 09:00:00",
"sent_at": "2026-09-20 09:04:11",
"next_attempt_at": "2026-09-20 09:20:00"
}
],
"meta": { "page": 1, "page_size": 50, "total": 4102, "has_next": true }
}
POST /api/v1/admin/webhooks/deliveries/{id}/replay Replay a delivery
Re-queues a past delivery, which is how a dead one is recovered after the receiving side is fixed.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_egress
Your receiver will see the same event twice if the original eventually landed. Webhook receivers have to be idempotent on the event id; this endpoint is one of the reasons why.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Delivery id. |
GET /api/v1/admin/webhooks/endpoints List webhook endpoints
Every configured endpoint for the tenant, with its subscription set. Un-paginated: the whole set is page 1 and has_next is always false.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
{
"data": [
{
"id": 4,
"name": "billing-sync",
"url": "https://hooks.acme.example/xradius",
"events": ["user.created", "user.disconnected"],
"all_events": false,
"enabled": true,
"created_at": "2026-06-11 14:20:00",
"updated_at": "2026-09-02 08:31:12"
}
],
"meta": { "page": 1, "page_size": 1, "total": 1, "has_next": false }
}
POST /api/v1/admin/webhooks/endpoints Create a webhook endpoint
Registers a URL and the events it should receive. Set all_events to subscribe to everything, present and future, instead of naming keys.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Answers 200, not 201, despite creating a record. Do not gate your client on the status code here.
Parameters
| Parameter | Description |
|---|---|
namerequired
body · string
|
A label for the endpoint. |
urlrequired
body · string
|
Where deliveries are POSTed. Validated on save. |
events
body · array
|
Event keys from the catalogue. Ignored when all_events is true. |
all_events
body · boolean
|
Subscribe to every event, including ones added in later releases. |
enabled
body · boolean
|
Defaults to true on create. |
POST /api/v1/admin/webhooks/endpoints/bulk-delete Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/webhooks/endpoints/{id} Delete a webhook endpoint
Removes the endpoint. Queued deliveries for it stop.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Endpoint id. |
PATCH /api/v1/admin/webhooks/endpoints/{id} Update a webhook endpoint
Replaces name, url, events and all_events outright, and patches enabled only when it is present. Send the full object, because a missing events array clears the subscription rather than leaving it alone.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
This is a PATCH that behaves as a replace for four of its five fields. An update that sends only url wipes the events list.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Endpoint id. |
POST /api/v1/admin/webhooks/endpoints/{id}/test Send a test delivery
Queues one synthetic delivery to the endpoint and returns its id so you can follow it in the log.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_egress
The delivery is QUEUED, not sent. A 200 here says the job was created, not that your endpoint answered. Poll the delivery log for the outcome. It is also on the per-tenant egress budget, which is 5 a minute on a standard licence.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Endpoint id. |
{
"data": { "delivery_id": 77120 }
}
GET /api/v1/admin/webhooks/event-catalog List subscribable event keys
Every event an endpoint may subscribe to, with its category. The create and update endpoints validate the events array against exactly this set, so read it before writing one. Static for the life of the release, so fetch it once and cache it.
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
{
"data": [
{ "key": "user.created", "category": "lifecycle" },
{ "key": "user.disconnected", "category": "lifecycle" },
{ "key": "usage.threshold", "category": "usage" }
],
"meta": { "page": 1, "page_size": 3, "total": 3, "has_next": false }
}
Addons
8GET /api/v1/addons Sell add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_users_addonSell add-ons
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/addons View add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_addons_indexView add-ons
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/addons Manage add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_addons_manageManage add-ons - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/addons/bulk-delete Manage add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_addons_manageManage add-ons - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/addons/{id} Manage add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_addons_manageManage add-ons - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/addons/{id} Manage add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_addons_manageManage add-ons - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/addons/{id}/allowed-profiles View add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_addons_indexView add-ons
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/addons/{id}/allowed-profiles Manage add-ons
- Authentication
- Staff token or session
- Requires permission
-
prm_addons_manageManage add-ons - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Dashboards
8GET /api/v1/admin/dashboards/me
- Authentication
- Staff token or session
- Rate limit
t_values
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/dashboards/me/appearance
- Authentication
- Staff token or session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/dashboards/me/customize
- Authentication
- Staff token or session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/dashboards/me/customize
- Authentication
- Staff token or session
- Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/dashboards/me/designed
- Authentication
- Staff token or session
- Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/dashboards/me/tiles/{id}
- Authentication
- Staff token or session
- Rate limit
t_values
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/dashboards/me/values
- Authentication
- Staff token or session
- Rate limit
t_values
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/dashboards/support View support tickets
- Authentication
- Staff token or session
- Requires permission
-
prm_tickets_viewView support tickets - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Forms
8GET /api/v1/admin/forms Manage custom form fields
- Authentication
- Staff token or session
- Requires permission
-
prm_forms_manageManage custom form fields
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/forms Manage custom form fields
- Authentication
- Staff token or session
- Requires permission
-
prm_forms_manageManage custom form fields - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/forms/bulk-delete Manage custom form fields
- Authentication
- Staff token or session
- Requires permission
-
prm_forms_manageManage custom form fields - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/forms/manifest Create users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_createCreate users
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/forms/reorder Manage custom form fields
- Authentication
- Staff token or session
- Requires permission
-
prm_forms_manageManage custom form fields - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/forms/{form_name}/schema Create users
- Authentication
- Staff token or session
- Requires permission
-
prm_users_createCreate users
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/forms/{id} Manage custom form fields
- Authentication
- Staff token or session
- Requires permission
-
prm_forms_manageManage custom form fields - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/forms/{id} Manage custom form fields
- Authentication
- Staff token or session
- Requires permission
-
prm_forms_manageManage custom form fields - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Sas4
8GET /api/v1/admin/sas4/export Export SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_exportExport SAS4 backup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/sas4/import/jobs Import SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_importImport SAS4 backup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/sas4/import/jobs Import SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_importImport SAS4 backup - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/sas4/import/jobs/bulk-delete Import SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_importImport SAS4 backup - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/sas4/import/jobs/{id} Import SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_importImport SAS4 backup - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/sas4/import/jobs/{id} Import SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_importImport SAS4 backup
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/sas4/import/jobs/{id}/cancel Import SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_importImport SAS4 backup - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/sas4/import/jobs/{id}/start Import SAS4 backup
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_sas4_importImport SAS4 backup - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Backup
7GET /api/v1/admin/backup/destinations Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/backup/destinations Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/backup/destinations Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/backup/destinations/{provider} Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/backup/destinations/{provider}/connect Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/backup/destinations/{provider}/test Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_probe
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/backup/remote-types Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Control
7POST /api/v1/control/managers/2fa-reset
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/control/ping
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/control/registrations
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/control/registrations/{public_id}/approve
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/control/registrations/{public_id}/reject
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/control/sync
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/control/sysbackup/ticket
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Exports
7GET /api/v1/exports List export jobs
Jobs the caller owns, with their progress. A non-admin sees only jobs from their own manager subtree.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_indexView export jobs
Parameters
| Parameter | Description |
|---|---|
filter[status]
query · string
|
Job status. |
filter[format]
query · enum
|
csv or xlsx. |
filter[target_table]
query · string
|
One dataset key. The special value "reports" expands to every report dataset rather than matching exactly. |
{
"data": [
{
"id": 3312,
"target_table": "users",
"format": "xlsx",
"status": "running",
"processed": 4200,
"total": 8120,
"row_count": 0,
"manager_id": 41,
"created_at": "2026-09-20 09:10:00",
"started_at": "2026-09-20 09:10:04"
}
],
"meta": { "page": 1, "page_size": 50, "total": 12, "has_next": false }
}
POST /api/v1/exports Queue an export
Creates the job and returns immediately; a separate worker produces the file. The caller's authority scope is stamped onto the job server-side, so an export contains exactly what that manager's list view would show and nothing more.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_createCreate / delete export jobs - Rate limit
t_heavy- Idempotency key
request_id
Exporting a table needs the permission to read it as well as the permission to export. The route's own gate is not enough, so a role with export rights but no subscriber-read right gets a 403 on target_table users. That is the check that stops an export from being a way around a list permission.
Parameters
| Parameter | Description |
|---|---|
target_tablerequired
body · string
|
A dataset key from the datasets endpoint. |
format
body · enum
|
csv or xlsx. Defaults to xlsx. |
params
body · object
|
Dataset-specific filters, in the same shape that dataset's list endpoint accepts. |
request_id
body · string
|
Optional idempotency key. Blank stays blank and means no deduplication at all — supply your own if a retry must not queue a second job. |
{
"data": { "id": 3312 }
}
POST /api/v1/exports/bulk-delete Create / delete export jobs
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_createCreate / delete export jobs - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/exports/datasets List exportable datasets
Every table this build can export, with its key. target_table on the enqueue call must be one of these, and an unknown value is a 400. Static for the life of the release, so fetch it once and cache it.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_indexView export jobs
DELETE /api/v1/exports/{id} Delete an export job
Removes the job and its artifact.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_createCreate / delete export jobs - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Job id. |
GET /api/v1/exports/{id} Poll one export job
The job's current state and progress. Poll this until status reports the job is finished, then download.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_indexView export jobs
processed and total drive a progress bar; row_count is the final emitted count and stays 0 until the job finishes. A job that is not yours answers 404 rather than 403, so job ids are not enumerable across resellers.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Job id. |
GET /api/v1/exports/{id}/download Download an export artifact
Streams the finished file. The ownership check runs again here, because the artifact itself can contain another reseller's card codes and balances.
- Authentication
- Staff token or session
- Requires permission
-
prm_exports_downloadDownload export files - Rate limit
t_heavy
404 until the job has actually produced an artifact, which is indistinguishable from "no such job". Poll the job first rather than treating a download 404 as a permanent failure. This route is on the per-tenant heavy budget.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Job id. |
Notification Outbox
7GET /api/v1/admin/notification-outbox Notification Queue
- Authentication
- Staff token or session
- Requires permission
-
prm_log_notificationsNotification Queue
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-outbox/bulk-delete Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-outbox/bulk-retry Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/notification-outbox/{id} Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/notification-outbox/{id} Notification Queue
- Authentication
- Staff token or session
- Requires permission
-
prm_log_notificationsNotification Queue
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-outbox/{id}/retry Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/notification-outbox/{id}/status Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Notification Rules
7GET /api/v1/admin/notification-rules Manage usage notifications
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_notificationsManage usage notifications
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-rules Manage usage notifications
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_notificationsManage usage notifications - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-rules/bulk Manage usage notifications
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_notificationsManage usage notifications - Rate limit
t_egress
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-rules/bulk-delete Manage usage notifications
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_notificationsManage usage notifications - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/notification-rules/log Manage usage notifications
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_notificationsManage usage notifications
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/notification-rules/{id} Manage usage notifications
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_notificationsManage usage notifications - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/notification-rules/{id} Manage usage notifications
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_notificationsManage usage notifications - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Roles
7GET /api/v1/roles List roles
Every role visible to the tenant, with its permission count and the exact code set it grants. System roles sort first.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions
Un-paginated. template_key is the provisioning slug a seeded role came from, and is null for a hand-made one — it is populated by this list only, not by the role pickers.
{
"data": [
{
"id": 2,
"tenant_id": 12,
"name": "support",
"description": "Read subscribers, reply to tickets",
"is_system": false,
"template_key": "support",
"immutable": false,
"permission_count": 14,
"permissions": ["prm_tickets_reply", "prm_tickets_view", "prm_users_index"]
}
]
}
POST /api/v1/roles Create a role
Creates a named permission set. A caller may only grant codes they hold themselves, so a role cannot be used to mint authority its author does not have.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions - Rate limit
t_mutate
The containment rule is the point of this endpoint. You cannot author a role carrying a permission you lack, and you cannot assign someone else's role that carries one either — the assign path runs the same check, because otherwise the author check would be trivially bypassed.
Parameters
| Parameter | Description |
|---|---|
namerequired
body · string
|
Unique within the tenant. Reserved names are refused. |
permissions
body · array
|
Permission codes from the catalogue. Unknown codes are rejected, not dropped. |
POST /api/v1/roles/bulk-delete Manage roles & permissions
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/roles/{id} Delete a role
Removes the role. System and immutable roles are refused, and so is a role that is still assigned.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions - Rate limit
t_mutate
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Role id. |
GET /api/v1/roles/{id} Fetch one role
The role and the exact set of permission codes it grants.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Role id. |
PATCH /api/v1/roles/{id} Update a role
Edits the name, description and permission set. The immutable administrator role cannot be edited at all.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions - Rate limit
t_mutate
Changing a role changes the authority of every manager holding it, and every API token those managers own, on the next request. There is no notification and no record against the affected tokens.
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Role id. |
PUT /api/v1/roles/{id}/portal-permissions Set a role's subscriber-portal permissions
The separate set that governs what a SUBSCRIBER may do in the self-service portal, not what a manager may do in the admin API. Different catalogue, different meaning.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions - Rate limit
t_mutate
These are not prm_* codes and they do not affect the admin API at all. Confusing the two sets is the usual cause of "I gave the role the permission and nothing changed".
Parameters
| Parameter | Description |
|---|---|
idrequired
path · integer
|
Role id. |
Branding
6GET /api/v1/branding
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/branding/assets/{key}
- Authentication
- Public
- Rate limit
branding_asset
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/branding/assets/{slot} Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/branding/icons/{key}/{variant}.png
- Authentication
- Public
- Rate limit
branding_icon
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/branding/manifest.webmanifest
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/branding/user/manifest.webmanifest
- Authentication
- Public
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Email Templates
6GET /api/v1/admin/email-templates Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/email-templates Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/email-templates/bulk-delete Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/email-templates/preview Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/email-templates/test Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/email-templates/{id} Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Import
6GET /api/v1/admin/import/fields Import data
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_importImport data
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/import/jobs Import data
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_importImport data
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/import/jobs Import data
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_importImport data - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/import/jobs/{id} Import data
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_importImport data
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/import/jobs/{id}/cancel Import data
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_importImport data - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/import/validate Import data
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_importImport data - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Notification Channels
6GET /api/v1/admin/notification-channels Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-channels Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-channels/bulk-delete Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/notification-channels/{id} Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/notification-channels/{id} Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-channels/{id}/test Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Trash
6GET /api/v1/admin/trash View & restore Trash
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_trashView & restore Trash
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/trash/bulk-purge Permanently delete from Trash
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_trash_purgePermanently delete from Trash - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/trash/bulk-restore View & restore Trash
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_trashView & restore Trash - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/trash/empty Permanently delete from Trash
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_trash_purgePermanently delete from Trash - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/trash/{id}/preflight View & restore Trash
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_trashView & restore Trash
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/trash/{id}/restore View & restore Trash
- Authentication
- Staff token or session
- Requires permission
-
prm_tools_trashView & restore Trash - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Groups
5GET /api/v1/admin/groups View groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_indexView groups
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/groups Create groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_createCreate groups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/groups/bulk-delete Delete groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_deleteDelete groups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/groups/{id} Delete groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_deleteDelete groups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/groups/{id} Edit groups
- Authentication
- Staff token or session
- Requires permission
-
prm_groups_updateEdit groups - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Telegram
5POST /api/v1/admin/telegram/broadcast Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_egress
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/telegram/broadcast/audience-count Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/telegram/webhook/register Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/telegram/webhook/status Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/telegram/webhook/unregister Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Console Sessions
4DELETE /api/v1/admin/console-sessions
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_remoteprm_nas_devices_remote - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/console-sessions
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_remoteprm_nas_devices_remote
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/console-sessions/bulk-close
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_remoteprm_nas_devices_remote - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/console-sessions/{sid}
- Authentication
- Staff token or session
- Requires any one of
-
prm_nas_remoteprm_nas_devices_remote - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Notification Templates
4GET /api/v1/admin/notification-templates Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-templates Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/notification-templates/bulk-delete Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/notification-templates/{id} Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Pricing
4GET /api/v1/admin/pricing Manage profile pricing
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_pricingManage profile pricing
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/pricing/manager/{id} Manage profile pricing
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_pricingManage profile pricing
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PUT /api/v1/admin/pricing/manager/{id} Manage profile pricing
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_pricingManage profile pricing - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/pricing/managers Manage profile pricing
- Authentication
- Staff token or session
- Requires permission
-
prm_profiles_pricingManage profile pricing
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Settings
4GET /api/v1/settings Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/settings Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/settings/reset Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/settings/{category}/{key} Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Setup
4GET /api/v1/admin/setup/checklist Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
DELETE /api/v1/admin/setup/sample Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/setup/sample Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_heavy
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
PATCH /api/v1/admin/setup/state Manage settings
- Authentication
- Staff token or session
- Requires permission
-
prm_settingsManage settings - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Telegram Manager
4POST /api/v1/admin/telegram-manager/link Use the manager Telegram bot
- Authentication
- Staff token or session Staff session only — an API token cannot call this
- Requires permission
-
prm_telegram_consoleUse the manager Telegram bot - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/telegram-manager/webhook/register Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/telegram-manager/webhook/status Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
POST /api/v1/admin/telegram-manager/webhook/unregister Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Billing
3GET /api/v1/billing/invoices List invoices across subscribers
Every invoice the caller may see, in one list, with filters for reconciling a period. A caller without tenant-wide visibility sees only invoices belonging to subscribers in their own manager subtree.
- Authentication
- Staff token or session
- Requires permission
-
prm_billingBilling & invoices
username is populated only on this cross-subscriber list, which joins the subscriber table. The per-subscriber list and the single-invoice fetch leave it empty, because there the subscriber is already known.
Parameters
| Parameter | Description |
|---|---|
filter[status]
query · string
|
Payment status. |
filter[username]
query · string
|
Narrow to one subscriber by username. |
filter[date_from]
query · string
|
Inclusive lower bound. A malformed value is a 400, not an ignored filter. |
filter[date_to]
query · string
|
Inclusive upper bound. |
filter[amount_min]
query · number
|
Inclusive lower amount bound. |
filter[amount_max]
query · number
|
Inclusive upper amount bound. |
{
"data": [
{
"id": 51204,
"user_id": 4711,
"username": "ahmed",
"invoice_number": "INV-2026-000512",
"type": "activation",
"amount": 171.00,
"discount": 0.00,
"vat": 14.00,
"status": "paid",
"description": "Home 20M (activate)",
"payment_method": "manager_balance",
"due_date": "2026-09-20 00:00:00",
"paid_on": "2026-09-20 09:15:02",
"created_by_manager_id": 41,
"created_by_name": "cairo-reseller",
"created_at": "2026-09-20 09:15:02"
}
],
"meta": { "page": 1, "page_size": 50, "total": 1284, "has_next": true }
}
POST /api/v1/billing/invoices Issue an invoice
Creates an invoice against a named subscriber from line items. discount and vat are percentages from 0 to 100, and the total is computed from the items — never taken from the request.
- Authentication
- Staff token or session
- Requires permission
-
prm_billingBilling & invoices - Rate limit
t_mutate
discount and vat are PERCENTAGES, and the validator rejects anything above 100. Sending 171.00 in the vat field to mean "171 in tax" is a 400, not a silently large invoice.
Parameters
| Parameter | Description |
|---|---|
user_idrequired
body · integer
|
The subscriber being invoiced. |
itemsrequired
body · array
|
At least one line, each with name, qty, unit_price and an optional per-line tax. |
discount
body · number
|
Percentage from 0 to 100, not an amount. |
vat
body · number
|
Percentage from 0 to 100, not an amount. |
due_date
body · string
|
yyyy-MM-dd HH:mm:ss in UTC. |
mark_paid
body · boolean
|
Record the new invoice as already settled. |
POST /api/v1/billing/invoices/bulk-pay Billing & invoices
- Authentication
- Staff token or session
- Requires permission
-
prm_billingBilling & invoices - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Logs
2GET /api/v1/admin/logs/auth User Auth Log
- Authentication
- Staff token or session
- Requires permission
-
prm_log_authUser Auth Log
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
GET /api/v1/admin/logs/system System Log (manager activity)
- Authentication
- Staff token or session
- Requires permission
-
prm_log_systemSystem Log (manager activity)
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
License
1GET /api/v1/license
- Authentication
- Staff token or session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Notification Event Options
1PUT /api/v1/admin/notification-event-options Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Notification Events
1GET /api/v1/admin/notification-events Manage notification channels & templates
- Authentication
- Staff token or session
- Requires permission
-
prm_notifications_manageManage notification channels & templates
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Permissions
1GET /api/v1/permissions List the permission catalogue
Every permission code this build defines, with its group, label, help text, stated effect and risk class. This is the authoritative list a role editor or a token scope picker should render from.
- Authentication
- Staff token or session
- Requires permission
-
prm_roles_manageManage roles & permissions
English only, and deliberately not translated — these are operator-facing catalogue strings baked into the build, not localized messages. risk is read, write or danger, and is the right signal for warning someone before they tick a box.
{
"data": [
{
"code": "prm_users_index",
"group": "Subscribers",
"label": "View subscribers",
"desc": "See the subscriber list and open a subscriber record.",
"effect": "Read-only.",
"risk": "read"
}
]
}
Postpaid
1POST /api/v1/admin/postpaid/generate-now Billing & invoices
- Authentication
- Staff token or session
- Requires permission
-
prm_billingBilling & invoices - Rate limit
t_mutate
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
System
1GET /api/v1/system/updates
- Authentication
- Staff token or session
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
Tenants
1POST /api/v1/tenants
- Authentication
- Control plane
Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.
No endpoint matches that search.
Written to be read by machines too
The reference is public and needs no account, so a tool that has never seen X-Radius can reach a correct first call on its own.
- /llms.txt
- An index of every page, with one-line summaries.
- /llms-full.txt
- The whole reference as one Markdown file, with no navigation to crawl.
- /openapi.json
- OpenAPI 3.1, generated from the router that serves this instance.
- /skill.md
- A ready-made skill file for an assistant: authentication, the response envelope and the error codes in one page.
<page-url>.md- Append .md to any reference URL for the same page as Markdown.
Accept: text/markdown- Send this header on the ordinary URL and the answer comes back as Markdown instead.
Read https://x-radius.com/llms.txt, then fetch the endpoint you need as Markdown by appending .md to its URL.