Developer documentation · Version 1

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.

Base URL

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

MethodPathPurpose
GET/API discovery and version.
GET/accountCurrent wallet balance and currency.
GET/servicesAvailable services, with platform, category, q, page, and limit filters.
GET/services/{id}Service rate, limits, features, and required field schema.
GET/categoriesAvailable categories.
GET/platformsPlatform 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

MethodPathPurpose
POST/orders/previewValidate fields and calculate the charge without placing an order.
POST/ordersPlace one order. Requires Idempotency-Key with a UUID.
POST/orders/batchPlace up to 20 orders in orders; each result has its own status.
GET/ordersYour orders, newest first; optional status, page, limit.
GET/orders/{id}Your order’s current stored status, start count, and remains.
POST/orders/{id}/cancelRequest cancellation when the order allows it.
POST/orders/{id}/refillRequest refill when the completed order allows it.
GET/refillsYour refill history.
GET/refills/{id}One refill request.
GET/eventsOrder 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.

Need a storefront plan?

Read our SMM API guide for resellers for an end-to-end integration flow.

Are you sure?

This action will be submitted.