📡 Automated IPTVs / API Docs
🔑 Get Your API Key Dashboard →

📡 IPTV Trial API

Programmatically generate IPTV trial accounts across every panel you have access to. Authenticate once with your master API key — pick the panel via the URL path.

🔑 Need your API key? Log in and visit your API Key page to view, copy, or rotate it.

Base URL

https://auto-trials.com/api/v1

Workflow

  1. Grab your API key from /api-key (login required, one-time setup).
  2. Call GET /api/v1/panels to see which IPTV panels you can use.
  3. Hit POST /api/v1/trial/{iptv_key} with a customer email — trial credentials come back as JSON.

🔐 Authentication

Every request requires your API key sent as a Bearer token. The X-API-Key header is also accepted.

curl https://auto-trials.com/api/v1/panels \
  -H "Authorization: Bearer YOUR_API_KEY"
const res = await fetch("https://auto-trials.com/api/v1/panels", {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
});
const data = await res.json();
$ch = curl_init("https://auto-trials.com/api/v1/panels");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ["Authorization: Bearer YOUR_API_KEY"],
]);
$data = json_decode(curl_exec($ch), true);
import requests
resp = requests.get(
    "https://auto-trials.com/api/v1/panels",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(resp.json())

⏱️ Rate Limits

60 requests per minute per API key. Excess calls receive HTTP 429 with a Retry-After header (seconds). Every successful response includes:

HeaderMeaning
X-RateLimit-LimitTotal allowed per minute.
X-RateLimit-RemainingCalls still allowed in the current minute.
Retry-AfterSeconds until the bucket resets — only on 429.

Trial creation is additionally throttled by your per-panel cooldown setting (same email + same panel cannot generate twice inside the window).

⚠️ Error Codes

All errors come back as JSON with success: false and an error message. HTTP status indicates the failure class.

StatusMeaning
400Unknown iptv_key in URL.
401Missing or invalid API key.
402Subscription expired.
403API disabled, account banned, or no access to this panel.
405Wrong HTTP method.
422Invalid email or missing required field.
429Rate limit OR per-email cooldown active.
502Trial generation failed at the IPTV panel (captcha, panel down).
503Backend mis-configured.

🎯 Create Trial

POST /api/v1/trial/{iptv_key}

Generates a new trial line on the chosen panel and (optionally) queues the credentials email.

Path parameters

ParameterTypeRequiredDescription
iptv_keystringRequiredOne of the values from Panel Keys.

Body parameters

ParameterTypeRequiredDescription
emailstringRequiredCustomer email — also used for cooldown bucketing.
send_emailbooleanOptionalDefault true. false returns credentials in JSON only — no delivery email.
websitestringOptionalURL used to render {website} and {download} placeholders in the email template.

Request example

curl -X POST https://auto-trials.com/api/v1/trial/opplex_trial \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","send_email":true}'
const res = await fetch("https://auto-trials.com/api/v1/trial/opplex_trial", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    email: "[email protected]",
    send_email: true
  })
});
const data = await res.json();
console.log(data);
$ch = curl_init("https://auto-trials.com/api/v1/trial/opplex_trial");
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "email"      => "[email protected]",
        "send_email" => true,
    ]),
]);
$data = json_decode(curl_exec($ch), true);
import requests
resp = requests.post(
    "https://auto-trials.com/api/v1/trial/opplex_trial",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"email": "[email protected]", "send_email": True},
)
print(resp.json())

Success response — 200

{
  "success": true,
  "iptv_key": "opplex_trial",
  "iptv_name": "Opplex IPTV Panel",
  "data": {
    "server":      "http://yourserver.com:8080",
    "username":    "trial_a1b2c3",
    "password":    "x9k2m",
    "expiry":      "24 Hours",
    "m3u_url":     "http://yourserver.com:8080/get.php?username=...&type=m3u_plus",
    "connections": "1"
  },
  "email_queued": true,
  "cooldown":     false
}

📺 List Panels

GET /api/v1/panels

Returns every IPTV panel in the system together with your has_access flag — handy for building a panel picker.

Request example

curl https://auto-trials.com/api/v1/panels \
  -H "Authorization: Bearer YOUR_API_KEY"
const data = await (await fetch("https://auto-trials.com/api/v1/panels", {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
})).json();
$ch = curl_init("https://auto-trials.com/api/v1/panels");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ["Authorization: Bearer YOUR_API_KEY"],
]);
$data = json_decode(curl_exec($ch), true);
import requests
data = requests.get(
    "https://auto-trials.com/api/v1/panels",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()

Success response — 200

{
  "success": true,
  "panels": [
    {
      "iptv_key":   "opplex_trial",
      "iptv_name":  "Opplex IPTV Panel",
      "has_access": true,
      "endpoints": {
        "trial":  "/api/v1/trial/opplex_trial",
        "status": "/api/v1/status/opplex_trial"
      }
    }
  ]
}

📊 Panel Status

GET /api/v1/status/{iptv_key}

Returns the cached panel-login state plus your account summary. Cheap — never triggers a live ping.

Request example

curl https://auto-trials.com/api/v1/status/opplex_trial \
  -H "Authorization: Bearer YOUR_API_KEY"
const data = await (await fetch("https://auto-trials.com/api/v1/status/opplex_trial", {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
})).json();
$ch = curl_init("https://auto-trials.com/api/v1/status/opplex_trial");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ["Authorization: Bearer YOUR_API_KEY"],
]);
$data = json_decode(curl_exec($ch), true);

Success response — 200

{
  "success": true,
  "iptv_key": "opplex_trial",
  "iptv_name": "Opplex IPTV Panel",
  "has_access": true,
  "panel_logged_in": "logged_in",
  "session_started_at": 1735420000,
  "session_age_sec": 3600,
  "account": {
    "email":               "[email protected]",
    "role":                "user",
    "subscription_ends":   "2026-12-31",
    "last_used_at":        "2026-06-26 15:32:11",
    "rate_limit_per_min":  60
  }
}

💎 Create Paid Line COMING SOON

🚧 This endpoint is on the roadmap. It will let you generate paid (non-trial) IPTV lines with a custom duration and connection count, billed against your panel.

Planned shape: POST /api/v1/paid-line/{iptv_key} with body {email, months, connections, package}. Watch this page for updates.

⏰ Extend Line COMING SOON

🚧 This endpoint is on the roadmap. It will extend an existing trial or paid line by a chosen number of days/months.

Planned shape: POST /api/v1/extend/{iptv_key} with body {username, days}. Watch this page for updates.

🔄 Reset API Key

POST /api/v1/key-reset

Rotates your API key. The previous key stops working immediately. You can authenticate this call with either the current API key (headless) or a logged-in dashboard session (browser).

Request example

curl -X POST https://auto-trials.com/api/v1/key-reset \
  -H "Authorization: Bearer YOUR_API_KEY"

Success response — 200

{
  "success":    true,
  "api_key":    "<new-key-here>",
  "rotated_at": "2026-06-26T15:32:11+00:00"
}
⚠️ One-shot reveal — the new key is returned only in this response. Save it immediately.

🏷️ Panel Keys Reference

Pass one of these values as the {iptv_key} path parameter.

Opplex IPTV Panel opplex_trial
Rynex IPTV Panel rynex_trial
Infinity IPTV Panel infinity_trial
B1G IPTV Panel b1g_trial
StarShare IPTV Panel panel_starsharetv
Opplex IPTV Panel panel_opplex
Zum IPTV Panel zum_trial
Hexa4K IPTV Panel hexa4k_trial
Rolex IPTV Panel rolex_trial
GeoIPTV Restream IPTV Panel geoiptvs_trial
GeoIPTV Panel geo_trial
5GLive IPTV Panel 5glive_trial
HelloSky IPTV Panel hellosky_trial
Glo IPTV Panel glo_trial
My8k IPTV Panel my8k_trial
Plixi IPTV Panel plixi_trial
💬 Need help? Open your dashboard and use the support form, or rotate your key any time from /api-key.