Xtream-Masters Admin API
Full administrative control over your Xtream-Masters panel. Manage lines, devices, resellers, streams, servers, security, and system configuration through a comprehensive REST-style API.
Authentication
All API requests require your api_key parameter. Include it as a query parameter or POST field on every request.
Base URL
All requests are made to the following base URL format:
Replace {server-dns}, {stream-port}, and {api-access-code} with your server details.
Quick Start
2. Note your server DNS, streaming port, and API access code.
3. Make your first request to
user_info to verify connectivity.
curl "http://your-server:port/access-code/admin/index.php?api_key=YOUR_KEY&action=user_info"
Global Parameters
These parameters are available on all or most endpoints.
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Required | Your unique admin API key for authentication |
| action | string | Required | The API action to perform |
| start | int | Optional | Pagination offset for list endpoints (default: 0) |
| limit | int | Optional | Number of records to return (default: 50) |
| show_columns | string | Optional | Comma-separated list of column names to include in the response |
| hide_columns | string | Optional | Comma-separated list of column names to exclude from the response |
General
Retrieve admin account information and package details.
Returns your admin account details including server info and account settings.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=user_info"
{
"status": "STATUS_SUCCESS",
"data": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"status": 1,
"server_name": "Main Server",
"total_lines": 1250,
"total_resellers": 34,
"created_at": "2024-01-01 00:00:00"
}
}
Returns all packages configured in the system.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_packages"
{
"status": "STATUS_SUCCESS",
"data": [
{
"id": 1,
"package_name": "1 Month",
"credits": 5.00,
"duration_months": 1,
"is_trial": 0,
"is_official": 1,
"groups": [1, 3, 5]
}
]
}
Retrieve details of a single package by its ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Package ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_package&id=1"
Line Management
Create, manage, and control M3U lines. Admin creates lines with direct parameters (exp_date, bouquets, max_connections) rather than packages.
Creates a new M3U line with direct parameter control. Username and password are auto-generated if not provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
| exp_date | string | Required | Expiration date (YYYY-MM-DD format) |
| username | string | Optional | Custom username (auto-generated if empty) |
| password | string | Optional | Custom password (auto-generated if empty) |
| bouquets_selected | json | Optional | JSON array of bouquet IDs, e.g. [1,2,3] |
| max_connections | int | Optional | Maximum simultaneous connections (default: 1) |
| member_id | int | Optional | Assign to a specific reseller by ID |
| is_restreamer | int | Optional | 0 = normal, 1 = restreamer account |
| is_trial | int | Optional | 0 = regular, 1 = trial |
| is_isplock | int | Optional | 0 = disabled, 1 = enable ISP lock |
| allowed_ips[] | array | Optional | Array of allowed IP addresses |
| allowed_ua[] | array | Optional | Array of allowed User-Agent strings |
| admin_notes | string | Optional | Admin-only notes |
| reseller_notes | string | Optional | Notes visible to reseller |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_line" \ -d "exp_date=2026-12-31" \ -d "username=customer1" \ -d "password=securepass" \ -d "max_connections=2" \ -d "bouquets_selected=[1,2,5]" \ -d "admin_notes=VIP customer"
{
"status": "STATUS_SUCCESS",
"data": {
"id": 4521,
"username": "customer1",
"password": "securepass",
"exp_date": "2026-12-31",
"max_connections": 2,
"is_trial": 0,
"status": 1,
"admin_notes": "VIP customer",
"created_at": "2026-03-15 14:30:00"
}
}
Edit an existing line's properties. Only provided parameters are updated.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Line ID to edit |
| exp_date | string | Optional | New expiration date (YYYY-MM-DD) |
| username | string | Optional | New username |
| password | string | Optional | New password |
| bouquets_selected | json | Optional | JSON array of bouquet IDs |
| max_connections | int | Optional | Max simultaneous connections |
| member_id | int | Optional | Reassign to a reseller |
| is_restreamer | int | Optional | 0 or 1 |
| is_trial | int | Optional | 0 or 1 |
| is_isplock | int | Optional | 0 or 1 |
| allowed_ips[] | array | Optional | Allowed IPs |
| allowed_ua[] | array | Optional | Allowed User-Agents |
| admin_notes | string | Optional | Admin notes |
| reseller_notes | string | Optional | Reseller notes |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_line" \ -d "id=4521" \ -d "exp_date=2027-06-30" \ -d "max_connections=3"
Retrieve details of a single M3U line by its ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Line ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_line&id=4521"
{
"status": "STATUS_SUCCESS",
"data": {
"id": 4521,
"username": "customer1",
"password": "securepass",
"exp_date": "2026-12-31",
"max_connections": 2,
"is_trial": 0,
"is_isplock": 0,
"is_restreamer": 0,
"enabled": 1,
"admin_enabled": 1,
"allowed_ips": [],
"allowed_ua": [],
"admin_notes": "VIP customer",
"reseller_notes": "",
"bouquets": [1, 2, 5],
"member_id": 0,
"created_at": "2026-03-15 14:30:00"
}
}
Retrieve a paginated list of all M3U lines. Supports search and status filtering.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset (default: 0) |
| limit | int | Optional | Records per page (default: 50) |
| search[value] | string | Optional | Search by username or other fields |
| filter | int | Optional | 1=Active, 2=Disabled, 3=Banned, 4=Expired, 5=Trial |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_lines&start=0&limit=25&filter=1"
Permanently delete a line. This action cannot be undone.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Line ID to delete |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_line" \ -d "id=4521"
Temporarily disable a line (sets enabled=0). The line can be re-enabled later.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Line ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=disable_line" \ -d "id=4521"
Re-enable a previously disabled line (sets enabled=1).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Line ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=enable_line" \ -d "id=4521"
Admin-ban a line (sets admin_enabled=0). Unlike disable, banned lines cannot be re-enabled by resellers.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Line ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=ban_line" \ -d "id=4521"
Remove admin ban from a line (sets admin_enabled=1).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Line ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=unban_line" \ -d "id=4521"
MAG Device Management
Create and manage MAG device subscriptions with direct parameter control.
Register a new MAG device with its MAC address.
| Parameter | Type | Required | Description |
|---|---|---|---|
| mac | string | Required | MAC address (format: 00:1A:79:XX:XX:XX) |
| exp_date | string | Optional | Expiration date (YYYY-MM-DD) |
| bouquets_selected | json | Optional | JSON array of bouquet IDs |
| max_connections | int | Optional | Max connections (default: 1) |
| member_id | int | Optional | Assign to reseller by ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_mag" \ -d "mac=00:1A:79:AB:CD:EF" \ -d "exp_date=2026-12-31" \ -d "bouquets_selected=[1,2,5]"
Edit a MAG device's properties.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID |
| mac | string | Optional | New MAC address |
| exp_date | string | Optional | New expiration date |
| bouquets_selected | json | Optional | JSON array of bouquet IDs |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_mag" \ -d "id=301" \ -d "exp_date=2027-06-30"
Retrieve details of a single MAG device.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_mag&id=301"
Retrieve a paginated list of all MAG devices.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
| filter | int | Optional | 1=Active, 2=Disabled, 3=Banned, 4=Expired |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_mags&start=0&limit=25"
Permanently delete a MAG device entry.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_mag" \ -d "id=301"
Temporarily disable a MAG device (sets enabled=0).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=disable_mag" \ -d "id=301"
Re-enable a previously disabled MAG device (sets enabled=1).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=enable_mag" \ -d "id=301"
Admin-ban a MAG device (sets admin_enabled=0).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=ban_mag" \ -d "id=301"
Remove admin ban from a MAG device (sets admin_enabled=1).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=unban_mag" \ -d "id=301"
Convert a MAG device subscription to an M3U line. Returns the newly created line with username and password.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | MAG device ID to convert |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=convert_mag" \ -d "id=301"
Enigma2 Device Management
Create and manage Enigma2 device subscriptions.
Register a new Enigma2 device with its MAC address.
| Parameter | Type | Required | Description |
|---|---|---|---|
| mac | string | Required | Device MAC address |
| exp_date | string | Optional | Expiration date (YYYY-MM-DD) |
| bouquets_selected | json | Optional | JSON array of bouquet IDs |
| max_connections | int | Optional | Max connections |
| member_id | int | Optional | Assign to reseller |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_enigma" \ -d "mac=AA:BB:CC:DD:EE:FF" \ -d "exp_date=2026-12-31"
Edit an Enigma2 device's properties.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID |
| mac | string | Optional | New MAC address |
| exp_date | string | Optional | New expiration date |
| bouquets_selected | json | Optional | JSON array of bouquet IDs |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_enigma" \ -d "id=501" \ -d "exp_date=2027-06-30"
Retrieve details of a single Enigma2 device.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_enigma&id=501"
Retrieve a paginated list of all Enigma2 devices.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
| filter | int | Optional | 1=Active, 2=Disabled, 3=Banned, 4=Expired |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_enigmas&start=0&limit=25"
Permanently delete an Enigma2 device.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_enigma" \ -d "id=501"
Temporarily disable an Enigma2 device.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=disable_enigma" \ -d "id=501"
Re-enable a previously disabled Enigma2 device.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=enable_enigma" \ -d "id=501"
Admin-ban an Enigma2 device (sets admin_enabled=0).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=ban_enigma" \ -d "id=501"
Remove admin ban from an Enigma2 device (sets admin_enabled=1).
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=unban_enigma" \ -d "id=501"
Convert an Enigma2 device subscription to an M3U line.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Enigma2 device ID to convert |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=convert_enigma" \ -d "id=501"
Sub-Reseller Management
Create and manage reseller accounts and their credits.
Create a new reseller account.
| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | Optional | Username (auto-generated if empty) |
| password | string | Optional | Password (auto-generated if empty) |
| string | Optional | Email address | |
| member_group_id | int | Optional | Member group to assign |
| notes | string | Optional | Internal notes |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_user" \ -d "username=reseller1" \ -d "password=strongpass123" \ -d "email=reseller@example.com" \ -d "member_group_id=3"
{
"status": "STATUS_SUCCESS",
"data": {
"id": 88,
"username": "reseller1",
"email": "reseller@example.com",
"member_group_id": 3,
"credits": 0,
"status": 1,
"created_at": "2026-03-15 14:30:00"
}
}Edit a reseller account's properties.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Reseller ID |
| username | string | Optional | New username |
| password | string | Optional | New password |
| string | Optional | New email | |
| member_group_id | int | Optional | New group ID |
| notes | string | Optional | Internal notes |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_user" \ -d "id=88" \ -d "email=new@example.com"
Retrieve details of a single reseller account.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Reseller ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_user&id=88"
Retrieve a paginated list of all reseller accounts.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_users&start=0&limit=25"
Permanently delete a reseller account.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Reseller ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_user" \ -d "id=88"
Temporarily disable a reseller account.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Reseller ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=disable_user" \ -d "id=88"
Re-enable a previously disabled reseller account.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Reseller ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=enable_user" \ -d "id=88"
Add or subtract credits from a reseller account. Use positive values to add and negative values to subtract.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Reseller ID |
| credits | float | Required | Credits to adjust (positive = add, negative = subtract) |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=adjust_credits" \ -d "id=88" \ -d "credits=100"
{
"status": "STATUS_SUCCESS",
"data": {
"id": 88,
"credits_before": 50.00,
"credits_after": 150.00,
"adjusted": 100
}
}Streams & Content
Manage live streams, channels, movies, series, and radio stations.
Retrieve list of all live streams.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_streams"
Retrieve details of a single stream by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Stream ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_stream&id=10"
Retrieve list of all created channels.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_channels"
Retrieve details of a single channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Channel ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_channel&id=5"
Retrieve list of all radio stations.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_stations"
Retrieve list of all movies.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_movies"
Retrieve details of a single movie.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Movie ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_movie&id=100"
Retrieve list of all TV series.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_series_list"
Retrieve details of a single series.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Series ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_series&id=50"
Retrieve list of all episodes.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_episodes"
Retrieve details of a single episode.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Episode ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_episode&id=200"
Start a live stream.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Stream ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=start_stream" \ -d "id=10"
Stop a live stream.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Stream ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=stop_stream" \ -d "id=10"
Start a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Channel ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=start_channel" \ -d "id=5"
Stop a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Channel ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=stop_channel" \ -d "id=5"
Start a movie stream.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Movie ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=start_movie" \ -d "id=100"
Stop a movie stream.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Movie ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=stop_movie" \ -d "id=100"
Configuration
Manage bouquets, groups, categories, access codes, EPGs, and transcode profiles.
Bouquets
CRUD operations for bouquet management.
Retrieve all bouquets.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_bouquets"
Retrieve a single bouquet by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Bouquet ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_bouquet&id=1"
Create a new bouquet.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_bouquet" \ -d "bouquet_name=Premium Sports"
Edit an existing bouquet.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Bouquet ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_bouquet" \ -d "id=1" \ -d "bouquet_name=Premium Sports HD"
Delete a bouquet.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Bouquet ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_bouquet" \ -d "id=1"
Groups
CRUD operations for member group management.
List all member groups.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_groups"
Get single group by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Group ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_group&id=1"
Create a new member group.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_group" \ -d "group_name=Premium Resellers"
Edit a member group.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Group ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_group" \ -d "id=1"
Delete a member group.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Group ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_group" \ -d "id=1"
Categories
CRUD operations for stream categories.
List all categories.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_categories"
Get single category by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Category ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_category&id=1"
Create a new category.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_category" \ -d "category_name=Sports"
Edit a category.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Category ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_category" \ -d "id=1"
Delete a category.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Category ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_category" \ -d "id=1"
Access Codes
CRUD operations for API access code management.
List all access codes.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_access_codes"
Get single access code.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Access Code ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_access_code&id=1"
Create a new access code.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_access_code"
Edit an access code.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Access Code ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_access_code" \ -d "id=1"
Delete an access code.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Access Code ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_access_code" \ -d "id=1"
EPG
Manage Electronic Program Guide sources.
List all EPG sources.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_epgs"
Get single EPG source.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | EPG ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_epg&id=1"
Add a new EPG source.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_epg"
Edit an EPG source.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | EPG ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_epg" \ -d "id=1"
Delete an EPG source.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | EPG ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_epg" \ -d "id=1"
Force reload EPG data from all sources.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=reload_epg"
Transcode Profiles
Manage transcoding profiles for streams.
List all transcode profiles.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_transcode_profiles"
Get single transcode profile.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Profile ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_transcode_profile&id=1"
Create a new transcode profile.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_transcode_profile"
Edit a transcode profile.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Profile ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_transcode_profile" \ -d "id=1"
Delete a transcode profile.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Profile ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_transcode_profile" \ -d "id=1"
Security
Manage IP blocking, User-Agent blocking, ISP blocking, and RTMP IP management.
IP Blocking
Block and manage blocked IP addresses.
Retrieve all blocked IP addresses.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_blocked_ips"
Add an IP address to the blocklist.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Required | IP address to block |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=add_blocked_ip" \ -d "ip=192.168.1.100"
Remove an IP address from the blocklist.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Blocked IP entry ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_blocked_ip" \ -d "id=15"
Remove all IP addresses from the blocklist.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=flush_blocked_ips"
User-Agent Blocking
Block specific User-Agent strings.
Retrieve all blocked User-Agent strings.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_blocked_uas"
Add a User-Agent string to the blocklist.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ua | string | Required | User-Agent string to block |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=add_blocked_ua" \ -d "ua=BadBot/1.0"
Remove a User-Agent string from the blocklist.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Blocked UA entry ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_blocked_ua" \ -d "id=5"
ISP Blocking
Block connections from specific ISPs.
Retrieve all blocked ISPs.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_blocked_isps"
Add an ISP to the blocklist.
| Parameter | Type | Required | Description |
|---|---|---|---|
| isp | string | Required | ISP name to block |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=add_blocked_isp" \ -d "isp=SomeVPN Provider"
Remove an ISP from the blocklist.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Blocked ISP entry ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_blocked_isp" \ -d "id=3"
RTMP IP Management
Manage allowed RTMP IP addresses.
List all allowed RTMP IPs.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_rtmp_ips"
Add a new allowed RTMP IP.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Required | RTMP IP address |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=create_rtmp_ip" \ -d "ip=10.0.0.50"
Edit an RTMP IP entry.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | RTMP IP entry ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_rtmp_ip" \ -d "id=1"
Delete an RTMP IP entry.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | RTMP IP entry ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=delete_rtmp_ip" \ -d "id=1"
Server Management
Manage servers, view statistics, and perform system operations.
Retrieve a list of all configured servers.
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_servers"
Retrieve details of a single server.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Server ID |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_server&id=1"
Edit server settings and configuration.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Server ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_server" \ -d "id=1"
Edit proxy server settings.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | int | Required | Proxy server ID |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=edit_proxy" \ -d "id=1"
Retrieve server statistics including CPU, memory, disk usage, and connection counts.
| Parameter | Type | Required | Description |
|---|---|---|---|
| server_id | int | Optional | Specific server ID (returns all if omitted) |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=get_server_stats&server_id=1"
{
"status": "STATUS_SUCCESS",
"data": {
"server_id": 1,
"cpu_usage": 23.5,
"mem_usage": 62.1,
"disk_usage": 45.8,
"uptime": "45 days",
"active_connections": 342,
"total_streams": 128
}
}Reload the nginx configuration on the server.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=reload_nginx"
Reload the system cache.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=reload_cache"
Clear temporary files from the server.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=clear_temp"
Clear the stream cache on the server.
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=clear_streams"
Terminate an active user connection by its activity ID. Use live_connections to get active activity IDs.
| Parameter | Type | Required | Description |
|---|---|---|---|
| activity_id | int | Required | The activity ID of the connection to terminate |
| server_id | int | Optional | Server ID (defaults to main server) |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=kill_connection" \ -d "activity_id=12345"
{
"status": "STATUS_SUCCESS"
}Terminate a running process on the server by its PID. Useful for killing stuck stream processes.
| Parameter | Type | Required | Description |
|---|---|---|---|
| pid | int | Required | The process ID to terminate |
| server_id | int | Optional | Server ID (defaults to main server) |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=kill_pid" \ -d "pid=54321"
{
"status": "STATUS_SUCCESS"
}Logs & Monitoring
Monitor activity, connections, credits, and system events.
Retrieve user activity logs with pagination support.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=activity_logs&start=0&limit=50"
View currently active/live connections across all lines and devices.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=live_connections&start=0&limit=50"
Retrieve credit transaction logs across all resellers.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=credit_logs&start=0&limit=50"
Retrieve reseller action logs and audit trail.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=user_logs&start=0&limit=50"
Retrieve login history for all users.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=login_logs&start=0&limit=50"
Retrieve client connection logs and history.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=client_logs&start=0&limit=50"
Retrieve MAG device event logs.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | int | Optional | Pagination offset |
| limit | int | Optional | Records per page |
| search[value] | string | Optional | Search term |
curl -X GET "http://dns:port/access/admin/index.php?api_key=YOUR_KEY&action=mag_events&start=0&limit=50"
Response Format
All API responses follow a consistent JSON structure.
{
"status": "STATUS_SUCCESS" | "STATUS_FAILURE",
"data": { // Object or Array depending on the endpoint }
}
status field before processing the data field. On failure, the data field may contain an error message or be empty.
Status Codes
All possible status values returned by the API.
STATUS_SUCCESSSTATUS_FAILURESTATUS_EXISTS_USERNAMESTATUS_EXISTS_MACSTATUS_INVALID_MACSTATUS_INVALID_DATESTATUS_INVALID_INPUTSTATUS_INSUFFICIENT_CREDITSSTATUS_INVALID_PACKAGESTATUS_NO_PERMISSIONSAdvanced
Advanced administrative operations. Use with extreme caution.
Execute a raw SQL query against the database. Returns the query result set for SELECT queries, or affected row count for INSERT/UPDATE/DELETE.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Required | The SQL query to execute |
curl -X POST "http://dns:port/access/admin/index.php" \ -d "api_key=YOUR_KEY" \ -d "action=mysql_query" \ --data-urlencode "query=SELECT id, username, exp_date FROM lines WHERE member_id = 88 LIMIT 10"
{
"status": "STATUS_SUCCESS",
"data": [
{
"id": 4521,
"username": "customer1",
"exp_date": "2026-12-31"
},
{
"id": 4522,
"username": "customer2",
"exp_date": "2027-03-15"
}
]
}