Get a reseller

Return a single reseller by numeric ID. The billing snapshot is embedded, so a follow-up call to GET /resellers/{id}/billing is not needed unless you specifically want the compact billing-only shape.

The response includes member_group_name, which the list endpoint also returns and which is stable across calls. That means a UI can render the group label directly without a second lookup against the panel's member-groups list.

Endpoint

GET https://<your-panel-domain>/panel-api/v1/resellers/{id}

Authentication

Send the API key in the Authorization: Bearer <your-api-key> header. Only admin keys can call this endpoint. Reseller keys never receive the resellers:read scope at issuance time, so the request is rejected with insufficient_scope.

Required scope

resellers:read

Path parameters

Name Type Description
id int The reg-user ID of the reseller. This is the value that appears as id in the list response and as owner_id on child rows.

Response

The response is a flat object. billing is the standard shape used everywhere else in the API (see the Get billing page for a full description).

active_users inside billing is populated only when the reseller is in users mode. For credits-mode resellers it is null.

{
  "id": 262260,
  "username": "reseller_new",
  "email": "reseller_new@example.com",
  "member_group_id": 4,
  "member_group_name": "RESELLER",
  "status": 1,
  "billing": {
    "mode": "credits",
    "credits": 10,
    "max_users": null,
    "active_users": null,
    "billing_expires": null
  }
}

Examples

cURL

curl -H "Authorization: Bearer <your-api-key>" \
  https://<your-panel-domain>/panel-api/v1/resellers/262260

PHP SDK

require __DIR__ . '/api-panel-php-sdk-1.0.0/autoload.php';
use XtreamAI\PanelApi\PanelApiClient;

$client = new PanelApiClient(baseUrl: 'https://<your-panel-domain>', token: '<your-api-key>');
$reseller = $client->resellers->get(262260);
echo $reseller->username, ' ', $reseller->billing?->credits, PHP_EOL;

Python SDK

from xtream_ai_panel_api import PanelApiClient

client = PanelApiClient(base_url="https://<your-panel-domain>", token="<your-api-key>")
reseller = client.resellers.get(262260)
print(reseller.username, reseller.billing.credits if reseller.billing else None)

Errors

HTTP Error slug When it happens How to fix
401 invalid_key Missing, malformed, or unknown API key. Send a live key in Authorization: Bearer <token>.
403 insufficient_scope The key does not carry resellers:read. Reseller keys always land here because the scope is admin-only. Use an admin key.
404 not_found No reseller exists with that ID. Look the ID up via GET /resellers?username=<name> if you have the username, or via the list endpoint.
429 rate_limited The per-key request budget for this minute is spent. Back off and retry after the minute rolls over.

See also