Loading...
Smmize / API

API Reference

Programmatic access to order placement, status checks and balance — the same delivery engine that runs the Smmize dashboard. Two versions, one key.

13 ENDPOINTS REST · JSON v2 EXTENDED HMAC WEBHOOKS
Smmize · API KEY YOUR_API_KEY Get your key →

#Overview

All endpoints accept GET or POST with form-encoded parameters and return JSON. The base URLs are:

VersionBase URLNotes
v1https://smmize.com/api/v1Standard SMM API format, drop-in for most reseller tools.
v2https://smmize.com/api/v2Extended: order history, cancel, refill, rich service list.

Every request is charged against your prepaid balance. Orders are debited atomically — parallel requests can never spend more than your balance.

#Authentication

Pass your API key as the key parameter on every request. Keys are issued per account and control access to that account's balance and orders only. Keep them secret — anyone holding your key can place orders on your balance.

ParameterTypeRequiredDescription
keystringyesYour account API key.

Keys can be regenerated any time from your profile — old keys stop working immediately.

#Rate limits

LimitValueScope
Requests per minute30per API key
Requests per minute60per IP address

When a limit is exceeded the API responds with HTTP 429 Too Many Requests and a JSON error message. Slow down and retry after a minute.

#Errors

Failures return HTTP 200 with an error body (compatible with the standard SMM API), except for rate limiting which uses HTTP 429.

HTTPExample responseMeaning
200{ "error": "Incorrect order ID" }Business error — check the message.
200{ "error": "Insufficient balance" }Balance too low for the order.
429{ "error": "Too many requests..." }Rate limit hit — back off.

#Endpoints

GET/POST /api/v1?action=services v1

Service list

ParameterTypeRequiredDescription
key string yes Your API key
action string yes services

Returns every active service with the rate you pay (per 1,000 units).

EXAMPLE RESPONSE
[
  { "service": "5", "name": "Instagram Followers [15K]", "category": "Instagram",
    "rate": "1.02", "min": "500", "max": "10000", "type": "default", "dripfeed": 1 },
  ...
]
POST /api/v1?action=add v1

Place new order

ParameterTypeRequiredDescription
key string yes Your API key
action string yes add
service int yes Service ID from the service list
link string yes Link to page, profile or video
quantity int type: service-dependent Needed quantity
runs int no Runs to deliver (drip-feed)
interval int no Interval in minutes between runs
comments text type: custom_comments Comment list, one per line
usernames text type: mentions Usernames list, one per line
hashtags text no Hashtags list, one per line
username string type: subscriptions Username for subscriptions
min int type: subscriptions Subscription quantity min
max int type: subscriptions Subscription quantity max
delay int type: subscriptions Delay in minutes (0, 5, 10, 15, 30, 60, 90)
expiry date no Subscription expiry, format d/m/Y

The required parameters depend on the service type. The order is charged atomically from your balance; concurrent requests can never overdraw it.

EXAMPLE RESPONSE
{ "status": "success", "order": 32 }
GET/POST /api/v1?action=status v1

Order status

ParameterTypeRequiredDescription
key string yes Your API key
action string yes status
order int yes Order ID

Status values: pending, processing, inprogress, completed, partial, canceled, error.

EXAMPLE RESPONSE
{ "order": "32", "status": "inprogress", "charge": "1.2600", "start_count": "0", "remains": "0" }
GET/POST /api/v1?action=status v1

Multiple order statuses

ParameterTypeRequiredDescription
key string yes Your API key
action string yes status
orders string yes Comma-separated order IDs

Up to 100 order IDs per request.

EXAMPLE RESPONSE
{ "12": { "order": "12", "status": "processing", ... }, "2": "Incorrect order ID" }
GET/POST /api/v1?action=balance v1

Balance

ParameterTypeRequiredDescription
key string yes Your API key
action string yes balance
EXAMPLE RESPONSE
{ "status": "success", "balance": "24.56", "currency": "USD" }
POST /api/v2?action=add v2

Place new order

ParameterTypeRequiredDescription
key string yes Your API key
action string yes add
service int yes Service ID
link string yes Link to page, profile or video
quantity int type: service-dependent Needed quantity
runs int no Runs to deliver (drip-feed)
interval int no Interval in minutes
comments text type: custom_comments Comment list, one per line

Same order flow as v1, served by the v2 endpoint for resellers that standardize on v2 paths.

EXAMPLE RESPONSE
{ "status": "success", "order": 32 }
GET/POST /api/v2?action=status v2

Order status

ParameterTypeRequiredDescription
key string yes Your API key
action string yes status
order int yes Order ID

Also accepts a comma-separated list via the orders parameter for multi-status.

EXAMPLE RESPONSE
{ "order": "32", "status": "completed", "charge": "1.2600", "start_count": "0", "remains": "0" }
GET/POST /api/v2?action=orders v2

Order history

ParameterTypeRequiredDescription
key string yes Your API key
action string yes orders
status string no Filter by status (optional)
limit int no Max results, up to 500 (default 100)
offset int no Pagination offset (default 0)
EXAMPLE RESPONSE
{ "status": "success", "orders": [ { "order": 32, "service_id": 5, "service": "Instagram Followers", "link": "...", "quantity": 1000, "charge": "1.02", "status": "completed", "created": "2026-08-13 09:12:00" } ], "total": 412 }
POST /api/v2?action=cancel v2

Cancel order

ParameterTypeRequiredDescription
key string yes Your API key
action string yes cancel
order int yes Order ID

Only orders that support cancellation (service setting) can be cancelled. Refundable amounts return to your balance.

EXAMPLE RESPONSE
{ "status": "success", "cancel": 1 }
POST /api/v2?action=refill v2

Request refill

ParameterTypeRequiredDescription
key string yes Your API key
action string yes refill
order int yes Order ID

Available when the refill module is enabled and the service is refillable.

EXAMPLE RESPONSE
{ "status": "success", "refill": 1 }
GET/POST /api/v2?action=refill_status v2

Refill status

ParameterTypeRequiredDescription
key string yes Your API key
action string yes refill_status
refill int yes Refill request ID

Refill status values follow the provider convention (pending / in process / completed / rejected).

EXAMPLE RESPONSE
{ "status": "success", "refill": 7 }
GET/POST /api/v2?action=services v2

Service list (extended)

ParameterTypeRequiredDescription
key string yes Your API key
action string yes services

v2 adds the provider name/id, original rate, cancel/refill flags, drip-feed support and average delivery time.

EXAMPLE RESPONSE
[ { "service": 5, "name": "Instagram Followers [15K]", "category": "Instagram", "rate": "1.02", "original_rate": "0.40", "min": 500, "max": 10000, "cancel": 1, "refill": 1, "dripfeed": 1, "avg_time": "0-24h" }, ... ]
GET/POST /api/v2?action=balance v2

Balance

ParameterTypeRequiredDescription
key string yes Your API key
action string yes balance
EXAMPLE RESPONSE
{ "status": "success", "balance": "24.56", "currency": "USD" }

#Webhooks

Webhooks push order status changes to your server instead of you polling. Set your webhook URL in your profile; we sign every payload with an HMAC so you can verify it came from us.

Webhooks are currently enabled on this panel.

HeaderValue
X-Smmize-SignatureHMAC-SHA256 of the raw body, hex-encoded, keyed with your webhook secret.
PAYLOAD
{
  "event": "order.status",
  "order": 32,
  "status": "completed",
  "remains": 0,
  "charge": "1.2600"
}
VERIFY (PHP)
$payload = file_get_contents("php://input");
$signature = $_SERVER["HTTP_X_SMMIZE_SIGNATURE"] ?? "";
$expected = hash_hmac("sha256", $payload, YOUR_WEBHOOK_SECRET);
if (!hash_equals($expected, $signature)) { http_response_code(401); exit; }
// payload is verified — process the order update

Failed deliveries are retried automatically. Always verify the signature before acting on a payload.

#Code examples

CURL — PLACE ORDER
curl -s "https://smmize.com/api/v1" \
  -d key=YOUR_API_KEY \
  -d action=add \
  -d service=5 \
  -d link=https://instagram.com/example \
  -d quantity=1000
PHP — PLACE ORDER
<?php
$url = 'https://smmize.com/api/v1';
$data = [
  'key' => 'YOUR_API_KEY',
  'action' => 'add',
  'service' => 5,
  'link' => 'https://instagram.com/example',
  'quantity' => 1000,
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
PYTHON — PLACE ORDER
import requests

url = 'https://smmize.com/api/v1'
data = {
    'key': 'YOUR_API_KEY',
    'action': 'add',
    'service': 5,
    'link': 'https://instagram.com/example',
    'quantity': 1000,
}

response = requests.post(url, data=data)
print(response.json())
NODE.JS — PLACE ORDER
const axios = require('axios');

const url = 'https://smmize.com/api/v1';
const data = new URLSearchParams({
  key: 'YOUR_API_KEY',
  action: 'add',
  service: 5,
  link: 'https://instagram.com/example',
  quantity: '1000',
});

axios.post(url, data).then(r => console.log(r.data));

Built on the Smmize delivery engine — the same pipeline that runs every order on the platform.

Get your API key