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¶m1=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'
|
|
|
|
|
|
2025-12-12 16:18:18 +03:00
|
|
|
/?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'
|
|
|
|
|
|
2025-12-12 16:27:33 +03:00
|
|
|
/?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'
|
|
|
|
|
|
2025-12-12 16:32:31 +03:00
|
|
|
/?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"
|
|
|
|
|
|
2025-12-12 16:18:18 +03:00
|
|
|
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"
|