Files
xui-one-api-docs/openapi.yaml
T

2620 lines
85 KiB
YAML
Raw Normal View History

2025-12-12 15:07:46 +03:00
openapi: 3.0.3
info:
title: XUI.ONE Admin API
2025-12-13 10:40:13 +03:00
description: Comprehensive API documentation for XUI.ONE IPTV Panel Administration
2025-12-12 15:07:46 +03:00
version: 1.5.13
contact:
name: XUI.ONE API Support
url: https://xui.one
license:
name: Proprietary
url: https://xui.one
servers:
2025-12-12 15:55:31 +03:00
- url: '{protocol}://{server}:{port}/{accessCode}'
description: XUI.ONE API Server (Customizable)
2025-12-12 15:07:46 +03:00
variables:
2025-12-12 15:55:31 +03:00
protocol:
default: http
description: Protocol (http or https)
enum:
- http
- https
2025-12-12 15:07:46 +03:00
server:
default: your-server.com
2025-12-12 15:55:31 +03:00
description: Your XUI.ONE server IP or domain (e.g., 192.168.1.100 or panel.yourdomain.com)
2025-12-12 15:07:46 +03:00
port:
default: '80'
2025-12-12 15:55:31 +03:00
description: API port (80 for HTTP, 9000 for HTTPS, or custom port)
2025-12-12 15:07:46 +03:00
accessCode:
default: cSbuFLhp
description: Your unique access code for API access
security:
- ApiKeyAuth: []
tags:
- name: Authentication
description: Authentication and authorization operations
- name: GET INFO
description: Query and retrieve information
- name: Logs & Events
description: Activity logs, connections, and monitoring
- name: Line API
description: Subscription line management
- name: User API
description: User account management
- name: MAG API
description: MAG device management
- name: Enigma API
description: Enigma2 STB management
- name: Streams API
description: Live stream management
- name: Channel API
description: Channel management
- name: Station API
description: Radio station management
- name: Movie API
description: VOD movie management
- name: Series API
description: Series management
- name: Episode API
description: Episode management
- name: Servers API
description: Server and load balancer management
- name: Settings & System
description: System settings and administrative functions
paths:
/:
get:
summary: API Base Endpoint
description: |
Base endpoint for all API requests. All actions are performed by adding the `action` parameter.
2025-12-12 15:48:13 +03:00
**Usage Pattern:**
2025-12-12 15:07:46 +03:00
```
2025-12-12 15:48:13 +03:00
/?api_key=<API-KEY>&action=ACTION_NAME&param1=value1
```
**Example:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=user_info"
2025-12-12 15:07:46 +03:00
```
operationId: apiBase
tags:
- Authentication
parameters:
- $ref: '#/components/parameters/ApiKey'
- $ref: '#/components/parameters/Action'
responses:
'200':
description: Successful response
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/SuccessResponse'
- $ref: '#/components/schemas/ErrorResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/ServerError'
/?action=user_info:
get:
summary: Get Current User Info
description: |
Retrieves information about the currently authenticated admin user.
2025-12-12 15:48:13 +03:00
**Purpose:** Verify API authentication and check admin privileges.
---
2025-12-12 15:07:46 +03:00
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=user_info"
```
**Example Response:**
```json
{
"status": "STATUS_SUCCESS",
"data": {
"id": "1",
"username": "admin",
"member_group_id": "1",
"email": "admin@example.com",
"date_registered": "1609459200",
"last_login": "1734048000",
"status": "1"
}
}
```
2025-12-12 15:48:13 +03:00
---
**Use Cases:**
- ✅ Test API authentication
- ✅ Verify admin access
- ✅ Get current user details
- ✅ Check account status
2025-12-12 15:07:46 +03:00
operationId: getUserInfo
tags:
- Authentication
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
2025-12-12 15:48:13 +03:00
description: Action to perform
2025-12-12 15:07:46 +03:00
schema:
type: string
enum: [user_info]
example: user_info
responses:
'200':
2025-12-12 15:48:13 +03:00
description: Current user information retrieved successfully
2025-12-12 15:07:46 +03:00
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
- type: object
properties:
data:
$ref: '#/components/schemas/UserInfo'
example:
status: "STATUS_SUCCESS"
data:
id: "1"
username: "admin"
member_group_id: "1"
email: "admin@example.com"
date_registered: "1609459200"
last_login: "1734048000"
status: "1"
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_lines:
get:
summary: Get All Subscription Lines
description: |
Retrieves a list of all subscription lines in your XUI.ONE panel.
**Purpose:** View and manage all active and inactive subscription lines.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_lines"
```
**Use Cases:**
- ✅ List all subscriptions
- ✅ Monitor active lines
- ✅ Export subscription data
- ✅ Check expiration dates
- ✅ View connection limits
operationId: getLines
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_lines]
responses:
'200':
description: List of all subscription lines
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Line'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_users:
get:
summary: Get All Users
description: |
Retrieves a list of all user accounts in your XUI.ONE panel.
**Purpose:** View all admin, reseller, and user accounts.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_users"
```
**Use Cases:**
- ✅ List all users
- ✅ View user roles and permissions
- ✅ Audit user accounts
- ✅ Export user data
operationId: getUsers
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_users]
responses:
'200':
description: List of all users
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_streams:
get:
summary: Get All Live Streams
description: |
Retrieves a list of all live TV streams configured in your panel.
**Purpose:** View all live streaming channels and their configurations.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_streams"
```
**Use Cases:**
- ✅ List all live streams
- ✅ Check stream status
- ✅ View stream sources
- ✅ Monitor stream health
- ✅ Export stream configurations
operationId: getStreams
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_streams]
responses:
'200':
description: List of all live streams
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_channels:
get:
summary: Get All Channels
description: |
Retrieves a list of all channels configured in your panel.
**Purpose:** View all channel configurations and metadata.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_channels"
```
**Use Cases:**
- ✅ List all channels
- ✅ View channel categories
- ✅ Check EPG data
- ✅ Export channel list
operationId: getChannels
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_channels]
responses:
'200':
description: List of all channels
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_movies:
get:
summary: Get All Movies
description: |
Retrieves a list of all VOD movies in your panel.
**Purpose:** View all movie content and metadata.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_movies"
```
**Use Cases:**
- ✅ List all movies
- ✅ View movie metadata (title, year, rating)
- ✅ Check movie availability
- ✅ Export movie catalog
- ✅ Monitor storage usage
operationId: getMovies
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_movies]
responses:
'200':
description: List of all movies
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_series_list:
get:
summary: Get All Series
description: |
Retrieves a list of all TV series in your panel.
**Purpose:** View all series content and metadata.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_series_list"
```
**Use Cases:**
- ✅ List all TV series
- ✅ View series metadata
- ✅ Check episode counts
- ✅ Export series catalog
operationId: getSeriesList
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_series_list]
responses:
'200':
description: List of all series
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_episodes:
get:
summary: Get All Episodes
description: |
Retrieves a list of all episodes across all series.
**Purpose:** View all episode content and metadata.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_episodes"
```
**Note:** To get episodes for a specific series, use the series_id parameter.
**Use Cases:**
- ✅ List all episodes
- ✅ View episode metadata
- ✅ Check episode availability
- ✅ Filter by series
operationId: getEpisodes
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_episodes]
- name: series_id
in: query
required: false
description: Filter episodes by series ID
schema:
type: integer
example: 123
responses:
'200':
description: List of episodes
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_mags:
get:
summary: Get All MAG Devices
description: |
Retrieves a list of all MAG devices configured in your panel.
**Purpose:** View all MAG set-top box subscriptions.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_mags"
```
**Use Cases:**
- ✅ List all MAG devices
- ✅ View MAC addresses
- ✅ Check device status
- ✅ Monitor connections
operationId: getMags
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_mags]
responses:
'200':
description: List of all MAG devices
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_enigmas:
get:
summary: Get All Enigma2 Devices
description: |
Retrieves a list of all Enigma2 devices configured in your panel.
**Purpose:** View all Enigma2 STB subscriptions.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_enigmas"
```
**Use Cases:**
- ✅ List all Enigma2 devices
- ✅ View device status
- ✅ Check expiration dates
- ✅ Monitor connections
operationId: getEnigmas
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_enigmas]
responses:
'200':
description: List of all Enigma2 devices
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_stations:
get:
summary: Get All Radio Stations
description: |
Retrieves a list of all radio stations configured in your panel.
**Purpose:** View all radio streaming channels.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_stations"
```
**Use Cases:**
- ✅ List all radio stations
- ✅ View station metadata
- ✅ Check stream sources
- ✅ Export station list
operationId: getStations
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_stations]
responses:
'200':
description: List of all radio stations
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_packages:
get:
summary: Get All Packages
description: |
Retrieves a list of all subscription packages (bouquets) in your panel.
**Purpose:** View all available subscription packages and their configurations.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_packages"
```
**Use Cases:**
- ✅ List all packages
- ✅ View package pricing
- ✅ Check channel assignments
- ✅ Export package configurations
operationId: getPackages
tags:
- GET INFO
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_packages]
responses:
'200':
description: List of all packages
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=get_line:
get:
summary: Get Specific Line Details
description: |
Retrieves detailed information about a specific subscription line by ID.
**Purpose:** View detailed information for a single line.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=get_line&id=123"
```
**Use Cases:**
- ✅ View specific line details
- ✅ Check line status before editing
- ✅ Verify line configuration
- ✅ Audit line settings
operationId: getLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [get_line]
- name: id
in: query
required: true
description: Line ID
schema:
type: integer
example: 123
responses:
'200':
description: Line details retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
- type: object
properties:
data:
$ref: '#/components/schemas/Line'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/?action=create_line:
post:
summary: Create New Subscription Line
description: |
Creates a new subscription line (M3U/Xtream Codes account).
**Purpose:** Add new subscriptions to your panel.
---
**Example Request:**
```bash
curl -X POST "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=create_line" \
-d "username=newuser" \
-d "password=newpass123" \
-d "max_connections=1" \
-d "exp_date=2025-12-31" \
-d "bouquets_selected[]=1" \
-d "bouquets_selected[]=2"
```
**Response Example:**
```json
{
"status": "STATUS_SUCCESS",
"data": {
"line_id": "456",
"username": "newuser",
"password": "newpass123"
}
}
```
**Use Cases:**
- ✅ Create new subscriptions
- ✅ Add trial accounts
- ✅ Set up reseller lines
- ✅ Bulk create accounts
operationId: createLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [create_line]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- username
- password
properties:
username:
type: string
description: Username for the line
example: "newuser"
password:
type: string
description: Password for the line
example: "newpass123"
max_connections:
type: integer
description: Maximum concurrent connections
default: 1
example: 1
exp_date:
type: string
description: Expiration date (YYYY-MM-DD, Unix timestamp, or relative like "1month", "1year")
example: "2025-12-31"
is_trial:
type: integer
description: Trial account (0 = No, 1 = Yes)
enum: [0, 1]
default: 0
example: 0
is_restreamer:
type: integer
description: Reseller status (0 = No, 1 = Yes)
enum: [0, 1]
default: 0
example: 0
bouquets_selected:
type: array
description: Array of bouquet/package IDs to assign
items:
type: integer
example: [1, 2, 3]
notes:
type: string
description: Admin notes
example: "Premium customer"
contact:
type: string
description: Contact information
example: "customer@example.com"
isp_lock:
type: string
description: Lock to specific IP address
example: "192.168.1.100"
responses:
'200':
description: Line created successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=edit_line:
post:
summary: Edit Existing Line
description: |
Modifies an existing subscription line.
**Purpose:** Update line settings and configuration.
---
**Example Request:**
```bash
curl -X POST "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=edit_line" \
-d "id=123" \
-d "password=newpassword" \
-d "max_connections=2"
```
**Use Cases:**
- ✅ Change passwords
- ✅ Update connection limits
- ✅ Modify expiration dates
- ✅ Change assigned packages
- ✅ Update notes
operationId: editLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [edit_line]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: Line ID to edit
example: 123
username:
type: string
description: New username
example: "updateduser"
password:
type: string
description: New password
example: "newpass456"
max_connections:
type: integer
description: Maximum concurrent connections
example: 2
exp_date:
type: string
description: New expiration date
example: "2026-12-31"
is_trial:
type: integer
description: Trial status
enum: [0, 1]
example: 0
bouquets_selected:
type: array
description: Updated bouquet IDs
items:
type: integer
example: [1, 2, 3, 4]
notes:
type: string
description: Updated notes
example: "Extended subscription"
responses:
'200':
description: Line updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/?action=delete_line:
post:
summary: Delete Line
description: |
Permanently deletes a subscription line.
**Purpose:** Remove lines from the panel.
⚠️ **Warning:** This action cannot be undone!
---
**Example Request:**
```bash
curl -X POST "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=delete_line" \
-d "id=123"
```
**Use Cases:**
- ✅ Remove expired subscriptions
- ✅ Delete test accounts
- ✅ Clean up old lines
operationId: deleteLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [delete_line]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: Line ID to delete
example: 123
responses:
'200':
description: Line deleted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/?action=enable_line:
post:
summary: Enable Line
description: |
Enables a disabled subscription line.
**Purpose:** Reactivate suspended lines.
---
**Example Request:**
```bash
curl -X POST "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=enable_line" \
-d "id=123"
```
**Use Cases:**
- ✅ Reactivate suspended accounts
- ✅ Resume service after payment
- ✅ Restore access
operationId: enableLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [enable_line]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: Line ID to enable
example: 123
responses:
'200':
description: Line enabled successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/?action=disable_line:
post:
summary: Disable Line
description: |
Disables an active subscription line without deleting it.
**Purpose:** Temporarily suspend access.
---
**Example Request:**
```bash
curl -X POST "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=disable_line" \
-d "id=123"
```
**Use Cases:**
- ✅ Suspend non-payment accounts
- ✅ Temporarily block access
- ✅ Pause service
operationId: disableLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [disable_line]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: Line ID to disable
example: 123
responses:
'200':
description: Line disabled successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/?action=ban_line:
post:
summary: Ban Line
description: |
Bans a subscription line, blocking access and preventing reactivation.
**Purpose:** Permanently block abusive or fraudulent accounts.
---
**Example Request:**
```bash
curl -X POST "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=ban_line" \
-d "id=123"
```
**Use Cases:**
- ✅ Block fraudulent accounts
- ✅ Prevent abuse
- ✅ Enforce terms of service
operationId: banLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [ban_line]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: Line ID to ban
example: 123
responses:
'200':
description: Line banned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/?action=unban_line:
post:
summary: Unban Line
description: |
Removes ban from a previously banned line.
**Purpose:** Restore access to banned accounts.
---
**Example Request:**
```bash
curl -X POST "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=unban_line" \
-d "id=123"
```
**Use Cases:**
- ✅ Unban false positives
- ✅ Restore access after appeal
- ✅ Second chances
operationId: unbanLine
tags:
- Line API
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [unban_line]
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: Line ID to unban
example: 123
responses:
'200':
description: Line unbanned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/?action=activity_logs:
get:
summary: Get Activity Logs
description: |
Retrieves activity logs showing admin and user actions in the panel.
**Purpose:** Monitor all administrative actions and changes.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=activity_logs"
```
**Use Cases:**
- ✅ Audit admin actions
- ✅ Track changes to configurations
- ✅ Monitor user behavior
- ✅ Security auditing
- ✅ Troubleshooting issues
operationId: activityLogs
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [activity_logs]
- name: limit
in: query
description: Number of records to return
schema:
type: integer
default: 100
example: 50
- name: offset
in: query
description: Offset for pagination
schema:
type: integer
default: 0
example: 0
responses:
'200':
description: Activity logs retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=live_connections:
get:
summary: Get Live Connections
description: |
Retrieves list of currently active connections to your streams.
**Purpose:** Monitor real-time viewer activity.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=live_connections"
```
**Use Cases:**
- ✅ Monitor active viewers
- ✅ Track concurrent connections
- ✅ Detect connection sharing
- ✅ View viewer locations
- ✅ Check stream load
operationId: liveConnections
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [live_connections]
responses:
'200':
description: Live connections retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=credit_logs:
get:
summary: Get Credit Transaction Logs
description: |
Retrieves credit transaction history for resellers.
**Purpose:** Track credit additions, deductions, and transfers.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=credit_logs"
```
**Use Cases:**
- ✅ Audit credit transactions
- ✅ Track reseller spending
- ✅ Monitor credit transfers
- ✅ Financial reporting
operationId: creditLogs
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [credit_logs]
- name: user_id
in: query
description: Filter by specific user ID
schema:
type: integer
example: 123
responses:
'200':
description: Credit logs retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=client_logs:
get:
summary: Get Client Connection Logs
description: |
Retrieves client connection attempt logs.
**Purpose:** Monitor client connection history and patterns.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=client_logs"
```
**Use Cases:**
- ✅ Track connection attempts
- ✅ Detect suspicious activity
- ✅ Monitor client devices
- ✅ View connection history
operationId: clientLogs
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [client_logs]
- name: line_id
in: query
description: Filter by specific line ID
schema:
type: integer
example: 123
responses:
'200':
description: Client logs retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=user_logs:
get:
summary: Get User Activity Logs
description: |
Retrieves logs of user actions in the panel.
**Purpose:** Monitor user activity and changes.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=user_logs"
```
**Use Cases:**
- ✅ Track user actions
- ✅ Audit panel changes
- ✅ Monitor reseller activity
- ✅ Security monitoring
operationId: userLogs
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [user_logs]
- name: user_id
in: query
description: Filter by specific user ID
schema:
type: integer
example: 123
responses:
'200':
description: User logs retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=stream_errors:
get:
summary: Get Stream Error Logs
description: |
Retrieves stream error logs and failure information.
**Purpose:** Monitor stream health and troubleshoot issues.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=stream_errors"
```
**Use Cases:**
- ✅ Troubleshoot stream issues
- ✅ Monitor stream reliability
- ✅ Identify problematic sources
- ✅ Track downtime
operationId: streamErrors
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [stream_errors]
- name: stream_id
in: query
description: Filter by specific stream ID
schema:
type: integer
example: 456
responses:
'200':
description: Stream errors retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=watch_output:
get:
summary: Watch Stream Output
description: |
Monitor live stream output and encoding details.
**Purpose:** Real-time stream monitoring and diagnostics.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=watch_output&stream_id=456"
```
**Use Cases:**
- ✅ Monitor encoding quality
- ✅ Check bitrate and resolution
- ✅ Diagnose playback issues
- ✅ Verify stream settings
operationId: watchOutput
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [watch_output]
- name: stream_id
in: query
required: true
description: Stream ID to monitor
schema:
type: integer
example: 456
responses:
'200':
description: Stream output data retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=system_logs:
get:
summary: Get System Logs
description: |
Retrieves system-level logs and events.
**Purpose:** Monitor system health and errors.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=system_logs"
```
**Use Cases:**
- ✅ Monitor system health
- ✅ Troubleshoot errors
- ✅ Track system events
- ✅ Performance monitoring
operationId: systemLogs
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [system_logs]
- name: limit
in: query
description: Number of records to return
schema:
type: integer
default: 100
example: 50
responses:
'200':
description: System logs retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=login_logs:
get:
summary: Get Login Attempt Logs
description: |
Retrieves logs of login attempts to the panel.
**Purpose:** Security monitoring and access auditing.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=login_logs"
```
**Use Cases:**
- ✅ Monitor login attempts
- ✅ Detect brute force attacks
- ✅ Track successful logins
- ✅ Security auditing
operationId: loginLogs
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [login_logs]
- name: success
in: query
description: Filter by success status (1 = successful, 0 = failed)
schema:
type: integer
enum: [0, 1]
example: 0
responses:
'200':
description: Login logs retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=restream_logs:
get:
summary: Get Restream Activity Logs
description: |
Retrieves logs of restreaming activity.
**Purpose:** Monitor reseller restreaming operations.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=restream_logs"
```
**Use Cases:**
- ✅ Track restream usage
- ✅ Monitor reseller activity
- ✅ Audit stream distribution
- ✅ Performance monitoring
operationId: restreamLogs
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [restream_logs]
responses:
'200':
description: Restream logs retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/?action=mag_events:
get:
summary: Get MAG Device Events
description: |
Retrieves event logs for MAG devices.
**Purpose:** Monitor MAG device activity and events.
---
**Example Request:**
```bash
curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=mag_events"
```
**Use Cases:**
- ✅ Track MAG device usage
- ✅ Monitor device events
- ✅ Troubleshoot MAG issues
- ✅ View device activity
operationId: magEvents
tags:
- Logs & Events
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema:
type: string
enum: [mag_events]
- name: mag_id
in: query
description: Filter by specific MAG device ID
schema:
type: integer
example: 202
responses:
'200':
description: MAG events retrieved successfully
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
2025-12-12 16:44:16 +03:00
# ==================================================================================
# CATEGORY 5: USER API - User Account Management
# ==================================================================================
/?action=create_user:
post:
summary: Create New User Account
description: Create admin, reseller, or user account
tags: [User API]
operationId: createUser
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
required: true
schema: {type: string, enum: [create_user]}
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
required: [username, password]
properties:
username: {type: string, example: "newadmin"}
password: {type: string, example: "secure123"}
email: {type: string, example: "admin@example.com"}
member_group_id: {type: integer, description: "1=Admin, 2=Reseller, 3=User", example: 2}
responses:
'200': {description: User created, content: {application/json: {schema: {$ref: '#/components/schemas/SuccessResponse'}}}}
/?action=edit_user:
post:
summary: Edit User Account
tags: [User API]
operationId: editUser
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [edit_user]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [id]
properties:
id: {type: integer, example: 5}
password: {type: string}
email: {type: string}
responses:
'200': {description: User updated}
/?action=delete_user:
post:
summary: Delete User Account
tags: [User API]
operationId: deleteUser
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [delete_user]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [id]
properties:
id: {type: integer, example: 5}
responses:
'200': {description: User deleted}
/?action=enable_user:
post:
summary: Enable User Account
tags: [User API]
operationId: enableUser
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [enable_user]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 5}
responses:
'200': {description: User enabled}
/?action=disable_user:
post:
summary: Disable User Account
tags: [User API]
operationId: disableUser
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [disable_user]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 5}
responses:
'200': {description: User disabled}
/?action=add_credits:
post:
summary: Add Credits to Reseller
tags: [User API]
operationId: addCredits
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [add_credits]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
user_id: {type: integer, example: 5}
amount: {type: number, example: 100.00}
responses:
'200': {description: Credits added}
# ==================================================================================
# CATEGORY 6: MAG API - MAG Device Management
# ==================================================================================
/?action=create_mag:
post:
summary: Create MAG Device
tags: [MAG API]
operationId: createMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [create_mag]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [mac]
properties:
mac: {type: string, example: "00:1A:79:XX:XX:XX"}
exp_date: {type: string, example: "2025-12-31"}
bouquets_selected: {type: array, items: {type: integer}}
responses:
'200': {description: MAG created}
/?action=edit_mag:
post:
summary: Edit MAG Device
tags: [MAG API]
operationId: editMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [edit_mag]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [id]
properties:
id: {type: integer, example: 202}
exp_date: {type: string}
responses:
'200': {description: MAG updated}
/?action=delete_mag:
post:
summary: Delete MAG Device
tags: [MAG API]
operationId: deleteMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [delete_mag]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [id]
properties:
id: {type: integer, example: 202}
responses:
'200': {description: MAG deleted}
/?action=enable_mag:
post:
summary: Enable MAG Device
tags: [MAG API]
operationId: enableMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [enable_mag]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 202}
responses:
'200': {description: MAG enabled}
/?action=disable_mag:
post:
summary: Disable MAG Device
tags: [MAG API]
operationId: disableMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [disable_mag]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 202}
responses:
'200': {description: MAG disabled}
/?action=ban_mag:
post:
summary: Ban MAG Device
tags: [MAG API]
operationId: banMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [ban_mag]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 202}
responses:
'200': {description: MAG banned}
/?action=unban_mag:
post:
summary: Unban MAG Device
tags: [MAG API]
operationId: unbanMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [unban_mag]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 202}
responses:
'200': {description: MAG unbanned}
/?action=convert_mag_to_line:
post:
summary: Convert MAG to Line
description: Convert MAG device to M3U subscription line
tags: [MAG API]
operationId: convertMagToLine
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [convert_mag_to_line]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 202}
responses:
'200': {description: Converted to line}
/?action=get_mag:
get:
summary: Get MAG Device Details
tags: [MAG API]
operationId: getMag
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [get_mag]}
- name: id
in: query
required: true
schema: {type: integer, example: 202}
responses:
'200': {description: MAG details}
# ==================================================================================
# CATEGORY 7: ENIGMA API - Enigma2 Device Management
# ==================================================================================
/?action=create_enigma:
post:
summary: Create Enigma2 Device
tags: [Enigma API]
operationId: createEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [create_enigma]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [mac]
properties:
mac: {type: string, example: "00:1A:79:YY:YY:YY"}
exp_date: {type: string, example: "2025-12-31"}
responses:
'200': {description: Enigma created}
/?action=edit_enigma:
post:
summary: Edit Enigma2 Device
tags: [Enigma API]
operationId: editEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [edit_enigma]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [id]
properties:
id: {type: integer, example: 303}
responses:
'200': {description: Enigma updated}
/?action=delete_enigma:
post:
summary: Delete Enigma2 Device
tags: [Enigma API]
operationId: deleteEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [delete_enigma]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required: [id]
properties:
id: {type: integer, example: 303}
responses:
'200': {description: Enigma deleted}
/?action=enable_enigma:
post:
summary: Enable Enigma2 Device
tags: [Enigma API]
operationId: enableEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [enable_enigma]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 303}
responses:
'200': {description: Enigma enabled}
/?action=disable_enigma:
post:
summary: Disable Enigma2 Device
tags: [Enigma API]
operationId: disableEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [disable_enigma]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 303}
responses:
'200': {description: Enigma disabled}
/?action=ban_enigma:
post:
summary: Ban Enigma2 Device
tags: [Enigma API]
operationId: banEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [ban_enigma]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 303}
responses:
'200': {description: Enigma banned}
/?action=unban_enigma:
post:
summary: Unban Enigma2 Device
tags: [Enigma API]
operationId: unbanEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [unban_enigma]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 303}
responses:
'200': {description: Enigma unbanned}
/?action=convert_enigma_to_line:
post:
summary: Convert Enigma to Line
tags: [Enigma API]
operationId: convertEnigmaToLine
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [convert_enigma_to_line]}
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
id: {type: integer, example: 303}
responses:
'200': {description: Converted to line}
/?action=get_enigma:
get:
summary: Get Enigma2 Details
tags: [Enigma API]
operationId: getEnigma
parameters:
- $ref: '#/components/parameters/ApiKey'
- name: action
in: query
schema: {type: string, enum: [get_enigma]}
- name: id
in: query
required: true
schema: {type: integer, example: 303}
responses:
'200': {description: Enigma details}
# ==================================================================================
# CATEGORY 8-15: CONTENT & SYSTEM MANAGEMENT (Compact format)
# ==================================================================================
# Streams API
/?action=create_stream:
post:
summary: Create Live Stream
tags: [Streams API]
operationId: createStream
parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_stream]}}]
requestBody: {content: {application/x-www-form-urlencoded: {schema: {required: [stream_display_name, stream_source], properties: {stream_display_name: {type: string, example: "CNN HD"}, stream_source: {type: string, example: "http://source.com/stream.m3u8"}, category_id: {type: integer, example: 1}}}}}}
responses: {'200': {description: Stream created}}
/?action=edit_stream:
post:
summary: Edit Live Stream
tags: [Streams API]
operationId: editStream
parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_stream]}}]
requestBody: {content: {application/x-www-form-urlencoded: {schema: {required: [id], properties: {id: {type: integer, example: 456}}}}}}
responses: {'200': {description: Stream updated}}
/?action=delete_stream:
post:
summary: Delete Live Stream
tags: [Streams API]
operationId: deleteStream
parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_stream]}}]
requestBody: {content: {application/x-www-form-urlencoded: {schema: {required: [id], properties: {id: {type: integer, example: 456}}}}}}
responses: {'200': {description: Stream deleted}}
/?action=start_stream:
post:
summary: Start Stream
tags: [Streams API]
operationId: startStream
parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [start_stream]}}]
requestBody: {content: {application/x-www-form-urlencoded: {schema: {properties: {id: {type: integer, example: 456}}}}}}
responses: {'200': {description: Stream started}}
/?action=stop_stream:
post:
summary: Stop Stream
tags: [Streams API]
operationId: stopStream
parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [stop_stream]}}]
requestBody: {content: {application/x-www-form-urlencoded: {schema: {properties: {id: {type: integer, example: 456}}}}}}
responses: {'200': {description: Stream stopped}}
/?action=get_stream:
get:
summary: Get Stream Details
tags: [Streams API]
operationId: getStream
parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_stream]}}, {name: id, in: query, required: true, schema: {type: integer, example: 456}}]
responses: {'200': {description: Stream details}}
# Channel API
/?action=create_channel:
post: {summary: Create Channel, tags: [Channel API], operationId: createChannel, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_channel]}}], responses: {'200': {description: Channel created}}}
/?action=edit_channel:
post: {summary: Edit Channel, tags: [Channel API], operationId: editChannel, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_channel]}}], responses: {'200': {description: Channel updated}}}
/?action=delete_channel:
post: {summary: Delete Channel, tags: [Channel API], operationId: deleteChannel, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_channel]}}], responses: {'200': {description: Channel deleted}}}
/?action=enable_channel:
post: {summary: Enable Channel, tags: [Channel API], operationId: enableChannel, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [enable_channel]}}], responses: {'200': {description: Channel enabled}}}
/?action=disable_channel:
post: {summary: Disable Channel, tags: [Channel API], operationId: disableChannel, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [disable_channel]}}], responses: {'200': {description: Channel disabled}}}
/?action=get_channel:
get: {summary: Get Channel Details, tags: [Channel API], operationId: getChannel, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_channel]}}], responses: {'200': {description: Channel details}}}
# Station API
/?action=create_station:
post: {summary: Create Radio Station, tags: [Station API], operationId: createStation, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_station]}}], responses: {'200': {description: Station created}}}
/?action=edit_station:
post: {summary: Edit Radio Station, tags: [Station API], operationId: editStation, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_station]}}], responses: {'200': {description: Station updated}}}
/?action=delete_station:
post: {summary: Delete Radio Station, tags: [Station API], operationId: deleteStation, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_station]}}], responses: {'200': {description: Station deleted}}}
/?action=enable_station:
post: {summary: Enable Radio Station, tags: [Station API], operationId: enableStation, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [enable_station]}}], responses: {'200': {description: Station enabled}}}
/?action=disable_station:
post: {summary: Disable Radio Station, tags: [Station API], operationId: disableStation, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [disable_station]}}], responses: {'200': {description: Station disabled}}}
/?action=get_station:
get: {summary: Get Radio Station Details, tags: [Station API], operationId: getStation, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_station]}}], responses: {'200': {description: Station details}}}
# Movie API
/?action=create_movie:
post: {summary: Create VOD Movie, tags: [Movie API], operationId: createMovie, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_movie]}}], responses: {'200': {description: Movie created}}}
/?action=edit_movie:
post: {summary: Edit VOD Movie, tags: [Movie API], operationId: editMovie, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_movie]}}], responses: {'200': {description: Movie updated}}}
/?action=delete_movie:
post: {summary: Delete VOD Movie, tags: [Movie API], operationId: deleteMovie, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_movie]}}], responses: {'200': {description: Movie deleted}}}
/?action=enable_movie:
post: {summary: Enable VOD Movie, tags: [Movie API], operationId: enableMovie, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [enable_movie]}}], responses: {'200': {description: Movie enabled}}}
/?action=disable_movie:
post: {summary: Disable VOD Movie, tags: [Movie API], operationId: disableMovie, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [disable_movie]}}], responses: {'200': {description: Movie disabled}}}
/?action=get_movie:
get: {summary: Get VOD Movie Details, tags: [Movie API], operationId: getMovie, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_movie]}}], responses: {'200': {description: Movie details}}}
# Series API
/?action=create_series:
post: {summary: Create TV Series, tags: [Series API], operationId: createSeries, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_series]}}], responses: {'200': {description: Series created}}}
/?action=edit_series:
post: {summary: Edit TV Series, tags: [Series API], operationId: editSeries, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_series]}}], responses: {'200': {description: Series updated}}}
/?action=delete_series:
post: {summary: Delete TV Series, tags: [Series API], operationId: deleteSeries, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_series]}}], responses: {'200': {description: Series deleted}}}
/?action=get_series:
get: {summary: Get TV Series Details, tags: [Series API], operationId: getSeries, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_series]}}], responses: {'200': {description: Series details}}}
# Episode API
/?action=create_episode:
post: {summary: Create Episode, tags: [Episode API], operationId: createEpisode, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_episode]}}], responses: {'200': {description: Episode created}}}
/?action=edit_episode:
post: {summary: Edit Episode, tags: [Episode API], operationId: editEpisode, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_episode]}}], responses: {'200': {description: Episode updated}}}
/?action=delete_episode:
post: {summary: Delete Episode, tags: [Episode API], operationId: deleteEpisode, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_episode]}}], responses: {'200': {description: Episode deleted}}}
/?action=enable_episode:
post: {summary: Enable Episode, tags: [Episode API], operationId: enableEpisode, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [enable_episode]}}], responses: {'200': {description: Episode enabled}}}
/?action=disable_episode:
post: {summary: Disable Episode, tags: [Episode API], operationId: disableEpisode, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [disable_episode]}}], responses: {'200': {description: Episode disabled}}}
/?action=get_episode:
get: {summary: Get Episode Details, tags: [Episode API], operationId: getEpisode, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_episode]}}], responses: {'200': {description: Episode details}}}
# Server API
/?action=install_server:
post: {summary: Install New Server, tags: [Server API], operationId: installServer, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [install_server]}}], responses: {'200': {description: Server installed}}}
/?action=edit_server:
post: {summary: Edit Server Settings, tags: [Server API], operationId: editServer, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_server]}}], responses: {'200': {description: Server updated}}}
/?action=delete_server:
post: {summary: Remove Server, tags: [Server API], operationId: deleteServer, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_server]}}], responses: {'200': {description: Server removed}}}
/?action=restart_server:
post: {summary: Restart Server Services, tags: [Server API], operationId: restartServer, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [restart_server]}}], responses: {'200': {description: Server restarting}}}
/?action=get_server_info:
get: {summary: Get Server Information, tags: [Server API], operationId: getServerInfo, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_server_info]}}], responses: {'200': {description: Server info}}}
/?action=get_server_stats:
get: {summary: Get Server Statistics, tags: [Server API], operationId: getServerStats, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_server_stats]}}], responses: {'200': {description: Server stats}}}
/?action=install_load_balancer:
post: {summary: Install Load Balancer, tags: [Server API], operationId: installLoadBalancer, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [install_load_balancer]}}], responses: {'200': {description: Load balancer installed}}}
/?action=edit_load_balancer:
post: {summary: Edit Load Balancer, tags: [Server API], operationId: editLoadBalancer, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_load_balancer]}}], responses: {'200': {description: Load balancer updated}}}
# Settings & System API
/?action=get_settings:
get: {summary: Get Panel Settings, tags: [Settings & System], operationId: getSettings, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_settings]}}], responses: {'200': {description: Panel settings}}}
/?action=edit_settings:
post: {summary: Update Panel Settings, tags: [Settings & System], operationId: editSettings, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_settings]}}], responses: {'200': {description: Settings updated}}}
/?action=reload_nginx:
post: {summary: Reload Nginx Configuration, tags: [Settings & System], operationId: reloadNginx, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [reload_nginx]}}], responses: {'200': {description: Nginx reloaded}}}
/?action=clear_cache:
post: {summary: Clear System Cache, tags: [Settings & System], operationId: clearCache, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [clear_cache]}}], responses: {'200': {description: Cache cleared}}}
/?action=backup_database:
post: {summary: Backup Database, tags: [Settings & System], operationId: backupDatabase, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [backup_database]}}], responses: {'200': {description: Backup created}}}
/?action=restore_database:
post: {summary: Restore Database, tags: [Settings & System], operationId: restoreDatabase, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [restore_database]}}], responses: {'200': {description: Database restored}}}
/?action=get_categories:
get: {summary: Get All Categories, tags: [Settings & System], operationId: getCategories, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_categories]}}], responses: {'200': {description: Categories list}}}
/?action=create_category:
post: {summary: Create Category, tags: [Settings & System], operationId: createCategory, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_category]}}], responses: {'200': {description: Category created}}}
/?action=edit_category:
post: {summary: Edit Category, tags: [Settings & System], operationId: editCategory, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_category]}}], responses: {'200': {description: Category updated}}}
/?action=delete_category:
post: {summary: Delete Category, tags: [Settings & System], operationId: deleteCategory, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_category]}}], responses: {'200': {description: Category deleted}}}
/?action=get_bouquets:
get: {summary: Get All Bouquets/Packages, tags: [Settings & System], operationId: getBouquets, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [get_bouquets]}}], responses: {'200': {description: Bouquets list}}}
/?action=create_bouquet:
post: {summary: Create Bouquet, tags: [Settings & System], operationId: createBouquet, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [create_bouquet]}}], responses: {'200': {description: Bouquet created}}}
/?action=edit_bouquet:
post: {summary: Edit Bouquet, tags: [Settings & System], operationId: editBouquet, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [edit_bouquet]}}], responses: {'200': {description: Bouquet updated}}}
/?action=delete_bouquet:
post: {summary: Delete Bouquet, tags: [Settings & System], operationId: deleteBouquet, parameters: [{$ref: '#/components/parameters/ApiKey'}, {name: action, in: query, schema: {type: string, enum: [delete_bouquet]}}], responses: {'200': {description: Bouquet deleted}}}
2025-12-12 15:07:46 +03:00
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: query
name: api_key
description: |
2025-12-12 15:48:13 +03:00
API key for authentication. Generate from your admin profile.
2025-12-12 15:07:46 +03:00
**Example:** `8D3135D30437F86EAE2FA4A2A8345000`
parameters:
ApiKey:
name: api_key
in: query
required: true
description: Your API key for authentication
schema:
type: string
example: "8D3135D30437F86EAE2FA4A2A8345000"
Action:
name: action
in: query
required: true
description: The API action to perform
schema:
type: string
example: user_info
schemas:
SuccessResponse:
type: object
required:
- status
- data
properties:
status:
type: string
enum: [STATUS_SUCCESS]
description: Response status indicator
data:
type: object
description: Response data (structure varies by endpoint)
example:
status: "STATUS_SUCCESS"
data: {}
ErrorResponse:
type: object
required:
- status
- error
properties:
status:
type: string
enum: [STATUS_FAILURE]
description: Error status indicator
error:
type: string
description: Error message describing what went wrong
example:
status: "STATUS_FAILURE"
error: "Invalid API key"
UserInfo:
type: object
2025-12-12 15:48:13 +03:00
description: User information object
2025-12-12 15:07:46 +03:00
properties:
id:
type: string
description: User ID
example: "1"
username:
type: string
description: Username
example: "admin"
member_group_id:
type: string
description: Member group ID (1 = Administrator)
example: "1"
email:
type: string
format: email
description: User email address
example: "admin@example.com"
date_registered:
type: string
description: Unix timestamp of registration date
example: "1609459200"
last_login:
type: string
description: Unix timestamp of last login
example: "1734048000"
status:
type: string
description: User status (1 = Active, 0 = Inactive)
enum: ["0", "1"]
example: "1"
Line:
type: object
description: Subscription line object
properties:
id:
type: string
description: Line ID
example: "123"
username:
type: string
description: Line username
example: "testuser"
password:
type: string
description: Line password
example: "testpass123"
exp_date:
type: string
description: Expiration date (Unix timestamp)
example: "1735689600"
max_connections:
type: string
description: Maximum concurrent connections allowed
example: "1"
is_trial:
type: string
description: Trial status (0 = No, 1 = Yes)
enum: ["0", "1"]
example: "0"
enabled:
type: string
description: Line status (0 = Disabled, 1 = Enabled)
enum: ["0", "1"]
example: "1"
is_restreamer:
type: string
description: Reseller status (0 = No, 1 = Yes)
enum: ["0", "1"]
example: "0"
bouquet:
type: string
description: Assigned bouquet/package IDs (JSON array)
example: "[1,2,3]"
notes:
type: string
description: Admin notes
example: "Premium customer"
created_at:
type: string
description: Creation date (Unix timestamp)
example: "1609459200"
2025-12-12 15:07:46 +03:00
responses:
Unauthorized:
description: Authentication failed - Invalid API key or access code
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: "STATUS_FAILURE"
error: "Invalid API key"
ServerError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: "STATUS_FAILURE"
error: "Internal server error"
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: "STATUS_FAILURE"
error: "Resource not found"