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.

902 Endpoints
58 Resource groups

View as Markdown

Users

92
GET /api/v1/users List subscribers prm_users_index

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_index View 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.
Response 200 OK
{
  "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 prm_users_create

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_create Create 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.
Response 201 Created
{
  "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 prm_users_extend
Authentication
Staff token or session
Requires permission
prm_users_extend Extend 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 prm_users_extend
Authentication
Staff token or session
Requires permission
prm_users_extend Extend 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 prm_users_add_traffic
Authentication
Staff token or session
Requires permission
prm_users_add_traffic Add 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 prm_users_delete
Authentication
Staff token or session
Requires permission
prm_users_delete Delete 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 prm_users_deposit
Authentication
Staff token or session
Requires permission
prm_users_deposit Deposit 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 prm_users_deposit
Authentication
Staff token or session
Requires permission
prm_users_deposit Deposit 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 prm_users_enable_disable

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_disable Enable / 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.
Response 200 OK
{
  "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 prm_users_live_traffic
Authentication
Staff token or session
Requires permission
prm_users_live_traffic Live 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 prm_users_enable_disable
Authentication
Staff token or session
Requires permission
prm_users_enable_disable Enable / 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_activate prm_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_activate prm_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 prm_users_withdrawal
Authentication
Staff token or session
Requires permission
prm_users_withdrawal Withdraw / 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 prm_users_reset_quota
Authentication
Staff token or session
Requires permission
prm_users_reset_quota Reset 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 prm_users_extend
Authentication
Staff token or session
Requires permission
prm_users_extend Extend 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 prm_groups_assign
Authentication
Staff token or session
Requires permission
prm_groups_assign Assign 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 prm_users_change_parent
Authentication
Staff token or session
Requires permission
prm_users_change_parent Change 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 prm_users_change_profile
Authentication
Staff token or session
Requires permission
prm_users_change_profile Change 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 prm_users_withdrawal
Authentication
Staff token or session
Requires permission
prm_users_withdrawal Withdraw / 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 prm_users_withdrawal
Authentication
Staff token or session
Requires permission
prm_users_withdrawal Withdraw / 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 prm_users_create
Authentication
Staff token or session
Requires permission
prm_users_create Create 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 prm_users_index

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_index View 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 prm_users_index

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_index View 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.

Response 200 OK
{
  "data": {
    "total": 812,
    "active": 640,
    "disabled": 44,
    "online": 318,
    "expired": 128
  }
}
DELETE /api/v1/users/{id} Delete a subscriber prm_users_delete

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_delete Delete users
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Subscriber id.
GET /api/v1/users/{id} Fetch one subscriber prm_users_index

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_index View 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.
Response 200 OK
{
  "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 prm_users_update

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_update Edit 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 prm_users_enable_disable

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_disable Enable / 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_activate prm_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.
Response 200 OK
{
  "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_activate prm_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.
Response 200 OK
{
  "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 prm_users_add_traffic

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_traffic Add 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 prm_users_addon
Authentication
Staff token or session
Requires permission
prm_users_addon Sell 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 prm_users_addon
Authentication
Staff token or session
Requires permission
prm_users_addon Sell 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 prm_users_approve_signup
Authentication
Staff token or session
Requires permission
prm_users_approve_signup Approve 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 prm_users_update
Authentication
Staff token or session
Requires permission
prm_users_update Edit 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 prm_users_buckets

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_buckets Manage 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 prm_users_cancel
Authentication
Staff token or session
Requires permission
prm_users_cancel Cancel 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 prm_users_change_parent

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_parent Change 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 prm_users_change_profile
Authentication
Staff token or session
Requires permission
prm_users_change_profile Change 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 prm_users_compensate
Authentication
Staff token or session
Requires permission
prm_users_compensate Compensate 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 prm_users_compensate_approve
Authentication
Staff token or session
Requires permission
prm_users_compensate_approve Approve/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 prm_users_compensate_approve
Authentication
Staff token or session
Requires permission
prm_users_compensate_approve Approve/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) prm_users_remote
Authentication
Staff token or session
Requires permission
prm_users_remote Remote 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 prm_users_index

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_index View users

Parameters

Parameter Description
idrequired path · integer Subscriber id.
Response 200 OK
{
  "data": { "total": 340.00, "owed_to_me": 120.00 }
}
POST /api/v1/users/{id}/deposit Credit a subscriber wallet prm_users_deposit

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_deposit Deposit 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.
Response 200 OK
{
  "data": {
    "journal_id": 90412,
    "balance": 250.00,
    "debt": 0.00,
    "replay": false
  }
}
GET /api/v1/users/{id}/documents Manage user documents prm_users_documents
Authentication
Staff token or session
Requires permission
prm_users_documents Manage 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 prm_users_documents
Authentication
Staff token or session
Requires permission
prm_users_documents Manage 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 prm_users_documents
Authentication
Staff token or session
Requires permission
prm_users_documents Manage 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 prm_users_documents
Authentication
Staff token or session
Requires permission
prm_users_documents Manage 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 prm_users_documents
Authentication
Staff token or session
Requires permission
prm_users_documents Manage 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 prm_users_documents
Authentication
Staff token or session
Requires permission
prm_users_documents Manage 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 prm_users_freezone_traffic
Authentication
Staff token or session
Requires permission
prm_users_freezone_traffic View 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 prm_users_freezone_traffic
Authentication
Staff token or session
Requires permission
prm_users_freezone_traffic View 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 prm_users_history
Authentication
Staff token or session
Requires permission
prm_users_history View 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 prm_users_invoices_view

Invoices belonging to a single subscriber, newest first.

Authentication
Staff token or session
Requires permission
prm_users_invoices_view View user invoices

Parameters

Parameter Description
idrequired path · integer Subscriber id.
POST /api/v1/users/{id}/invoices Create an invoice for a subscriber prm_users_invoices_create

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_create Create 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 prm_users_invoices_edit
Authentication
Staff token or session
Requires permission
prm_users_invoices_edit Edit / 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 prm_users_invoices_edit
Authentication
Staff token or session
Requires permission
prm_users_invoices_edit Edit / 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 prm_users_invoices_delete

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_delete Delete 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 prm_users_invoices_view

The invoice with its line items.

Authentication
Staff token or session
Requires permission
prm_users_invoices_view View 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 prm_users_invoices_edit

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_edit Edit / 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 prm_users_invoices_edit

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_edit Edit / 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 prm_users_invoices_view
Authentication
Staff token or session
Requires permission
prm_users_invoices_view View 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 prm_users_invoices_edit

Reverses the paid stamp. Again, bookkeeping only.

Authentication
Staff token or session
Requires permission
prm_users_invoices_edit Edit / 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 prm_users_index
Authentication
Staff token or session
Requires permission
prm_users_index View 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 prm_users_login_as
Authentication
Staff token or session
Requires permission
prm_users_login_as Log 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 prm_users_update
Authentication
Staff token or session
Requires permission
prm_users_update Edit 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 prm_users_parental
Authentication
Staff token or session
Requires permission
prm_users_parental Manage 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 prm_users_parental
Authentication
Staff token or session
Requires permission
prm_users_parental Manage 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 prm_users_withdrawal
Authentication
Staff token or session
Requires permission
prm_users_withdrawal Withdraw / 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 prm_users_index
Authentication
Staff token or session
Requires permission
prm_users_index View 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 prm_users_index

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_index View 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.
Response 200 OK
{
  "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 prm_users_buckets
Authentication
Staff token or session
Requires permission
prm_users_buckets Manage 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 prm_users_history
Authentication
Staff token or session
Requires permission
prm_users_history View 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 prm_users_radius_attributes
Authentication
Staff token or session
Requires permission
prm_users_radius_attributes Manage 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 prm_users_radius_attributes
Authentication
Staff token or session
Requires permission
prm_users_radius_attributes Manage 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 prm_users_radius_attributes
Authentication
Staff token or session
Requires permission
prm_users_radius_attributes Manage 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 prm_users_radius_attributes
Authentication
Staff token or session
Requires permission
prm_users_radius_attributes Manage 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 prm_users_radius_attributes
Authentication
Staff token or session
Requires permission
prm_users_radius_attributes Manage 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 prm_users_index
Authentication
Staff token or session
Requires permission
prm_users_index View 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 prm_users_reward_points
Authentication
Staff token or session
Requires permission
prm_users_reward_points Redeem 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 prm_users_refund
Authentication
Staff token or session
Requires permission
prm_users_refund Refund 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 prm_users_rename
Authentication
Staff token or session
Requires permission
prm_users_rename Rename 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 prm_users_update
Authentication
Staff token or session
Requires permission
prm_users_update Edit 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 prm_users_reset_quota

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_quota Reset 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 prm_users_sessions_index

Accounting history for this subscriber, newest first, paginated with the standard list parameters.

Authentication
Staff token or session
Requires permission
prm_users_sessions_index View 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 prm_users_update
Authentication
Staff token or session
Requires permission
prm_users_update Edit 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 prm_users_index
Authentication
Staff token or session
Requires permission
prm_users_index View 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 prm_users_update
Authentication
Staff token or session
Requires permission
prm_users_update Edit 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 prm_users_enable_disable

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_disable Enable / suspend users
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Subscriber id.
Response 200 OK
{
  "data": {
    "id": 4711,
    "username": "ahmed",
    "enabled": false,
    "status": { "enabled": false, "can_connect": false }
  }
}
GET /api/v1/users/{id}/usage-history View usage history prm_users_history
Authentication
Staff token or session
Requires permission
prm_users_history View 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 prm_users_withdrawal

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_withdrawal Withdraw / 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

83
GET /api/v1/tickets View support tickets prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_config
Authentication
Staff token or session
Requires permission
prm_tickets_config Manage 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_note
Authentication
Staff token or session
Requires permission
prm_tickets_note Add 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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 prm_tickets_assign
Authentication
Staff token or session
Requires permission
prm_tickets_assign Claim / 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 prm_tickets_reply
Authentication
Staff token or session
Requires permission
prm_tickets_reply Reply 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

69
GET /api/v1/admin/nas List NAS devices prm_nas_index

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_index View 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.

Response 200 OK
{
  "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 prm_nas_create

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_create Add 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_delete
Authentication
Staff token or session
Requires permission
prm_nas_delete Delete 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_index

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_index View NAS
GET /api/v1/admin/nas/device-groups View LAN devices prm_nas_devices_index
Authentication
Staff token or session
Requires permission
prm_nas_devices_index View 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 prm_nas_device_groups
Authentication
Staff token or session
Requires permission
prm_nas_device_groups Manage 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 prm_nas_device_groups
Authentication
Staff token or session
Requires permission
prm_nas_device_groups Manage 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 prm_nas_device_groups
Authentication
Staff token or session
Requires permission
prm_nas_device_groups Manage 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 prm_nas_device_groups
Authentication
Staff token or session
Requires permission
prm_nas_device_groups Manage 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 prm_nas_device_groups
Authentication
Staff token or session
Requires permission
prm_nas_device_groups Manage 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 prm_nas_device_groups
Authentication
Staff token or session
Requires permission
prm_nas_device_groups Manage 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 prm_nas_devices_index
Authentication
Staff token or session
Requires permission
prm_nas_devices_index View 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_devices_remote
Authentication
Staff token or session
Requires permission
prm_nas_devices_remote Remote 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 prm_nas_delete
Authentication
Staff token or session
Requires permission
prm_nas_delete Delete 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 prm_nas_delete
Authentication
Staff token or session
Requires permission
prm_nas_delete Delete 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 prm_nas_index
Authentication
Staff token or session
Requires permission
prm_nas_index View 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_create
Authentication
Staff token or session
Requires permission
prm_nas_create Add 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 prm_nas_index

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_index View 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_own prm_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_own prm_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) prm_nas_vpn_peers_all
Authentication
Staff token or session
Requires permission
prm_nas_vpn_peers_all All 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_own prm_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_own prm_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_own prm_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) prm_nas_vpn_peers_all
Authentication
Staff token or session
Requires permission
prm_nas_vpn_peers_all All 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_own prm_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_own prm_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 prm_nas_delete

Removes the device record. Sessions already open on it are not affected.

Authentication
Staff token or session
Requires permission
prm_nas_delete Delete NAS
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer NAS id.
GET /api/v1/admin/nas/{id} Fetch one NAS prm_nas_index

The full device record, including tunnel and operator-VPN configuration.

Authentication
Staff token or session
Requires permission
prm_nas_index View 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 prm_nas_update

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_update Edit NAS
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer NAS id.
POST /api/v1/admin/nas/{id}/apply-hotspot Edit NAS prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_remote
Authentication
Staff token or session
Requires permission
prm_nas_remote Remote 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 prm_nas_devices_index

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_index View LAN devices

Parameters

Parameter Description
idrequired path · integer NAS id.
POST /api/v1/admin/nas/{id}/devices Edit NAS prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_index
Authentication
Staff token or session
Requires permission
prm_nas_index View 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 prm_nas_index
Authentication
Staff token or session
Requires permission
prm_nas_index View 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 prm_nas_create
Authentication
Staff token or session
Requires permission
prm_nas_create Add 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update

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_update Edit 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 prm_nas_index
Authentication
Staff token or session
Requires permission
prm_nas_index View 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 prm_nas_index
Authentication
Staff token or session
Requires permission
prm_nas_index View 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update

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_update Edit 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 prm_nas_devices_index
Authentication
Staff token or session
Requires permission
prm_nas_devices_index View 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.

GET /api/v1/admin/nas/{id}/shared-secret Reveal a NAS shared secret prm_nas_update

Returns the device's RADIUS shared secret in the clear, for an operator re-entering it on the router. Gated on the NAS update permission rather than the read one, because seeing it is equivalent to being able to change it.

Authentication
Staff token or session
Requires permission
prm_nas_update Edit NAS

Parameters

Parameter Description
idrequired path · integer NAS id.
POST /api/v1/admin/nas/{id}/test Test a NAS connection prm_nas_update

Checks that the platform can reach the device's management interface.

Authentication
Staff token or session
Requires permission
prm_nas_update Edit NAS
Rate limit
t_probe

Parameters

Parameter Description
idrequired path · integer NAS id.
POST /api/v1/admin/nas/{id}/test-ssh Edit NAS prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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 prm_nas_update
Authentication
Staff token or session
Requires permission
prm_nas_update Edit 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) prm_nas_vpn
Authentication
Staff token or session
Requires permission
prm_nas_vpn Operator 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) prm_nas_vpn
Authentication
Staff token or session
Requires permission
prm_nas_vpn Operator 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) prm_nas_vpn
Authentication
Staff token or session
Requires permission
prm_nas_vpn Operator 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) prm_nas_vpn
Authentication
Staff token or session
Requires permission
prm_nas_vpn Operator 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) prm_nas_vpn
Authentication
Staff token or session
Requires permission
prm_nas_vpn Operator 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_own prm_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) prm_nas_vpn_peers_all
Authentication
Staff token or session
Requires permission
prm_nas_vpn_peers_all All 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) prm_nas_vpn
Authentication
Staff token or session
Requires permission
prm_nas_vpn Operator 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

58
PATCH /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/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

58
PATCH /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/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

48
GET /api/v1/admin/tools/announcements Manage announcements prm_tools_announcements
Authentication
Staff token or session
Requires permission
prm_tools_announcements Manage 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 prm_tools_announcements
Authentication
Staff token or session
Requires permission
prm_tools_announcements Manage 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 prm_tools_announcements
Authentication
Staff token or session
Requires permission
prm_tools_announcements Manage 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 prm_tools_announcements
Authentication
Staff token or session
Requires permission
prm_tools_announcements Manage 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_backup
Authentication
Staff token or session
Requires permission
prm_tools_backup Backup & 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bandwidth_control
Authentication
Staff token or session
Requires permission
prm_tools_bandwidth_control Bandwidth 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 prm_tools_bulk_changes
Authentication
Staff token or session
Requires permission
prm_tools_bulk_changes Bulk 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 prm_tools_bulk_changes
Authentication
Staff token or session
Requires permission
prm_tools_bulk_changes Bulk 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 prm_tools_bulk_changes
Authentication
Staff token or session
Requires permission
prm_tools_bulk_changes Bulk 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 prm_tools_bulk_changes
Authentication
Staff token or session
Requires permission
prm_tools_bulk_changes Bulk 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_factory_reset
Authentication
Staff token or session
Requires permission
prm_tools_factory_reset Factory 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 prm_tools_factory_reset
Authentication
Staff token or session
Requires permission
prm_tools_factory_reset Factory 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 prm_tools_maintenance
Authentication
Staff token or session
Requires permission
prm_tools_maintenance System 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 prm_tools_maintenance
Authentication
Staff token or session
Requires permission
prm_tools_maintenance System 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 prm_tools_maintenance
Authentication
Staff token or session
Requires permission
prm_tools_maintenance System 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_dashboard_manager
Authentication
Staff token or session
Requires permission
prm_tools_dashboard_manager Dashboard 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 prm_tools_widget_factory
Authentication
Staff token or session
Requires permission
prm_tools_widget_factory Widget 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 prm_tools_widget_factory
Authentication
Staff token or session
Requires permission
prm_tools_widget_factory Widget 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 prm_tools_widget_factory
Authentication
Staff token or session
Requires permission
prm_tools_widget_factory Widget 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 prm_tools_widget_factory
Authentication
Staff token or session
Requires permission
prm_tools_widget_factory Widget 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 prm_tools_widget_factory
Authentication
Staff token or session
Requires permission
prm_tools_widget_factory Widget 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 prm_tools_widget_factory
Authentication
Staff token or session
Requires permission
prm_tools_widget_factory Widget 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

45
GET /api/v1/admin/monitoring/alerts View monitoring prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_ack
Authentication
Staff token or session
Requires permission
prm_monitoring_ack Acknowledge 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 prm_monitoring_ack
Authentication
Staff token or session
Requires permission
prm_monitoring_ack Acknowledge 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_ack
Authentication
Staff token or session
Requires permission
prm_monitoring_ack Acknowledge 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_view
Authentication
Staff token or session
Requires permission
prm_map_view View 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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.

POST /api/v1/admin/monitoring/devices/{kind}/{ref}/share View network map prm_map_view
Authentication
Staff token or session
Requires permission
prm_map_view View network map
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/monitoring/devices/{kind}/{ref}/snmp-interfaces Manage monitored devices & sensors prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View 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 prm_map_view
Authentication
Staff token or session
Requires permission
prm_map_view View 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_view
Authentication
Staff token or session
Requires permission
prm_map_view View 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 prm_map_view
Authentication
Staff token or session
Requires permission
prm_map_view View 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_view
Authentication
Staff token or session
Requires permission
prm_map_view View 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_map_view
Authentication
Staff token or session
Requires permission
prm_map_view View 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 prm_map_edit
Authentication
Staff token or session
Requires permission
prm_map_edit Edit 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_manage
Authentication
Staff token or session
Requires permission
prm_monitoring_manage Manage 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 prm_monitoring_view
Authentication
Staff token or session
Requires permission
prm_monitoring_view View monitoring

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

Managers

32
POST /api/v1/admin/managers/bulk-group Assign groups prm_groups_assign
Authentication
Staff token or session
Requires permission
prm_groups_assign Assign 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 prm_groups_assign
Authentication
Staff token or session
Requires permission
prm_groups_assign Assign 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 prm_managers_index

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_index View 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.
Response 200 OK
{
  "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 prm_managers_create

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_create Create 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 prm_managers_index

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_index View managers
POST /api/v1/managers/bulk-activate Edit managers prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit 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 prm_managers_delete
Authentication
Staff token or session
Requires permission
prm_managers_delete Delete 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 prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit 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 prm_managers_delete

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_delete Delete managers
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Manager id.
GET /api/v1/managers/{id} Fetch one manager prm_managers_index

The manager record, including their custom form fields.

Authentication
Staff token or session
Requires permission
prm_managers_index View managers

Parameters

Parameter Description
idrequired path · integer Manager id.
PATCH /api/v1/managers/{id} Update a manager prm_managers_update

Partial update. An omitted field is left alone.

Authentication
Staff token or session
Requires permission
prm_managers_update Edit managers
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Manager id.
POST /api/v1/managers/{id}/2fa/reset Edit managers prm_managers_update
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_managers_update Edit 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 prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit 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 prm_managers_journal

Outstanding debt for this manager, read off the loan ledger.

Authentication
Staff token or session
Requires permission
prm_managers_journal View manager journal

Parameters

Parameter Description
idrequired path · integer Manager id.
GET /api/v1/managers/{id}/invoices View manager invoices prm_managers_invoices
Authentication
Staff token or session
Requires permission
prm_managers_invoices View 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 prm_managers_journal

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_journal View manager journal

Parameters

Parameter Description
idrequired path · integer Manager id.
GET /api/v1/managers/{id}/loans View manager journal prm_managers_journal
Authentication
Staff token or session
Requires permission
prm_managers_journal View 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 prm_managers_login_as
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_managers_login_as Log 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 prm_managers_index
Authentication
Staff token or session
Requires permission
prm_managers_index View 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 prm_managers_receipts
Authentication
Staff token or session
Requires permission
prm_managers_receipts View 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 prm_managers_reward_points
Authentication
Staff token or session
Requires permission
prm_managers_reward_points Add / 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 prm_managers_reward_points
Authentication
Staff token or session
Requires permission
prm_managers_reward_points Add / 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 prm_managers_index
Authentication
Staff token or session
Requires permission
prm_managers_index View 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 prm_managers_receipts
Authentication
Staff token or session
Requires permission
prm_managers_receipts View 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 prm_managers_update
Authentication
Staff token or session
Requires permission
prm_managers_update Edit 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 prm_managers_index

The roles assigned to this manager, which is what their permissions resolve from.

Authentication
Staff token or session
Requires permission
prm_managers_index View managers

Parameters

Parameter Description
idrequired path · integer Manager id.
PUT /api/v1/managers/{id}/roles Replace a manager's roles prm_roles_manage

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_manage Manage 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 prm_managers_update

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_update Edit 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 prm_managers_deposit

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_deposit Deposit 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 prm_managers_pay_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_debt Settle 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 prm_managers_deposit
Authentication
Staff token or session
Requires permission
prm_managers_deposit Deposit 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 prm_managers_withdrawal

The inverse of deposit, posting the matching ledger entry.

Authentication
Staff token or session
Requires permission
prm_managers_withdrawal Withdraw 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

29
POST /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

28
GET /api/v1/card-batches List card series prm_cards_list

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_list View 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.
Response 200 OK
{
  "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 prm_cards_generate_user

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_user Generate 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.
Response 202 Accepted
{
  "data": {
    "batch_id": 209,
    "mode": "voucher_account",
    "status": "generating",
    "replay": false
  }
}
POST /api/v1/card-batches/bulk-delete Delete card batches prm_cards_delete
Authentication
Staff token or session
Requires permission
prm_cards_delete Delete 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 prm_cards_change_expiry
Authentication
Staff token or session
Requires permission
prm_cards_change_expiry Change 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 prm_cards_download
Authentication
Staff token or session
Requires permission
prm_cards_download Download / 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 prm_cards_download
Authentication
Staff token or session
Requires permission
prm_cards_download Download / 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 prm_cards_suspend_release
Authentication
Staff token or session
Requires permission
prm_cards_suspend_release Suspend / 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 prm_cards_suspend_release
Authentication
Staff token or session
Requires permission
prm_cards_suspend_release Suspend / 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 prm_cards_generate_user
Authentication
Staff token or session
Requires permission
prm_cards_generate_user Generate 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 prm_cards_delete

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_delete Delete card batches
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Series id.
GET /api/v1/card-batches/{id} Fetch one card series prm_cards_list

The series header, its generation spec and its stock breakdown.

Authentication
Staff token or session
Requires permission
prm_cards_list View card batches & cards

Parameters

Parameter Description
idrequired path · integer Series id.
PATCH /api/v1/card-batches/{id} Manage card designs prm_cards_designer
Authentication
Staff token or session
Requires permission
prm_cards_designer Manage 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 prm_cards_list

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_list View 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.
Response 200 OK
{
  "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 prm_cards_change_expiry
Authentication
Staff token or session
Requires permission
prm_cards_change_expiry Change 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 prm_cards_download
Authentication
Staff token or session
Requires permission
prm_cards_download Download / 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 prm_cards_list
Authentication
Staff token or session
Requires permission
prm_cards_list View 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 prm_cards_designer
Authentication
Staff token or session
Requires permission
prm_cards_designer Manage 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 prm_cards_designer
Authentication
Staff token or session
Requires permission
prm_cards_designer Manage 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 prm_cards_download

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_download Download / export cards

Parameters

Parameter Description
idrequired path · integer Series id.
POST /api/v1/card-batches/{id}/printed Mark a series printed prm_cards_download

Records that the sheet was rendered, stamping printed_at and incrementing print_count.

Authentication
Staff token or session
Requires permission
prm_cards_download Download / 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 prm_cards_generate_user
Authentication
Staff token or session
Requires permission
prm_cards_generate_user Generate 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 prm_cards_suspend_release

Puts the revoked-but-unused cards of a suspended series back into stock.

Authentication
Staff token or session
Requires permission
prm_cards_suspend_release Suspend / 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 prm_cards_suspend_release

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_release Suspend / release cards
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Series id.
Response 200 OK
{
  "data": { "message_key": "card_batch_suspended" }
}
POST /api/v1/card-batches/{id}/transfer-count Transfer N cards from a series prm_cards_change_owner

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_owner Transfer / 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 prm_cards_change_owner

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_owner Transfer / 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 prm_cards_change_owner

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_owner Transfer / 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 prm_cards_list
Authentication
Staff token or session
Requires permission
prm_cards_list View 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 prm_cards_list
Authentication
Staff token or session
Requires permission
prm_cards_list View 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

26
GET /api/v1/profiles List plans prm_profiles_index

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_index View 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.
Response 200 OK
{
  "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 prm_profiles_create

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_create Create 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 prm_profiles_index

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_index View profiles
POST /api/v1/profiles/bulk-delete Delete profiles prm_profiles_delete
Authentication
Staff token or session
Requires permission
prm_profiles_delete Delete 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 prm_profiles_delete

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_delete Delete profiles
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Plan id.
GET /api/v1/profiles/{id} Fetch one plan prm_profiles_index

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_index View 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 prm_profiles_update

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_update Edit 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 prm_profiles_policy_manager
Authentication
Staff token or session
Requires permission
prm_profiles_policy_manager Manage 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 prm_profiles_policy_manager
Authentication
Staff token or session
Requires permission
prm_profiles_policy_manager Manage 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 prm_profiles_policy_manager

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_manager Manage 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 prm_profiles_policy_manager

Replaces the whole list. Managers omitted from the payload lose access.

Authentication
Staff token or session
Requires permission
prm_profiles_policy_manager Manage 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 prm_profiles_policy_manager
Authentication
Staff token or session
Requires permission
prm_profiles_policy_manager Manage 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 prm_profiles_policy_manager
Authentication
Staff token or session
Requires permission
prm_profiles_policy_manager Manage 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 prm_profiles_create

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_create Create profiles
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Plan to copy.
GET /api/v1/profiles/{id}/policies Manage plan policy rules prm_profiles_policies
Authentication
Staff token or session
Requires permission
prm_profiles_policies Manage 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 prm_profiles_policies
Authentication
Staff token or session
Requires permission
prm_profiles_policies Manage 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 prm_profiles_policies
Authentication
Staff token or session
Requires permission
prm_profiles_policies Manage 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 prm_profiles_policies
Authentication
Staff token or session
Requires permission
prm_profiles_policies Manage 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 prm_profiles_policies
Authentication
Staff token or session
Requires permission
prm_profiles_policies Manage 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 prm_profiles_pricing

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_pricing Manage profile pricing

Parameters

Parameter Description
idrequired path · integer Plan id.
PUT /api/v1/profiles/{id}/price-list Replace a plan's per-reseller prices prm_profiles_pricing

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_pricing Manage 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 prm_profiles_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_attributes Manage RADIUS attributes

Parameters

Parameter Description
idrequired path · integer Plan id.
POST /api/v1/profiles/{id}/radius-attrs Add a RADIUS attribute to a plan prm_profiles_radius_attributes

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_attributes Manage 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 prm_profiles_radius_attributes
Authentication
Staff token or session
Requires permission
prm_profiles_radius_attributes Manage 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 prm_profiles_radius_attributes
Authentication
Staff token or session
Requires permission
prm_profiles_radius_attributes Manage 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 prm_profiles_radius_attributes
Authentication
Staff token or session
Requires permission
prm_profiles_radius_attributes Manage 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

24
GET /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.
Response 200 OK
{
  "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.

Response 200 OK
{
  "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.

Response 200 OK
{
  "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

18
GET /api/v1/admin/reports/activation-stats Activation statistics report prm_report_activation_stats
Authentication
Staff token or session
Requires permission
prm_report_activation_stats Activation 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 prm_report_activations
Authentication
Staff token or session
Requires permission
prm_report_activations Activations 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 prm_report_cards_log
Authentication
Staff token or session
Requires permission
prm_report_cards_log Cards 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 prm_report_cards_usage
Authentication
Staff token or session
Requires permission
prm_report_cards_usage Cards 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 prm_report_debts
Authentication
Staff token or session
Requires permission
prm_report_debts Debts 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 prm_report_debts
Authentication
Staff token or session
Requires permission
prm_report_debts Debts 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 prm_report_debts
Authentication
Staff token or session
Requires permission
prm_report_debts Debts 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 prm_report_debts
Authentication
Staff token or session
Requires permission
prm_report_debts Debts 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_transactions prm_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 prm_managers_invoices
Authentication
Staff token or session
Requires permission
prm_managers_invoices View 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 prm_managers_journal
Authentication
Staff token or session
Requires permission
prm_managers_journal View 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 prm_managers_receipts
Authentication
Staff token or session
Requires permission
prm_managers_receipts View 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 prm_report_money_transfer
Authentication
Staff token or session
Requires permission
prm_report_money_transfer Money 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 prm_report_profits
Authentication
Staff token or session
Requires permission
prm_report_profits Profits 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 prm_report_sessions
Authentication
Staff token or session
Requires permission
prm_report_sessions Sessions 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 prm_report_suspicious
Authentication
Staff token or session
Requires permission
prm_report_suspicious Suspicious 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 prm_report_traffic
Authentication
Staff token or session
Requires permission
prm_report_traffic Traffic 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 prm_report_users
Authentication
Staff token or session
Requires permission
prm_report_users 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.

Studio

18
GET /api/v1/studio/designs View designs prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_edit
Authentication
Staff token or session
Requires permission
prm_studio_edit Create 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 prm_studio_delete
Authentication
Staff token or session
Requires permission
prm_studio_delete Delete 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 prm_studio_delete
Authentication
Staff token or session
Requires permission
prm_studio_delete Delete 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_edit
Authentication
Staff token or session
Requires permission
prm_studio_edit Create 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_publish
Authentication
Staff token or session
Requires permission
prm_studio_publish Publish 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_edit
Authentication
Staff token or session
Requires permission
prm_studio_edit Create 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View 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 prm_studio_index
Authentication
Staff token or session
Requires permission
prm_studio_index View designs

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

Payments

14
GET /api/v1/admin/payments/config List configured gateways prm_settings

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_settings Manage settings
POST /api/v1/admin/payments/config Configure a gateway prm_settings

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_settings Manage 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 prm_settings

Deletes the tenant's credentials for one driver. Transactions already recorded against it are untouched.

Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings

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_settings Manage 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 prm_settings

Checks the stored credentials against the provider.

Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings

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_settings Manage 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 prm_managers_self_deposit
Authentication
Staff token or session
Requires permission
prm_managers_self_deposit Top 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 prm_managers_self_deposit
Authentication
Staff token or session
Requires permission
prm_managers_self_deposit Top 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 prm_settings

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_settings Manage 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.

Response 200 OK
{
  "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_transactions prm_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 prm_payments_manage
Authentication
Staff token or session
Requires permission
prm_payments_manage Re-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) prm_payments_settle
Authentication
Staff token or session
Requires permission
prm_payments_settle Mark 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) prm_payments_settle
Authentication
Staff token or session
Requires permission
prm_payments_settle Mark 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 prm_payments_manage
Authentication
Staff token or session
Requires permission
prm_payments_manage Re-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

12
GET /api/v1/freezone/preview-address-list Manage Free Zone networks prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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 prm_freezone_manage
Authentication
Staff token or session
Requires permission
prm_freezone_manage Manage 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

11
GET /api/v1/pos/products Sell cards at the counter (till) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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_sell prm_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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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) prm_pos_sell
Authentication
Staff token or session
Requires permission
prm_pos_sell Sell 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

11
GET /api/v1/admin/sessions List live sessions prm_report_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_sessions Sessions 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.
Response 200 OK
{
  "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 prm_users_live_traffic

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_traffic Live 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 prm_users_mac_lock
Authentication
Staff token or session
Requires permission
prm_users_mac_lock Lock 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 prm_users_ping
Authentication
Staff token or session
Requires permission
prm_users_ping Ping 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 prm_report_sessions

One session with the full projection, including the joined subscriber attributes.

Authentication
Staff token or session
Requires permission
prm_report_sessions Sessions 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 prm_users_live_traffic

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_traffic Live 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.
Response 200 OK
{
  "data": { "ok": true, "nak": false, "message": "disconnected" }
}
GET /api/v1/admin/sessions/{id}/live-traffic Read near-real-time throughput prm_users_live_traffic

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_traffic Live 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 prm_users_live_traffic
Authentication
Staff token or session
Requires permission
prm_users_live_traffic Live 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 prm_users_mac_lock

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_lock Lock 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.
Response 200 OK
{
  "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 prm_users_ping

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_ping Ping 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 prm_report_sessions

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_sessions Sessions 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.
Response 200 OK
{
  "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

10
POST /api/v1/admin/cards/redeem-otc Redeem a card over the counter prm_cards_verify

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_verify Verify / 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 prm_managers_self_deposit
Authentication
Staff token or session
Requires permission
prm_managers_self_deposit Top 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 prm_cards_list
Authentication
Staff token or session
Requires permission
prm_cards_list View 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 prm_cards_list
Authentication
Staff token or session
Requires permission
prm_cards_list View 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 prm_users_refund
Authentication
Staff token or session
Requires permission
prm_users_refund Refund 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 prm_cards_verify

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_verify Verify / 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.
Response 200 OK
{
  "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.

POST /api/v1/cards/{id}/revoke Revoke one card prm_cards_suspend_release

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_release Suspend / 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 prm_cards_list

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_list View 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

10
GET /api/v1/developer/admin/api-tokens View and revoke ALL API tokens in this tenant prm_api_tokens_all
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens_all View 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 prm_api_tokens_all
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens_all View 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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 prm_api_tokens
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_api_tokens Create 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

10
CONNECT /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

10
GET /api/v1/hotspot/pages Manage hotspot pages prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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 prm_hotspot_manage
Authentication
Staff token or session
Requires permission
prm_hotspot_manage Manage 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

9
GET /api/v1/card-templates
Authentication
Staff token or session
Requires any one of
prm_card_templates_index prm_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 prm_card_templates_manage
Authentication
Staff token or session
Requires permission
prm_card_templates_manage Create / 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 prm_card_templates_manage
Authentication
Staff token or session
Requires permission
prm_card_templates_manage Create / 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 prm_card_templates_delete
Authentication
Staff token or session
Requires permission
prm_card_templates_delete Delete 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_index prm_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 prm_card_templates_manage
Authentication
Staff token or session
Requires permission
prm_card_templates_manage Create / 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 prm_cards_generate_user
Authentication
Staff token or session
Requires permission
prm_cards_generate_user Generate user cards
Requires any one of
prm_card_templates_index prm_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) prm_card_templates_share
Authentication
Staff token or session
Requires permission
prm_card_templates_share Share 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) prm_card_templates_share
Authentication
Staff token or session
Requires permission
prm_card_templates_share Share 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

9
GET /api/v1/ip-pools View IP pools prm_ippool_view
Authentication
Staff token or session
Requires permission
prm_ippool_view View 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 prm_ippool_manage
Authentication
Staff token or session
Requires permission
prm_ippool_manage Manage 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 prm_ippool_manage
Authentication
Staff token or session
Requires permission
prm_ippool_manage Manage 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 prm_ippool_view
Authentication
Staff token or session
Requires permission
prm_ippool_view View 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 prm_ippool_manage
Authentication
Staff token or session
Requires permission
prm_ippool_manage Manage 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 prm_ippool_view
Authentication
Staff token or session
Requires permission
prm_ippool_view View 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 prm_ippool_manage
Authentication
Staff token or session
Requires permission
prm_ippool_manage Manage 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 prm_ippool_view
Authentication
Staff token or session
Requires permission
prm_ippool_view View 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 prm_ippool_manage
Authentication
Staff token or session
Requires permission
prm_ippool_manage Manage 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

9
POST /api/v1/admin/shop/batches/bulk-publish Publish / unpublish card series to the shop prm_shop_publish
Authentication
Staff token or session
Requires permission
prm_shop_publish Publish / 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 prm_shop_publish
Authentication
Staff token or session
Requires permission
prm_shop_publish Publish / 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 prm_shop_publish
Authentication
Staff token or session
Requires permission
prm_shop_publish Publish / 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 prm_shop_index
Authentication
Staff token or session
Requires permission
prm_shop_index View 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_sales prm_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_sales prm_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_sales prm_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 prm_shop_buyer_contact
Authentication
Staff token or session
Requires permission
prm_shop_buyer_contact Reveal 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 prm_shop_index
Authentication
Staff token or session
Requires permission
prm_shop_index View 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

9
GET /api/v1/admin/webhooks/deliveries Read the delivery log prm_notifications_manage

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_manage Manage 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.
Response 200 OK
{
  "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 prm_notifications_manage

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_manage Manage 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 prm_notifications_manage

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_manage Manage notification channels & templates
Response 200 OK
{
  "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 prm_notifications_manage

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_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage

Removes the endpoint. Queued deliveries for it stop.

Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage

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_manage Manage 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 prm_notifications_manage

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_manage Manage 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.
Response 200 OK
{
  "data": { "delivery_id": 77120 }
}
GET /api/v1/admin/webhooks/event-catalog List subscribable event keys prm_notifications_manage

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_manage Manage notification channels & templates
Response 200 OK
{
  "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

8
GET /api/v1/addons Sell add-ons prm_users_addon
Authentication
Staff token or session
Requires permission
prm_users_addon Sell 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 prm_addons_index
Authentication
Staff token or session
Requires permission
prm_addons_index View 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 prm_addons_manage
Authentication
Staff token or session
Requires permission
prm_addons_manage Manage 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 prm_addons_manage
Authentication
Staff token or session
Requires permission
prm_addons_manage Manage 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 prm_addons_manage
Authentication
Staff token or session
Requires permission
prm_addons_manage Manage 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 prm_addons_manage
Authentication
Staff token or session
Requires permission
prm_addons_manage Manage 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 prm_addons_index
Authentication
Staff token or session
Requires permission
prm_addons_index View 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 prm_addons_manage
Authentication
Staff token or session
Requires permission
prm_addons_manage Manage 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

8
GET /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 prm_tickets_view
Authentication
Staff token or session
Requires permission
prm_tickets_view View 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

8
GET /api/v1/admin/forms Manage custom form fields prm_forms_manage
Authentication
Staff token or session
Requires permission
prm_forms_manage Manage 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 prm_forms_manage
Authentication
Staff token or session
Requires permission
prm_forms_manage Manage 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 prm_forms_manage
Authentication
Staff token or session
Requires permission
prm_forms_manage Manage 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 prm_users_create
Authentication
Staff token or session
Requires permission
prm_users_create Create 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 prm_forms_manage
Authentication
Staff token or session
Requires permission
prm_forms_manage Manage 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 prm_users_create
Authentication
Staff token or session
Requires permission
prm_users_create Create 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 prm_forms_manage
Authentication
Staff token or session
Requires permission
prm_forms_manage Manage 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 prm_forms_manage
Authentication
Staff token or session
Requires permission
prm_forms_manage Manage 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

8
GET /api/v1/admin/sas4/export Export SAS4 backup prm_tools_sas4_export
Authentication
Staff token or session
Requires permission
prm_tools_sas4_export Export 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 prm_tools_sas4_import
Authentication
Staff token or session
Requires permission
prm_tools_sas4_import Import 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 prm_tools_sas4_import
Authentication
Staff token or session
Requires permission
prm_tools_sas4_import Import 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 prm_tools_sas4_import
Authentication
Staff token or session
Requires permission
prm_tools_sas4_import Import 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 prm_tools_sas4_import
Authentication
Staff token or session
Requires permission
prm_tools_sas4_import Import 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 prm_tools_sas4_import
Authentication
Staff token or session
Requires permission
prm_tools_sas4_import Import 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 prm_tools_sas4_import
Authentication
Staff token or session
Requires permission
prm_tools_sas4_import Import 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 prm_tools_sas4_import
Authentication
Staff token or session
Requires permission
prm_tools_sas4_import Import 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

7
GET /api/v1/admin/backup/destinations Manage settings prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage settings

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

Control

7
POST /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

7
GET /api/v1/exports List export jobs prm_exports_index

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_index View 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.
Response 200 OK
{
  "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 prm_exports_create

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_create Create / 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.
Response 202 Accepted
{
  "data": { "id": 3312 }
}
POST /api/v1/exports/bulk-delete Create / delete export jobs prm_exports_create
Authentication
Staff token or session
Requires permission
prm_exports_create Create / 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 prm_exports_index

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_index View export jobs
DELETE /api/v1/exports/{id} Delete an export job prm_exports_create

Removes the job and its artifact.

Authentication
Staff token or session
Requires permission
prm_exports_create Create / delete export jobs
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Job id.
GET /api/v1/exports/{id} Poll one export job prm_exports_index

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_index View 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 prm_exports_download

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_download Download 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

7
GET /api/v1/admin/notification-outbox Notification Queue prm_log_notifications
Authentication
Staff token or session
Requires permission
prm_log_notifications Notification 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_log_notifications
Authentication
Staff token or session
Requires permission
prm_log_notifications Notification 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

7
GET /api/v1/admin/notification-rules Manage usage notifications prm_profiles_notifications
Authentication
Staff token or session
Requires permission
prm_profiles_notifications Manage 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 prm_profiles_notifications
Authentication
Staff token or session
Requires permission
prm_profiles_notifications Manage 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 prm_profiles_notifications
Authentication
Staff token or session
Requires permission
prm_profiles_notifications Manage 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 prm_profiles_notifications
Authentication
Staff token or session
Requires permission
prm_profiles_notifications Manage 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 prm_profiles_notifications
Authentication
Staff token or session
Requires permission
prm_profiles_notifications Manage 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 prm_profiles_notifications
Authentication
Staff token or session
Requires permission
prm_profiles_notifications Manage 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 prm_profiles_notifications
Authentication
Staff token or session
Requires permission
prm_profiles_notifications Manage 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

7
GET /api/v1/roles List roles prm_roles_manage

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_manage Manage 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.

Response 200 OK
{
  "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 prm_roles_manage

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_manage Manage 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 prm_roles_manage
Authentication
Staff token or session
Requires permission
prm_roles_manage Manage 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 prm_roles_manage

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_manage Manage roles & permissions
Rate limit
t_mutate

Parameters

Parameter Description
idrequired path · integer Role id.
GET /api/v1/roles/{id} Fetch one role prm_roles_manage

The role and the exact set of permission codes it grants.

Authentication
Staff token or session
Requires permission
prm_roles_manage Manage roles & permissions

Parameters

Parameter Description
idrequired path · integer Role id.
PATCH /api/v1/roles/{id} Update a role prm_roles_manage

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_manage Manage 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 prm_roles_manage

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_manage Manage 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

6
GET /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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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

6
GET /api/v1/admin/email-templates Manage notification channels & templates prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

6
GET /api/v1/admin/import/fields Import data prm_tools_import
Authentication
Staff token or session
Requires permission
prm_tools_import Import 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 prm_tools_import
Authentication
Staff token or session
Requires permission
prm_tools_import Import 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 prm_tools_import
Authentication
Staff token or session
Requires permission
prm_tools_import Import 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 prm_tools_import
Authentication
Staff token or session
Requires permission
prm_tools_import Import 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 prm_tools_import
Authentication
Staff token or session
Requires permission
prm_tools_import Import 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 prm_tools_import
Authentication
Staff token or session
Requires permission
prm_tools_import Import 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

6
GET /api/v1/admin/notification-channels Manage notification channels & templates prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

6
GET /api/v1/admin/trash View & restore Trash prm_tools_trash
Authentication
Staff token or session
Requires permission
prm_tools_trash View & 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 prm_tools_trash_purge
Authentication
Staff token or session
Requires permission
prm_tools_trash_purge Permanently 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 prm_tools_trash
Authentication
Staff token or session
Requires permission
prm_tools_trash View & 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 prm_tools_trash_purge
Authentication
Staff token or session
Requires permission
prm_tools_trash_purge Permanently 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 prm_tools_trash
Authentication
Staff token or session
Requires permission
prm_tools_trash View & 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 prm_tools_trash
Authentication
Staff token or session
Requires permission
prm_tools_trash View & 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

5
GET /api/v1/admin/groups View groups prm_groups_index
Authentication
Staff token or session
Requires permission
prm_groups_index View 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 prm_groups_create
Authentication
Staff token or session
Requires permission
prm_groups_create Create 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 prm_groups_delete
Authentication
Staff token or session
Requires permission
prm_groups_delete Delete 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 prm_groups_delete
Authentication
Staff token or session
Requires permission
prm_groups_delete Delete 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 prm_groups_update
Authentication
Staff token or session
Requires permission
prm_groups_update Edit 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

5
POST /api/v1/admin/telegram/broadcast Manage notification channels & templates prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

4
DELETE /api/v1/admin/console-sessions
Authentication
Staff token or session
Requires any one of
prm_nas_remote prm_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_remote prm_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_remote prm_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_remote prm_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

4
GET /api/v1/admin/notification-templates Manage notification channels & templates prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

4
GET /api/v1/admin/pricing Manage profile pricing prm_profiles_pricing
Authentication
Staff token or session
Requires permission
prm_profiles_pricing Manage 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 prm_profiles_pricing
Authentication
Staff token or session
Requires permission
prm_profiles_pricing Manage 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 prm_profiles_pricing
Authentication
Staff token or session
Requires permission
prm_profiles_pricing Manage 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 prm_profiles_pricing
Authentication
Staff token or session
Requires permission
prm_profiles_pricing Manage profile pricing

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

Settings

4
GET /api/v1/settings Manage settings prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage settings

Read straight from the router that serves this instance. A hand-written description of this endpoint has not been added yet.

Setup

4
GET /api/v1/admin/setup/checklist Manage settings prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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 prm_settings
Authentication
Staff token or session
Requires permission
prm_settings Manage 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

4
POST /api/v1/admin/telegram-manager/link Use the manager Telegram bot prm_telegram_console
Authentication
Staff token or session Staff session only — an API token cannot call this
Requires permission
prm_telegram_console Use 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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 prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

3
GET /api/v1/billing/invoices List invoices across subscribers prm_billing

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_billing Billing & 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.
Response 200 OK
{
  "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 prm_billing

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_billing Billing & 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 prm_billing
Authentication
Staff token or session
Requires permission
prm_billing Billing & 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

2
GET /api/v1/admin/logs/auth User Auth Log prm_log_auth
Authentication
Staff token or session
Requires permission
prm_log_auth User 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) prm_log_system
Authentication
Staff token or session
Requires permission
prm_log_system System 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

1
GET /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

1
PUT /api/v1/admin/notification-event-options Manage notification channels & templates prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

1
GET /api/v1/admin/notification-events Manage notification channels & templates prm_notifications_manage
Authentication
Staff token or session
Requires permission
prm_notifications_manage Manage 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

1
GET /api/v1/permissions List the permission catalogue prm_roles_manage

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_manage Manage 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.

Response 200 OK
{
  "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

1
POST /api/v1/admin/postpaid/generate-now Billing & invoices prm_billing
Authentication
Staff token or session
Requires permission
prm_billing Billing & 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

1
GET /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

1
POST /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.

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.
Hand this to your assistant
Read https://x-radius.com/llms.txt, then fetch the endpoint you need as Markdown by appending .md to its URL.

Try it on your own network.

50 subscribers for 7 days. You pay nothing.