Build with the SMMQube API.
Browse the same catalog and use the same wallet as your dashboard. This JSON API is designed for server-side reseller stores and order automation.
https://smmqube.com/api/v1
Generate a key in API access. Send it in Authorization: Bearer YOUR_API_KEY. Keys are displayed once and can be revoked at any time.
Authentication and limits
All v1 endpoints require a bearer key from an active, email-verified account. Keep the key on your server. Requests are limited to 60 per minute per account; order creation, refill, and cancellation have tighter limits. Do not send keys in URLs.
Catalog endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | / | API discovery and version. |
| GET | /account | Current wallet balance and currency. |
| GET | /services | Available services, with platform, category, q, page, and limit filters. |
| GET | /services/{id} | Service rate, limits, features, and required field schema. |
| GET | /categories | Available categories. |
| GET | /platforms | Platform keys and service counts. |
Rates and balances are USD decimal strings. A service’s pricing_unit is per_1000 or per_order. Build your form from its fields array; service types have different requirements. List responses include data, current_page, last_page, and total.
Order endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /orders/preview | Validate fields and calculate the charge without placing an order. |
| POST | /orders | Place one order. Requires Idempotency-Key with a UUID. |
| POST | /orders/batch | Place up to 20 orders in orders; each result has its own status. |
| GET | /orders | Your orders, newest first; optional status, page, limit. |
| GET | /orders/{id} | Your order’s current stored status, start count, and remains. |
| POST | /orders/{id}/cancel | Request cancellation when the order allows it. |
| POST | /orders/{id}/refill | Request refill when the completed order allows it. |
| GET | /refills | Your refill history. |
| GET | /refills/{id} | One refill request. |
| GET | /events | Order status events since after; returns next_after for the next poll. |
Create an order
Get a service first, then send every required field from its schema. This example applies to a service that requires link and quantity:
curl -X POST https://smmqube.com/api/v1/orders \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 9966c6bf-f942-4e69-8ffd-9e304958424f" \
-d '{"service":123,"link":"https://example.com/post","quantity":1000}'
A successful order returns HTTP 201 with your SMMQube UUID, charge, and initial queued status. Repeating the same request with the same key returns that order, without a second charge. Reusing the key with different order fields returns HTTP 409.
Batch requests use the same header and a JSON body such as {"orders":[{"service":123,"link":"https://example.com/post","quantity":1000}]}. The response is HTTP 207 with a result for each zero-based index. Successful items are charged individually; failed items do not prevent later items from processing. Retry the same batch body with the same key after a network failure.
Responses and errors
Validation errors use HTTP 422 with a field-level errors object. Missing or revoked keys use 401. Unknown or other customers’ records use 404. Unavailable cancel/refill actions and conflicting idempotency keys use 409. Rate limits return 429. Status values may include queued, pending, processing, in_progress, completed, partial, canceled, and failed. Inspect the returned value rather than assuming every order completes immediately.
Order submission and operation requests are queued for processing. A 202 cancel or refill response means the request was accepted, not that the provider has completed it. Read the order again for updated status, or poll /events?after=LAST_ID. Charges and refunds follow the same rules as dashboard orders.
Read our SMM API guide for resellers for an end-to-end integration flow.