Reseller's services — bulk list (cursor or page + search)
GET/services
Returns all of the reseller's services page by page. Designed for cron status
sync: 5000 services = 25 requests (limit=200). Reads from the service source and
does NOT go to Virtualizor — use GET /services/{id}/status for the server's
on/off state.
Pagination: after cursor (last seen service_id). The first request is
after=0; continue with ?after={next_after} until next_after in the response
is null. Cursor pagination does not shift even if new services are added.
Page mode (admin table): If page or q is given, the list is sorted NEWEST
FIRST, returning up to limit (default 50) items plus total /
total_pages. q does a partial match on hostname, main IP and additional IPs
(server123 → r-server123-qwqe); if numeric, an exact match on the service id
also counts. match_ids are OR-ed into the search — the reseller sends services it
found on its own side (e.g. by customer e-mail).
after and ids are not used in this mode.
status: The API's own values (active, suspended...); text specific to the
source system (WHMCS today) is not returned.
Ownership: Only the calling reseller's services are returned; another reseller's
id in the ids filter is silently skipped.
Rate limit: services_read bucket (150 req/min, shared with GET /services/{id}).
Request
Responses
- 200
- 401
- 422
- 429
- 503
Service page
Response Headers
The per-minute limit defined for this key
Number of requests remaining in the current window
Unix epoch of the start of the next window (UTC seconds)
Authentication failed — missing header, wrong credential, outside the IP whitelist, or a revoked key. No detail is leaked; all cases return a single message.
Response Headers
RFC 7617 Basic Auth challenge
Invalid ids, match_ids or q parameter
Per-minute limit exceeded
Response Headers
Seconds to wait before retrying after a 429 (RFC 7231 §7.1.3)
The per-minute limit defined for this key
Unix epoch of the start of the next window (UTC seconds)
Service source temporarily unreadable — retry after Retry-After
Response Headers
Seconds to wait before retrying after a 429 (RFC 7231 §7.1.3)