Skip to main content
nitroAPI documentation
API v2

The Nitro API

One endpoint, six actions, the standard format every SMM panel speaks. Point your panel or code at the base URL below with your key, and orders flow at reseller rates with full natural delivery speed.

Base URL
https://nitro.ng/api/v2
Method
POST · form-encoded
Response
JSON
Currency
NGN, from your wallet

Getting started

Every request is a POST to the base URL with your key and an action. Running ready-made panel software? Paste the base URL and your key into its provider settings, hit sync, and skip straight to setting your margins. Building custom? The six actions below are everything.
# POST · application/x-www-form-urlencoded
curl -X POST https://nitro.ng/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=balance
Response
{"balance": "124500.00", "currency": "NGN"}

Authentication

Your key is in Settings on every verified account; wholesale rates arrive by approval. It identifies your account, applies your reseller rates, and charges your Nitro wallet. Keep it server-side and never in client code or public repos. Regenerating from the Lab kills the old key immediately.
Orders are never delayed by gradual delivery. API orders run at full natural provider speed. Keep your wallet funded ahead of your sales and fulfilment starts the moment an order lands.

Catalogs & rates

Your key serves the catalogue on your account, curated by default and the full list on request: Nitro Curated (tested services in Budget, Standard and Premium tiers) or the Full Catalogue (thousands of raw provider services). The services action always returns your current list at your current reseller rates. Rates improve automatically as your monthly volume climbs the ladder.

POST services

Returns your service list with live pricing. Sync this into your panel, then set your own margins on top.
ParameterDescription
keyREQUIREDYour API key
actionREQUIREDservices
# POST · application/x-www-form-urlencoded
curl -X POST https://nitro.ng/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=services
Response
[
  {
    "service": 3877,
    "name": "Instagram Followers · Standard",
    "category": "Instagram",
    "rate": "2720.00",
    "min": 100,
    "max": 50000,
    "refill": true,
    "cancel": true,
    "type": "Default",
    "description": ""
  },
  {
    "service": 4310,
    "name": "Discord Members (Offline) · Standard",
    "category": "Discord",
    "rate": "3900.00",
    "min": 100,
    "max": 10000,
    "refill": false,
    "cancel": false,
    "type": "Default",
    "description": "Members join your server but appear offline. Your server invite link must be set to never expire. Required setup before ordering: 1. Add the bot to your server: https://nowon.tools 2. Set verification level to None or Low ..."
  }
]
Read description before you sell a service. It carries what the buyer must do first: the Discord bot setup, which link to paste, the traffic-targeting and comment parameters. Show it on your order page. type is the standard panel type (Default, Custom Comments, SEO, Package) so your panel asks for the right extra fields.

POST add

Places an order. The charge is rate × quantity ÷ 1000, deducted from your wallet at your reseller rate.
ParameterDescription
keyREQUIREDYour API key
actionREQUIREDadd
serviceREQUIREDService ID from services
linkREQUIREDTarget URL or username
quantityREQUIREDAmount, within the service min and max
commentsOPTIONALComment services (type Custom Comments): one comment per line; quantity is the number of lines
usernamesOPTIONALMention services: usernames, one per line
keywordsOPTIONALSEO services: search terms, one per line
countryOPTIONALTraffic services: 2-letter country code, WW for worldwide, or a continent (AFR, ASI, EUR, NAM, SAM, MEA)
deviceOPTIONALTraffic services: all, mobile or desktop. Defaults to all
keywordOPTIONALTraffic services: search term the visits appear to come from. Leave out for direct visits
referrerOPTIONALTraffic services: referring site the visits appear to come from. Leave out for direct visits
# POST · application/x-www-form-urlencoded
curl -X POST https://nitro.ng/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=add \
  -d service=3877 \
  -d link=https://instagram.com/client \
  -d quantity=1000
Response
{"order": 4211}
Insufficient balance? The order is rejected with an error, nothing is queued and nothing is charged. Top up and resend.

POST status

Order state, start count and remains. Pass one order ID, or up to 100 comma-separated IDs to poll in bulk. Statuses: Pending, In progress, Completed, Partial, Canceled, Refunded.
ParameterDescription
keyREQUIREDYour API key
actionREQUIREDstatus
orderREQUIREDOrder ID
ordersOPTIONALUp to 100 IDs, comma separated, instead of order
# POST · application/x-www-form-urlencoded
curl -X POST https://nitro.ng/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=status \
  -d order=4211
Response
{
  "charge": "2720.00",
  "start_count": "1200",
  "status": "In progress",
  "remains": "450",
  "currency": "NGN"
}

POST refill

Triggers a refill on an eligible order (services with refill: true). Free within the service refill window.
ParameterDescription
keyREQUIREDYour API key
actionREQUIREDrefill
orderREQUIREDOrder ID to refill
# POST · application/x-www-form-urlencoded
curl -X POST https://nitro.ng/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=refill \
  -d order=4211
Response
{"refill": "1"}

POST balance

Your current wallet balance. Poll it to gate spend in your own panel before accepting customer orders.
ParameterDescription
keyREQUIREDYour API key
actionREQUIREDbalance
# POST · application/x-www-form-urlencoded
curl -X POST https://nitro.ng/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=balance
Response
{"balance": "124500.00", "currency": "NGN"}

POST cancel

Requests cancellation on eligible orders (services with cancel: true) that haven't completed. Cancelled remains refund to your wallet automatically.
ParameterDescription
keyREQUIREDYour API key
actionREQUIREDcancel
ordersREQUIREDUp to 100 IDs, comma separated
# POST · application/x-www-form-urlencoded
curl -X POST https://nitro.ng/api/v2 \
  -d key=YOUR_API_KEY \
  -d action=cancel \
  -d orders=4211,4212
Response
[
  {"order": 4211, "cancel": 1},
  {"order": 4212, "cancel": {"error": "Order already completed"}}
]

Errors

Errors come back as JSON with an error field and a 200 status, the SMM panel convention your software already expects.
ErrorMeaning
Invalid API keyThe key is wrong, or was rotated. The current one is in Settings.
Incorrect service IDThe service isn't in your current catalog. Re-sync services.
Not enough fundsWallet can't cover the charge. Nothing was queued. Top up and resend.
Quantity out of rangeOutside the service min and max. Check the service entry.
Invalid linkThe target URL or username failed validation.
Order not foundNo order with that ID on your account.
Response
{"error": "Not enough funds"}

Limits

Generous and boring, the way limits should be: up to 300 requests per minute per key. Normal panel traffic never touches this. Poll status in bulk with the orders parameter instead of one call per order, and cache services for a few minutes rather than fetching per pageview.
Need more? Scale-tier resellers can request higher limits. Message us on WhatsApp from your dashboard.

Key not generated yet?

Your key is already in Settings. Message support for wholesale; once approved, the same key returns lower rates.