Start with a balance request first so you know your API key and request format are working.
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.
Pull live services and limits before placing orders so your integration uses current product data.
Store the SMM Africa order ID returned by add and use it for status, refill, and cancel requests.
SMM Africa API | balance, services, orders, and status
One API for balance checks, catalog access, ordering, status tracking, and reseller automation.
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.
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.
https://smm.africa/api/v3Start 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.
Every request goes to https://smm.africa/api/v3 as JSON POST. The action field (balance, services, add, status, refill, cancel) decides what runs.
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.
Space bulk calls by a short delay and back off on 429 responses. Heavy integrations should batch status polls instead of polling each order.
Pull /services periodically. Service IDs, rates, and min/max values can change. Store the response so your own panel mirrors current pricing.
Direct orders, storefront orders, and API orders all draw from the same wallet balance. Fund it from any channel, use it from any channel.
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 to SMM Africa, open Account, copy your API key, and 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.
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/v3balance
Check the wallet balance tied to the authenticated reseller API key.
Request parameters
| Parameter | Description |
|---|---|
| key | Your API key, used to authenticate the request. |
| action | balance |
Example response
{
"balance": "100.84",
"currency": "USD"
}All balances, charges, and order amounts in v3 are returned in USD for compatibility.
Example error response
{
"error": "Invalid API key"
}services
Fetch the live SMM Africa service catalog with service IDs, pricing, limits, and refill or cancel flags.
Request parameters
| Parameter | Description |
|---|---|
| key | Your API key, used to authenticate the request. |
| action | services |
Example response
[
{
"service": 1,
"name": "Service Name",
"type": "Default",
"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"
}
]Fetch the live catalog before ordering because service IDs, rates, limits, and availability can change.
Example error response
{
"error": "Invalid API key"
}add
Place a new social media growth order with service ID, target link, and quantity.
Request parameters
| Parameter | Description |
|---|---|
| key | Your API key, used to authenticate the request. |
| action | add |
| service | The ID of the service you want to order. |
| link (when required) | The target profile, post, or content URL. |
| quantity (when required) | The quantity you want to order. |
| service type fields | Read the selected service's type from the services response. Link and quantity are required only when that type requires them; send its documented type-specific fields instead. |
| goal_key | Optional goal key for guided-growth attribution. |
| recommendation_tier | Optional recommendation tier. |
| user_intent_label | Optional label describing the user’s intent. |
| source_flow | Optional identifier for the flow that created the order. |
Example response
{
"order": 1000000,
"charged": 5.85
}Store the returned order ID, and check status before retrying an add request.
Example error response
{
"error": "Invalid API key"
}status
Poll an order by ID to read delivery state, start count, remains, and charge details.
Request parameters
| Parameter | Description |
|---|---|
| key | Your API key, used to authenticate the request. |
| action | status |
| order | The SMM Africa order ID returned by add. |
Example response
{
"order": 1000000,
"status": "Processing",
"start_count": 3572,
"remains": 157,
"charge": 0.27819
}Poll statuses in batches and leave a short delay between requests.
Example error response
{
"error": "Order not found"
}refill
Request a refill for an eligible order inside the published refill window.
Request parameters
| Parameter | Description |
|---|---|
| key | Your API key, used to authenticate the request. |
| action | refill |
| order | The SMM Africa order ID returned by add. |
Example response
{
"order": 1000000,
"success": "Refill request accepted."
}Refill is available only for eligible orders within the service’s published refill window.
Example error response
{
"error": "Invalid API key"
}cancel
Request cancellation for an order where the selected service supports cancellation.
Request parameters
| Parameter | Description |
|---|---|
| key | Your API key, used to authenticate the request. |
| action | cancel |
| order | The SMM Africa order ID returned by add. |
Example response
{
"order": 1000000,
"success": "Cancellation request accepted."
}Cancellation is available only when the selected service supports it.
Example error response
{
"error": "Invalid API key"
}Service type fields
Fetch action=services first and use the returned type. The service ID selects the field contract; do not send a separate type value with action=add. List fields are newline-separated. For subscriptions, posts, old_posts, and expiry are optional; for Web Traffic, google_keyword is required when type_of_traffic=1 and referring_url when it is 2.
| Service type | Required add fields |
|---|---|
| Default | link, quantity |
| Package | link |
| SEO | link, quantity, keywords |
| Custom Comments | link, comments |
| Custom Comments Package | link, comments |
| Comment Replies | link, username, comments |
| Comment Likes | link, username |
| Mentions | link, quantity, usernames |
| Mentions with Hashtags | link, quantity, usernames, hashtags |
| Mentions Custom List | link, usernames |
| Mentions Hashtag | link, quantity, hashtags |
| Mentions User Followers | link, quantity, username (source profile URL) |
| Mentions Media Likers | link, quantity, media (source media URL) |
| Poll | link, quantity, answer_number |
| Invites from Groups | link, quantity, groups |
| Subscriptions | username, min, max, delay |
| Web Traffic | quantity, country, device, type_of_traffic |