Admin API v2
The full management API for orders, users, payments and support tickets.
The Admin API lets you run your panel from your own tools: pull orders and fulfil them by hand, create users, add balance, answer tickets. Endpoints and the response envelope are compatible with Perfect Panel's Admin API v2.
Keys
Keys are created in the portal: my.followerhq.com → My panels → panel → Admin API. Each key:
- has its own scope list (only read orders, only add payments, and so on), or "full access";
- is shown once: copy it and keep it;
- shows its last use and can be revoked with one click.
Connection
| URL | https://<panel-domain>/adminapi/v2/... |
| Auth | X-Api-Key: <key> header |
| Rate limit | 5 requests / second per panel; HTTP 429 beyond that |
| Body | JSON (Content-Type: application/json) |
Response envelope
{ "data": { ... }, "error_message": "", "error_code": 0 }
On failure the HTTP status and error_code come together:
| HTTP | error_code | Meaning |
|---|---|---|
| 401 | 401 | Invalid key |
| 403 | 403 | The key lacks the scope for this call |
| 404 | 40 | Object not found |
| 429 | 429 | Rate limited |
List endpoints take offset and limit (default 100, max 1,000) and return prev_page_href / next_page_href.
Endpoints
Orders
| Method | Path | What it does |
|---|---|---|
| GET | /orders |
List (status, user, service and date filters) |
| GET | /orders/{order_id} |
One order |
| POST | /orders/pull |
Pulls pending manual orders, locking them |
| POST | /orders/update |
Updates counters and status of pulled orders |
| POST | /orders/change-status |
Changes the status |
| POST | /orders/cancel |
Cancel + refund |
| POST | /orders/{order_id}/set-partial |
Partial completion; the remainder is refunded |
| POST | /orders/{order_id}/edit-link |
Fixes the link |
| POST | /orders/resend |
Resends to the provider |
| POST | /orders/request-cancel |
Asks the provider to cancel |
The pull → update pair is for "manual" services you fulfil with your own system instead of a provider: pull marks an order so no other client can take it at the same time.
Refill and cancel tasks
POST /refill/pull, POST /refill/change-status, POST /cancel/pull, POST /cancel/reject
Users
GET /users, POST /users/add, POST /users/{user_id}/edit
E-mail, balance and spent are guarded by separate scopes; a key without the scope does not receive the field.
Payments
GET /payments, POST /payments/add, manual/bonus top-ups; the record appears under Admin → Payments.
Tickets
GET /tickets, GET /tickets/{ticket_id}, POST /tickets/{ticket_id}/reply, POST /tickets/add
Example
curl -X POST https://panel.example.com/adminapi/v2/payments/add \
-H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
-d '{"user_id": 42, "amount": "100.00", "method": "manual", "memo": "Bank transfer 2026-09-15"}'
Full reference
Every endpoint's parameters and response schemas, filled in with your domain, live on your panel:
https://<panel-domain>/admin/adminapi/v2, the readable referencehttps://<panel-domain>/openapi/adminapi/v2/index.php. OpenAPI JSON, for tools
FollowerHQ