Everything you do by hand in the reseller panel — activate a device, attach a list, read your devices — you can do from your own shop, your own panel or a script. Same operations, same rules, same credits. One key, one header.
Sign in to the reseller panel, open API key and press Generate key. The key looks like this:
7mp_rs_9f3c1d0a…
We store only a fingerprint of your key, never the key itself — so if our database ever leaked, nobody could use it. That also means we cannot show it to you a second time. Copy it when you create it. Lost it? Generate a new one; the old one stops working the same second.
Put the key in the X-API-Key header on every request. Nothing else is needed —
no login, no session, no cookie.
curl https://7mediaplayer.com/api/v1/app/reseller/me \ -H "X-API-Key: 7mp_rs_9f3c1d0a…"
Also send X-App-Proto: 1. It is not required today, but it declares which version of
our response format your program understands — the day we change a field, clients that declare their
version keep working and only the ones that never did get told to update.
Always JSON, always the same envelope. Success:
{ "success": true, "data": { … } }
Failure — the HTTP status carries the meaning, error carries the reason in plain words:
{ "success": false, "error": "credite insuficiente" }
| Status | What it means |
|---|---|
200 | Done. |
400 | Something in your request is missing or malformed. |
401 | Key missing, revoked or wrong. |
403 | Your account is blocked, the device is not yours, or the operation needs the panel (see below). |
404 | No such device, list or sub-reseller. |
429 | Too many requests. Slow down and retry. |
Your account: name, credit balance, how many devices you have, what a year and a lifetime cost in credits.
Your devices — MAC, note, model, state, expiry.
Activate a device. Costs credits. plan is annual or
lifetime (default lifetime).
{ "mac": "02:7e:da:31:95:ed", "device_key": "492981", "plan": "annual" }
Take a device into your list as a trial, without spending a credit — so a customer can try the list before paying.
{ "mac": "02:7e:da:31:95:ed", "device_key": "492981" }
One step: the device becomes yours and gets the list. This is the call to use if
you only use one. device_key is needed the first time you touch a device;
pin is optional and locks the list behind a parental code.
{ "mac": "02:7e:da:31:95:ed", "device_key": "492981",
"name": "Main list", "url": "http://panel.example.com/get.php?username=u&password=p&type=m3u_plus" }
Read or add the lists of one device.
{ "name": "Second list", "url": "http://…", "pin": "1234" }
Remove one list.
Remove every list from a device. Useful when a customer starts over.
The note that tells two MAC addresses apart in your list.
{ "nota": "Ion — bedroom" }
Your provider moved servers and every list died at once? Move them all.
Send apply: false first — it only counts what would change, and changes nothing.
{ "from": "old.example.com", "to": "new.example.com", "apply": false }
Your credit statement: what came in, what went out, for which device, when.
Your sub-resellers and their balances.
These stay in the panel, behind your password, and a key is refused on them
with 403:
The reason is simple: a key travels. It ends up in scripts, config files and shell history. It should be able to do the daily work, not to take over the account. If it ever leaks, you revoke it in the panel and everything it did is already itemised in your credit statement.
Requests are rate-limited per IP address. Normal automation is far below the limit; a burst of
parallel requests is not. If you get 429, wait and retry — and prefer one call over a
loop of calls where an endpoint offers it (for example /line instead of claim + playlist).
#!/usr/bin/env bash
KEY="7mp_rs_9f3c1d0a…"
BASE="https://7mediaplayer.com/api/v1/app/reseller"
# how many credits do I have?
curl -s "$BASE/me" -H "X-API-Key: $KEY" -H "X-App-Proto: 1"
# take a device over and give it a list, in one call
curl -s -X POST "$BASE/line" \
-H "X-API-Key: $KEY" -H "X-App-Proto: 1" -H "Content-Type: application/json" \
-d '{"mac":"02:7e:da:31:95:ed","device_key":"492981",
"name":"Main list","url":"http://panel.example.com/get.php?username=u&password=p&type=m3u_plus"}'