Basics
Getting startedAuthenticationCatalogs & ratesEndpoints
servicesPOSTaddPOSTstatusPOSTrefillPOSTbalancePOSTcancelPOSTReference
ErrorsLimitsAPI 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.
| Parameter | Description |
|---|---|
| keyREQUIRED | Your API key |
| actionREQUIRED | services |
# 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.| Parameter | Description |
|---|---|
| keyREQUIRED | Your API key |
| actionREQUIRED | add |
| serviceREQUIRED | Service ID from services |
| linkREQUIRED | Target URL or username |
| quantityREQUIRED | Amount, within the service min and max |
| commentsOPTIONAL | Comment services (type Custom Comments): one comment per line; quantity is the number of lines |
| usernamesOPTIONAL | Mention services: usernames, one per line |
| keywordsOPTIONAL | SEO services: search terms, one per line |
| countryOPTIONAL | Traffic services: 2-letter country code, WW for worldwide, or a continent (AFR, ASI, EUR, NAM, SAM, MEA) |
| deviceOPTIONAL | Traffic services: all, mobile or desktop. Defaults to all |
| keywordOPTIONAL | Traffic services: search term the visits appear to come from. Leave out for direct visits |
| referrerOPTIONAL | Traffic 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.| Parameter | Description |
|---|---|
| keyREQUIRED | Your API key |
| actionREQUIRED | status |
| orderREQUIRED | Order ID |
| ordersOPTIONAL | Up 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.| Parameter | Description |
|---|---|
| keyREQUIRED | Your API key |
| actionREQUIRED | refill |
| orderREQUIRED | Order 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.
| Parameter | Description |
|---|---|
| keyREQUIRED | Your API key |
| actionREQUIRED | balance |
# 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.| Parameter | Description |
|---|---|
| keyREQUIRED | Your API key |
| actionREQUIRED | cancel |
| ordersREQUIRED | Up 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.| Error | Meaning |
|---|---|
| Invalid API key | The key is wrong, or was rotated. The current one is in Settings. |
| Incorrect service ID | The service isn't in your current catalog. Re-sync services. |
| Not enough funds | Wallet can't cover the charge. Nothing was queued. Top up and resend. |
| Quantity out of range | Outside the service min and max. Check the service entry. |
| Invalid link | The target URL or username failed validation. |
| Order not found | No 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.