smmbilan.uz
USD
Sign in Sign up
v2 + v3

API documentation

Two versions are available: v2 is the industry standard (your existing scripts work unchanged), v3 is modern REST (JSON, idempotency, cursor pagination, 5 languages).

Prices and service IDs are not shown in this public document: pricing is calculated per customer from their price group. Once you sign up, the panel gives you a ready-made example with YOUR own IDs and prices.

URLs

Click a URL to copy it.

POST v2 enabled
https://smmbilan.uz/api/v2

Authentication: the `key` field in the body

REST v3 enabled
https://smmbilan.uz/api/v3

Authentication: `Authorization: Bearer <key>`

Rate limit: 600 requests per minute per key. Idempotency keys are kept for 24 hours.

Quick start

Four steps — a few minutes to your first request.

  1. Sign up and log in to the panel.
  2. Create a new key in the "API keys" section. The key is shown ONCE — save it immediately.
  3. Request the catalogue and take the service ID you need.
  4. Send the order. Track its status by polling or via webhook.
GET Catalogue — v3
curl https://smmbilan.uz/api/v3/services \
  -H "Authorization: Bearer <KALITINGIZ>"

v2 — the industry standard

POST is recommended. Legacy GET/query is accepted for compatibility but deprecated. A business error comes back with HTTP 200 and `{"error":"..."}` — that is part of the standard and existing scripts rely on it.

Legacy GET/query is still accepted for compatibility but is deprecated: a key in the URL can leak into logs and browser history. For new integrations use a POST body or v3 Bearer.
POST https://smmbilan.uz/api/v2
curl -X POST https://smmbilan.uz/api/v2 \
  -d "key=<KALITINGIZ>" \
  -d "action=add" \
  -d "service=<XIZMAT_ID>" \
  -d "link=https://t.me/kanalim" \
  -d "quantity=1000"

# Javob: {"order": 100123}
POST action=balance — 200

Account balance. Resellers usually call this before every order.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=balance'
200 Reply
{
    "balance": "125.4000",
    "currency": "USD"
}
POST action=services — 200

The entire catalogue. There is NO pagination, so the response is large — cache it.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=services'
200 Reply
[
    {
        "service": "<XIZMAT_ID>",
        "name": "Telegram kanal a'zolari",
        "type": "Default",
        "category": "Telegram",
        "rate": "1.20000000",
        "min": "100",
        "max": "100000",
        "refill": true,
        "cancel": true,
        "dripfeed": true
    }
]
POST action=add service, link, quantity 200

Place an order. The `order` value in the response is the number used in later requests.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=add' \
  -d 'service=<XIZMAT_ID>' \
  -d 'link=https://t.me/kanalim' \
  -d 'quantity=100'
200 Reply
{
    "order": 100123,
    "charge": "1.2000",
    "currency": "USD"
}
POST action=status order 200

Status of a single order. All values are STRINGS, including `remains`.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=status' \
  -d 'order=100123'
200 Reply
{
    "charge": "1.2000",
    "start_count": "3572",
    "status": "In progress",
    "remains": "157",
    "currency": "USD"
}
POST action=status orders 200

Bulk status: up to 100 per request. The keys are the IDs you REQUESTED.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=status' \
  -d 'orders=100123,100124'
200 Reply
{
    "100123": {
        "charge": "1.2000",
        "start_count": "3572",
        "status": "Completed",
        "remains": "0",
        "currency": "USD"
    },
    "100124": {
        "error": "Incorrect order ID"
    }
}
POST action=refill order 200

Request a refill. Track its state via `refill_status` using the ID from the response.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=refill' \
  -d 'order=100123'
200 Reply
{
    "refill": 5
}
POST action=refill_status refill 200

Refill status. The `Error` state also appears as `Pending` — retries are still running.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=refill_status' \
  -d 'refill=5'
200 Reply
{
    "status": "Completed"
}
POST action=cancel orders 200

A cancellation REQUEST. `cancel: 1` means the request was accepted, NOT that the order was cancelled.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=cancel' \
  -d 'orders=100123,100124'
200 Reply
[
    {
        "order": 100123,
        "cancel": 1
    },
    {
        "order": 100124,
        "cancel": {
            "error": "Incorrect order status"
        }
    }
]
POST action=special_services — 200

Special services catalog: Telegram numbers, Stars, Premium. The price is for ONE unit, while `rate` in `services` is per 1000.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=special_services'
200 Reply
[
    {
        "variant": "12",
        "kind": "number",
        "slug": "UZ",
        "name": "O'zbekiston",
        "price": "1.2000",
        "currency": "USD",
        "dial_code": "+998",
        "stock": "35",
        "stars": null,
        "months": null,
        "recipient": false,
        "max_quantity": "10"
    }
]
POST action=special_add kind, variant, quantity, recipient 200

Special order. `kind` and `variant` are required; Stars and Premium also need `recipient`. Watch the `status` in the response: Stars and Premium may wait for funds.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=special_add' \
  -d 'kind=stars' \
  -d 'variant=31' \
  -d 'recipient=@mijoz_nomi'
200 Reply
{
    "order": 900123,
    "charge": "0.9900",
    "currency": "USD",
    "status": "Pending"
}
POST action=special_status order (yoki orders) 200

A single special order — WITH the SMS code and 2FA password. In the bulk form (`orders=`) those fields are `null`.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=special_status' \
  -d 'order=900123'
200 Reply
{
    "charge": "1.2000",
    "status": "Completed",
    "currency": "USD",
    "kind": "number",
    "variant": "O'zbekiston",
    "quantity": "1",
    "recipient": null,
    "phone_number": "+998901234567",
    "refunded": "0.0000",
    "sms_code": "84921",
    "two_fa_password": null,
    "has_code": true
}
POST action=special_code order 200

SMS code for a purchased number. Call it ONLY AFTER your customer has entered the number into Telegram — the code expires within minutes.

POST Request
curl -X POST https://smmbilan.uz/api/v2 \
  -d 'key=<KALITINGIZ>' \
  -d 'action=special_code' \
  -d 'order=900123'
200 Reply
{
    "sms_code": "84921",
    "two_fa_password": null,
    "phone_number": "+998901234567",
    "attempts_left": "4"
}
200 Business error — returned with HTTP 200
{
    "error": "Not enough funds"
}

v3 — REST

Real HTTP codes, structured error responses, an `X-Request-Id` header and error messages in 5 languages (`Accept-Language`).

POST https://smmbilan.uz/api/v3/orders
curl -X POST https://smmbilan.uz/api/v3/orders \
  -H "Authorization: Bearer <KALITINGIZ>" \
  -H "Idempotency-Key: 3f9c1e40-…" \
  -H "Content-Type: application/json" \
  -d '{"service_id": <XIZMAT_ID>, "link": "https://t.me/kanalim", "quantity": 1000}'
`Idempotency-Key` is REQUIRED when placing orders: if the network drops and you resend, no second order is created and you are not charged twice.
402 Error response shape
{
    "error": {
        "code": "insufficient_balance",
        "message": "Balansingizda yetarli mablag' yo'q.",
        "details": {
            "required": "1.2000",
            "available": "0.3000"
        }
    },
    "request_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB"
}

Endpoints

GET /api/v3/me — 200

Key and account information. Called ONCE while setting up the integration.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/me' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": {
        "user": {
            "username": "reseller1",
            "balance": "125.4000",
            "currency": "USD",
            "status": "active",
            "discount_percent": "5.00"
        },
        "api_key": {
            "name": "Ishlab chiqarish",
            "prefix": "smb_live_a1b2c3",
            "version": "v3",
            "sandbox": false,
            "scopes": [
                "balance:read",
                "services:read",
                "orders:read",
                "orders:write"
            ],
            "rate_limit_per_minute": 600,
            "expires_at": null
        },
        "capabilities": {
            "idempotency": true,
            "webhooks": true,
            "localization": true
        }
    }
}
GET /api/v3/balance balance:read 200

A lightweight endpoint: one query, no relations loaded.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/balance' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": {
        "balance": "125.4000",
        "currency": "USD",
        "total_spent": "874.2000",
        "total_deposited": "1000.0000"
    }
}
GET /api/v3/services services:read 200

Catalogue with a cursor. Pass `next_cursor` as `after=` in the next request.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/services?limit=100&after=0' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": [
        {
            "id": "<XIZMAT_ID>",
            "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
            "name": "Telegram kanal a'zolari",
            "description": null,
            "type": "default",
            "category": {
                "id": 3,
                "name": "Telegram"
            },
            "pricing": {
                "rate_per_1000": "1.20000000",
                "currency": "USD",
                "discount_percent": "5.00"
            },
            "quantity": {
                "min": 100,
                "max": 100000,
                "increment": 1,
                "from_input": false,
                "fixed": false
            },
            "features": {
                "refill": true,
                "refill_days": 30,
                "cancel": true,
                "dripfeed": true
            },
            "link_type": "link",
            "required_fields": [],
            "avg_time_seconds": 3600
        }
    ],
    "pagination": {
        "limit": 100,
        "has_more": true,
        "next_cursor": 148
    }
}
GET /api/v3/services/{id} services:read 200

A single service. Accepts either `id` or `public_id` (ULID).

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/services/<XIZMAT_ID>' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": {
        "id": "<XIZMAT_ID>",
        "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
        "name": "Telegram kanal a'zolari",
        "description": null,
        "type": "default",
        "category": {
            "id": 3,
            "name": "Telegram"
        },
        "pricing": {
            "rate_per_1000": "1.20000000",
            "currency": "USD",
            "discount_percent": "5.00"
        },
        "quantity": {
            "min": 100,
            "max": 100000,
            "increment": 1,
            "from_input": false,
            "fixed": false
        },
        "features": {
            "refill": true,
            "refill_days": 30,
            "cancel": true,
            "dripfeed": true
        },
        "link_type": "link",
        "required_fields": [],
        "avg_time_seconds": 3600
    }
}
POST /api/v3/orders orders:write 201

Place an order. The `Idempotency-Key` header is REQUIRED.

POST Request
curl -X POST 'https://smmbilan.uz/api/v3/orders' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json' \
  -H 'Idempotency-Key: 8f14e45fceea167a5a36dedd4bea2543' \
  -H 'Content-Type: application/json' \
  -d '{"service_id":"<XIZMAT_ID>","link":"https://t.me/kanalim","quantity":100}'
201 Reply
{
    "data": {
        "id": 100123,
        "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
        "service": {
            "id": "<XIZMAT_ID>",
            "name": "Telegram kanal a'zolari",
            "type": "default"
        },
        "link": "https://t.me/kanalim",
        "quantity": 100,
        "status": "pending",
        "charge": "1.2000",
        "currency": "USD",
        "start_count": null,
        "remains": null,
        "delivered": 0,
        "progress_percent": 0,
        "refunded": "0.0000",
        "dripfeed": null,
        "refill_available": false,
        "created_at": "2026-08-31T09:14:02+00:00",
        "completed_at": null
    }
}
GET /api/v3/orders orders:read 200

Orders with a REVERSE cursor (`before=`) — newest first. System-generated child orders are excluded.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/orders?limit=50' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": [
        {
            "id": 100123,
            "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
            "service": {
                "id": "<XIZMAT_ID>",
                "name": "Telegram kanal a'zolari",
                "type": "default"
            },
            "link": "https://t.me/kanalim",
            "quantity": 100,
            "status": "pending",
            "charge": "1.2000",
            "currency": "USD",
            "start_count": null,
            "remains": null,
            "delivered": 0,
            "progress_percent": 0,
            "refunded": "0.0000",
            "dripfeed": null,
            "refill_available": false,
            "created_at": "2026-08-31T09:14:02+00:00",
            "completed_at": null
        }
    ],
    "pagination": {
        "limit": 50,
        "has_more": false,
        "next_cursor": null
    }
}
GET /api/v3/orders/{id} orders:read 200

A single order. Accepts either `number` or `public_id`.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/orders/100123' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": {
        "id": 100123,
        "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
        "service": {
            "id": "<XIZMAT_ID>",
            "name": "Telegram kanal a'zolari",
            "type": "default"
        },
        "link": "https://t.me/kanalim",
        "quantity": 100,
        "status": "pending",
        "charge": "1.2000",
        "currency": "USD",
        "start_count": null,
        "remains": null,
        "delivered": 0,
        "progress_percent": 0,
        "refunded": "0.0000",
        "dripfeed": null,
        "refill_available": false,
        "created_at": "2026-08-31T09:14:02+00:00",
        "completed_at": null
    }
}
POST /api/v3/orders/{id}/refill orders:write 202

Request a refill. 202 means accepted, not yet finished.

POST Request
curl -X POST 'https://smmbilan.uz/api/v3/orders/100123/refill' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
202 Reply
{
    "data": {
        "id": 5,
        "order_id": 100123,
        "status": "pending",
        "quantity": null,
        "charge": "0.0000",
        "is_paid": false,
        "reason": null,
        "created_at": "2026-08-31T09:14:02+00:00",
        "completed_at": null
    }
}
POST /api/v3/orders/{id}/cancel orders:write 202

A cancellation request. The response also includes the order's UPDATED state.

POST Request
curl -X POST 'https://smmbilan.uz/api/v3/orders/100123/cancel' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
202 Reply
{
    "data": {
        "accepted": true,
        "approval_status": "pending",
        "order": {
            "id": 100123,
            "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
            "service": {
                "id": "<XIZMAT_ID>",
                "name": "Telegram kanal a'zolari",
                "type": "default"
            },
            "link": "https://t.me/kanalim",
            "quantity": 100,
            "status": "pending",
            "charge": "1.2000",
            "currency": "USD",
            "start_count": null,
            "remains": null,
            "delivered": 0,
            "progress_percent": 0,
            "refunded": "0.0000",
            "dripfeed": null,
            "refill_available": false,
            "created_at": "2026-08-31T09:14:02+00:00",
            "completed_at": null
        }
    }
}
GET /api/v3/refills/{id} orders:read 200

Refill status.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/refills/5' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": {
        "id": 5,
        "order_id": 100123,
        "status": "pending",
        "quantity": null,
        "charge": "0.0000",
        "is_paid": false,
        "reason": null,
        "created_at": "2026-08-31T09:14:02+00:00",
        "completed_at": null
    }
}
GET /api/v3/special/services services:read 200

Special services catalog. NO pagination — there are only three sections. `price` is for ONE unit.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/special/services' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": [
        {
            "kind": "stars",
            "label": "Telegram Stars",
            "description": "Telegram Stars paketlari",
            "accepting_orders": true,
            "freeze_reason": null,
            "requires_recipient": true,
            "supports_quantity": false,
            "max_quantity": 1,
            "delivers_sms_code": false,
            "variants": [
                {
                    "id": 31,
                    "slug": "50",
                    "label": "50 Stars",
                    "price": "0.9900",
                    "currency": "USD",
                    "dial_code": null,
                    "stock": null,
                    "stars": 50,
                    "months": null
                }
            ]
        }
    ]
}
POST /api/v3/special/orders orders:write 201

Special order. `Idempotency-Key` is REQUIRED. `recipient` is mandatory for Stars and Premium.

POST Request
curl -X POST 'https://smmbilan.uz/api/v3/special/orders' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json' \
  -H 'Idempotency-Key: 8f14e45fceea167a5a36dedd4bea2543' \
  -H 'Content-Type: application/json' \
  -d '{"kind":"stars","variant_id":31,"recipient":"mijoz_nomi"}'
201 Reply
{
    "data": {
        "id": 900123,
        "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
        "kind": "stars",
        "variant": {
            "id": 31,
            "label": "50 Stars",
            "country_code": null,
            "dial_code": null,
            "stars": 50,
            "months": null
        },
        "recipient": "mijoz_nomi",
        "quantity": 1,
        "status": "pending",
        "charge": "0.9900",
        "currency": "USD",
        "refunded": "0.0000",
        "delivery": {
            "phone_number": null,
            "sms_code": null,
            "two_fa_password": null,
            "has_code": false
        },
        "code_available": false,
        "code_attempts_left": 0,
        "waiting_for_funds": false,
        "created_at": "2026-08-31T09:14:02+00:00",
        "completed_at": null
    }
}
GET /api/v3/special/orders orders:read 200

Special orders, the cursor goes BACKWARDS (`before=`). In the LIST the SMS code and 2FA password are ALWAYS `null` — check `has_code` and fetch the order individually.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/special/orders?limit=50' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": [
        {
            "id": 900123,
            "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
            "kind": "stars",
            "variant": {
                "id": 31,
                "label": "50 Stars",
                "country_code": null,
                "dial_code": null,
                "stars": 50,
                "months": null
            },
            "recipient": "mijoz_nomi",
            "quantity": 1,
            "status": "pending",
            "charge": "0.9900",
            "currency": "USD",
            "refunded": "0.0000",
            "delivery": {
                "phone_number": null,
                "sms_code": null,
                "two_fa_password": null,
                "has_code": false
            },
            "code_available": false,
            "code_attempts_left": 0,
            "waiting_for_funds": false,
            "created_at": "2026-08-31T09:14:02+00:00",
            "completed_at": null
        }
    ],
    "pagination": {
        "limit": 50,
        "has_more": false,
        "next_cursor": null
    }
}
GET /api/v3/special/orders/{id} orders:read 200

A single special order — WITH the credentials. Accepts `number` (from 900000) or `public_id`.

GET Request
curl -X GET 'https://smmbilan.uz/api/v3/special/orders/900123' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": {
        "id": 900123,
        "public_id": "01K3XZQ8V4N7Y2M9P6R1T5W0AB",
        "kind": "number",
        "variant": {
            "id": 12,
            "label": "O'zbekiston",
            "country_code": "UZ",
            "dial_code": "+998",
            "stars": null,
            "months": null
        },
        "recipient": null,
        "quantity": 1,
        "status": "completed",
        "charge": "1.2000",
        "currency": "USD",
        "refunded": "0.0000",
        "delivery": {
            "phone_number": "+998901234567",
            "sms_code": "84921",
            "two_fa_password": null,
            "has_code": true
        },
        "code_available": true,
        "code_attempts_left": 4,
        "waiting_for_funds": false,
        "created_at": "2026-08-31T09:14:02+00:00",
        "completed_at": "2026-08-31T09:15:40+00:00"
    }
}
POST /api/v3/special/orders/{id}/code orders:write 200

SMS code for a number. Every call spends an attempt — even a failed one. `Idempotency-Key` is NOT accepted here: the response carries account credentials.

POST Request
curl -X POST 'https://smmbilan.uz/api/v3/special/orders/900123/code' \
  -H 'Authorization: Bearer <KALITINGIZ>' \
  -H 'Accept: application/json'
200 Reply
{
    "data": {
        "phone_number": "+998901234567",
        "sms_code": "84921",
        "two_fa_password": null,
        "attempts_left": 4
    }
}

OpenAPI 3.1 spec: /api/v3/openapi.json — opens without a key. Import it into Postman or Insomnia, or generate a client library with a code generator.

Order statuses

Status map
v3 v2 Note
pending Pending Pending
awaiting Pending Awaiting
in_progress In progress In progress
processing Processing Processing
completed Completed Completed
partial Partial Partial
canceled Canceled Canceled
refunded Canceled Refunded
failed Canceled Failed

Note: v2 has NO separate `refunded` or `failed` states — both appear as `Canceled`.

Service types and required fields

Service types
v3 v2 Additional fields Quantity
default Default — you send
package Package — fixed (min = max)
custom_comments Custom Comments comments counted from sign-in
custom_comments_package Custom Comments Package comments fixed (min = max)
mentions Mentions usernames counted from sign-in
mentions_hashtags Mentions with Hashtags hashtags you send
mentions_custom Mentions Custom List usernames counted from sign-in
mentions_followers Mentions User Followers username you send
mentions_likers Mentions Likers username you send
mentions_media_likers Mentions Media Likers media_url you send
subscriptions Subscriptions username you send
poll Poll answer_number you send
invites Invites groups you send
comment_likes Comment Likes username you send

v3 error codes

Error codes
Code HTTP What happened
invalid_api_key 401 The key is invalid, expired or revoked.
wrong_api_version 401 Calling v3 with a v2 key (or the other way round).
account_blocked 403 The account is suspended or blocked.
api_disabled_for_account 403 The API is disabled on this account — please write to support.
insufficient_scope 403 The key lacks the required permission. See `details.required_scope`.
not_found 404 The record was not found or does not belong to you.
idempotency_key_required 422 The `Idempotency-Key` header was not sent. It is REQUIRED when placing orders.
idempotency_in_progress 409 A request with the same key is still being processed. Please retry in 1-2 seconds.
idempotency_key_reused 409 The same key was sent with a different operation, route parameter or payload. Generate a new key for every action.
validation_failed 422 The request fields are invalid.
order_rejected 422 The order was rejected. `details.reason` gives the reason.
refill_rejected 422 The guarantee request was rejected. `details.reason` gives the reason.
insufficient_balance 402 Insufficient balance. `details` holds the required and available amounts.
rate_limited 429 Rate limit exceeded. Wait for the period in the `Retry-After` header.
api_version_disabled 503 The API is temporarily disabled. Please try again.
sandbox_read_only 403 A test key cannot modify data.

Get your key today

Signing up is free. Once the key is created, the panel shows a ready-made example with YOUR service IDs and prices.