Developer workspace

Use one API flow for balance, services, and orders

Confirm your key, fetch the catalog, and move from balance checks to order placement without guessing what comes next.

1Confirm your key

Start with a balance request first so you know your API key and request format are working.

2Fetch the catalog

Pull live services and limits before placing orders so your integration uses current product data.

3Track the same order ID

Store the SMM Africa order ID returned by add and use it for status, refill, and cancel requests.

API docs

SMM Africa API | balance, services, orders, and status

One API for balance checks, catalog access, ordering, status tracking, and reseller automation.

Single endpointSimple POST requests for balance, catalog, ordering, and tracking actions
Reseller automationBuilt for panel owners, developers, and repeat delivery workflows
API keyCopy your key from Account before sending your first request

What you can power

  • Check account balance programmatically.
  • List available services and pricing.
  • Place new growth actions for followers, likes, views, and more.
  • Track order status and delivery in real time.
  • Integrate via HTTP from PHP, Python, JavaScript, or any stack.

Import either file into Postman, Insomnia, or any OpenAPI tool to get every endpoint, request body, and example response pre-configured.

AI search extract

Short answers for reseller API decisions

What is the SMM Africa API?

The SMM Africa API is a reseller endpoint for checking balance, fetching live services, placing orders, polling status, and requesting refill or cancellation from one wallet-backed account.

Who uses the SMM Africa API?

The API is built for resellers, agencies, developers, white-label panel operators, automation teams, and businesses that need SMM infrastructure behind their own workflows.

How does the API work?

Every request posts JSON to /api/v3 with an action value. The action decides whether the request checks balance, lists services, adds an order, checks status, refills, or cancels.

What makes the API production-ready?

A production integration keeps the API key server-side, caches the live service catalog, stores returned order IDs, polls status in batches, backs off on rate limits, and checks status before retrying add requests.

API vocabulary

Terms resellers should understand

Reseller API
A server-to-server interface that lets another panel or workflow place and track SMM Africa orders from its own application.
Service catalog
The live list of service IDs, prices, limits, refill support, and cancellation support used before placing an order.
Action
The JSON field that chooses the API operation, such as balance, services, add, status, refill, or cancel.
Wallet-backed ordering
An ordering model where direct, storefront, and API orders all draw from the same funded SMM Africa wallet balance.
Base URLhttps://smm.africa/api/v3
FormatJSON POST. The action field decides the operation.
Your API keyIssued per account. Pull it from Account once you sign in.
Sign in to get your key

Start with a balance check

A balance request is the fastest way to confirm your key, request format, and that the integration round-trips before you start placing orders.

curl -X POST https://smm.africa/api/v3 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "action": "balance"
  }'

Integration notes for production use

Treat the API like infrastructure. These notes cover the things that matter once you are running automated orders, a client panel, or a high-volume storefront.

Single endpoint, action-based

Every request goes to https://smm.africa/api/v3 as JSON POST. The action field (balance, services, add, status, refill, cancel) decides what runs.

Idempotency and retries

Treat each add call as a new order. If the network fails before a response, check status or balance before retrying so you do not double-spend.

Rate limits

Space bulk calls by a short delay (a few requests per second is safe) and back off on 429 responses. Heavy integrations should batch status polls instead of polling each order.

Service changes

Pull /services periodically. Service IDs, rates, and min/max values can change. Store the response so your own panel mirrors current pricing.

Shared wallet balance

Direct orders, storefront orders, and API orders all draw from the same wallet balance. Fund it from any channel, use it from any channel.

Secure your key

Never expose the key in client-side code. Proxy API calls through your own backend and rotate the key from the Account page if it is ever leaked.

Quick answers

How do I get an API key?

Log in, open Account, then copy your API key. You can rotate it from the same place at any time.

Is the API free?

There is no extra API fee. You only pay for services you order. The same wallet funds direct orders, storefront orders, and API orders.

What are the rate limits?

A handful of requests per second works well. Back off on 429 responses, and batch status polls instead of polling one order at a time.

How should I handle retries?

Treat every add call as a new order. If a response never arrives, check balance or status first so you never double-charge a customer.

Is there a webhook?

Status polling is the supported path today. Hit the status action for orders you are watching and cache the result in your own system.

Which countries are supported?

The API is available worldwide, with strong support for African markets and M-Pesa-friendly wallet funding.

ReferenceFull endpoint reference

Review the request parameters, sample responses, and the exact behavior for each supported action.

SMM Africa API | balance, services, orders, and status

Use a simple POST request flow to authenticate, fetch services, place orders, and track delivery.

https://smm.africa/api/v3
1. Get your keyCopy your API key from Account.
2. Start with balanceUse a balance check first so you can confirm your key, request format, and JSON handling.
3. Place and trackFetch services next, then place orders and track the returned SMM Africa order ID.
USD contractAll balances, charges, and order amounts in v3 are returned in USD for compatibility.
Retry safelyUse an idempotency key on add requests so retries do not create duplicate orders.
Poll the same order IDAlways store the SMM Africa order ID returned by add and use it for status, refill, and cancel.

Get your API key from Account.

User Balance

Check the current growth-wallet balance tied to your API key.

POST

Parameters

ParameterDescription
keyYour API key
actionbalance

Example Response

{
  "balance": 100.84292,
  "currency": "USD"
}

All v3 balances, charges, and order amounts are returned in USD.

Error Response

{
  "error": "Invalid API key"
}

Service List

Fetch the current growth-service catalog with pricing, limits, and delivery settings.

POST

Parameters

ParameterDescription
keyYour API key
actionservices

Example Response

[
  {
    "service": 1,
    "name": "Service Name",
    "rate": "0.90",
    "min": "50",
    "max": "10000",
    "category": "First Category",
    "description": "Service Description",
    "refill": true,
    "cancel": true,
    "drop_rate": "Almost No",
    "start_time": "2 mins",
    "speed": "12 mins",
    "reliability": "Poor"
  }
]

Service names, categories, and descriptions are cleaned for public API output so your integration receives stable product-facing text.

Error Response

{
  "error": "Invalid API key"
}

Add Order

Place a new growth action with the selected service, target link, and quantity. Use the returned SMM Africa order ID for status, refill, and cancel requests.

POST

Parameters

ParameterDescription
keyYour API key
actionadd
serviceService ID
linkLink to page/post
quantityQuantity to order
goal_keyOptional growth goal key for campaign-aware reporting
recommendation_tierOptional tier such as low, mid, or high
user_intent_labelOptional user-facing campaign label to preserve intent
source_flowOptional source such as dashboard_strategy or api_v3

Example Response

{
  "order": 1000000,
  "charged": 5.85
}

If final confirmation is delayed, add can return HTTP 202 with pending_confirmation: true. Keep the returned order ID and poll status again shortly. Optional campaign fields let you preserve growth intent in activity and reporting without changing the core API contract.

Error Response

{
  "error": "Invalid API key"
}

Order Status

Read the latest order state, start count, remains, and charge details.

POST

Parameters

ParameterDescription
keyYour API key
actionstatus
orderOrder ID

Example Response

{
  "order": 1000000,
  "status": "Processing",
  "start_count": 3572,
  "remains": 157,
  "charge": 0.27819
}

Status polling always returns the same response shape. Status values are normalized to stable API values like queued, pending, processing, completed, partial, refunded, canceled, or unknown. If the live upstream refresh is unavailable, the API falls back to the latest local order data.

Error Response

{
  "error": "Order not found"
}

Refill Order

Request a refill for an eligible order directly from your integration.

POST

Parameters

ParameterDescription
keyYour API key
actionrefill
orderOrder ID

Example Response

{
  "order": 1000000,
  "success": "Refill request accepted."
}

Refill returns a normalized success message instead of exposing raw upstream wording.

Error Response

{
  "error": "Invalid API key"
}

Cancel Order

Request cancellation for an order when the selected service allows it.

POST

Parameters

ParameterDescription
keyYour API key
actioncancel
orderOrder ID

Example Response

{
  "order": 1000000,
  "success": "Cancellation request accepted."
}

Cancel returns a normalized success message instead of exposing raw upstream wording.

Error Response

{
  "error": "Invalid API key"
}