Enable a line, POST /ext/line/{uuid}/enable
If you are starting a new integration instead of migrating, prefer the native v1 API with the official SDKs. The OneStream dialect exists to let existing OneStream code point at Xtream AI with only a base URL change.
Re-enable a line that had been disabled by POST /ext/line/{uuid}/disable or by the panel administrator. Nothing else changes: the expiry, bouquets, connection cap, and credentials stay exactly as they were. Calling enable on a line that is already enabled is a no-op and still returns 200 OK.
Use this after a reactivation payment, or as the second step of a temporary pause where you first disabled the line during a refund investigation.
Endpoint
POST https://<your-panel-domain>/panel-api/onestream/ext/line/{uuid}/enable
Authentication
X-Api-Key. X-Auth-User and Authorization: Bearer also accepted. See Authentication.
Required scope
lines:write.
Idempotency
Optional. Enable is naturally idempotent (the outcome is the same whether the line was enabled or disabled), but passing a rid still lets you use GET /ext/transaction/{rid} to confirm the operation reached the panel after a timeout.
Path parameters
| Name | Type | Description |
|---|---|---|
uuid |
string | The opaque line UUID. |
Request body
Optional. If sent, only rid is meaningful.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
rid |
string | no | Idempotency key. |
{
"rid": "enable-user-42-2026-08"
}
Response
200 OK with the opaque line_id. No other fields are returned. Call GET /ext/lines?username=<name> if you need the full line record.
{
"line_id": "b32c1a04-11ea-4c67-8fd1-0001000000f1"
}
Examples
cURL
curl -X POST "https://<your-panel-domain>/panel-api/onestream/ext/line/b32c1a04-11ea-4c67-8fd1-0001000000f1/enable" \
-H "X-Api-Key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{"rid": "enable-user-42-2026-08"}'
PHP raw
$uuid = 'b32c1a04-11ea-4c67-8fd1-0001000000f1';
$ch = curl_init("https://<your-panel-domain>/panel-api/onestream/ext/line/{$uuid}/enable");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'X-Api-Key: <your-api-key>',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'rid' => 'enable-user-42-2026-08',
]),
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
Python raw
import requests
uuid_ = "b32c1a04-11ea-4c67-8fd1-0001000000f1"
r = requests.post(
f"https://<your-panel-domain>/panel-api/onestream/ext/line/{uuid_}/enable",
headers={"X-Api-Key": "<your-api-key>"},
json={"rid": "enable-user-42-2026-08"},
timeout=30,
)
r.raise_for_status()
print(r.json())
Errors
| HTTP | Error slug (or message) | When it happens | How to fix |
|---|---|---|---|
| 401 | Invalid API key |
Token is unknown, expired, disabled, or deleted. | Check the token or issue a new one. |
| 403 | insufficient_scope |
Token lacks lines:write. |
Issue a key with the scope. |
| 409 | Transaction already processed |
Same rid was reused with a different body. |
Use a fresh rid, or replay with the exact original body. |
| 422 | line_id not found or invalid |
The UUID in the URL is malformed, was not issued by this panel, or belongs to a different panel. Uniform on purpose. | Verify the UUID you stored on line-creation. |
| 429 | Rate limit exceeded |
The key hit its per-minute cap. | Back off and retry after Retry-After seconds. |
| 501 | not_implemented |
A GET request was sent to this URL. |
Only POST is accepted. |