openapi: 3.0.3 info: title: XUI.ONE Admin API description: | **Comprehensive API documentation for XUI.ONE IPTV Panel Administration** ### 🎯 Quick Start This API provides programmatic access to manage your IPTV platform with 180+ endpoints for: - 📺 Manage subscriptions (Lines, MAG, Enigma2 devices) - 🎬 Control streams, channels, movies, and series - 📊 Monitor connections and activity logs - ⚙️ Configure servers and load balancers --- ### 🔗 Base URL Pattern ``` {protocol}://YOUR_SERVER:{port}//?api_key=&action=ACTION ``` **Customize:** - `{protocol}` → http or https - `YOUR_SERVER` → Your server domain/IP (e.g., 192.168.1.100) - `{port}` → Your port (80, 8000, 9000, or custom) - `` → Your access code (e.g., `cSbuFLhp`) - `` → Your API key - `ACTION` → API action name (e.g., `get_lines`) **Common Ports:** - `80` - HTTP (default) - `8000` - HTTP (alternative) - `9000` - HTTPS (recommended) - Custom - Any port you configured --- ### 🔐 Authentication Setup **Required:** 1. XUI.ONE panel installed (v1.5.5+) 2. Admin API access code created 3. API key generated from profile **Quick Setup:** 1. Panel → Management → Access Control → Access Codes 2. Create "Admin API" access code 3. Profile → Generate API Key 4. Test: `curl "http://your-server.com//?api_key=&action=user_info"` 📖 **[View detailed setup guide →](https://github.com/worldofiptvcom/xui-one-api-docs/blob/main/docs/getting-started.md)** --- ### 📝 Request Methods **GET** - Query data ``` /?api_key=&action=get_lines ``` **POST** - Create/update data ``` curl -X POST ".../?api_key=&action=create_line" -d "username=test" ``` --- ### ✅ Response Format **Success:** ```json { "status": "STATUS_SUCCESS", "data": { ... } } ``` **Error:** ```json { "status": "STATUS_FAILURE", "error": "Error description" } ``` --- ### 🔒 Security Best Practices - ✅ Use HTTPS (port 9000) in production - ✅ Whitelist IPs in access code settings - ✅ Rotate API keys regularly - ✅ Never commit keys to version control --- ### 📚 Resources - **GitHub:** [Documentation Repository](https://github.com/worldofiptvcom/xui-one-api-docs) - **Community:** [World of IPTV Forums](https://www.worldofiptv.com) - **Getting Started:** [Setup Guide](https://github.com/worldofiptvcom/xui-one-api-docs/blob/main/docs/getting-started.md) - **XUI.ONE:** [Official Website](https://xui.one) version: 1.5.13 contact: name: XUI.ONE API Support url: https://xui.one license: name: Proprietary url: https://xui.one servers: - url: '{protocol}://{server}:{port}/{accessCode}' description: XUI.ONE API Server (Customizable) variables: protocol: default: http description: Protocol (http or https) enum: - http - https server: default: your-server.com description: Your XUI.ONE server IP or domain (e.g., 192.168.1.100 or panel.yourdomain.com) port: default: '80' description: API port (80 for HTTP, 9000 for HTTPS, or custom port) 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. **Usage Pattern:** ``` /?api_key=&action=ACTION_NAME¶m1=value1 ``` **Example:** ```bash curl "http://your-server.com/cSbuFLhp/?api_key=8D3135D30437F86EAE2FA4A2A8345000&action=user_info" ``` 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. **Purpose:** Verify API authentication and check admin privileges. --- **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" } } ``` --- **Use Cases:** - ✅ Test API authentication - ✅ Verify admin access - ✅ Get current user details - ✅ Check account status operationId: getUserInfo tags: - Authentication parameters: - $ref: '#/components/parameters/ApiKey' - name: action in: query required: true description: Action to perform schema: type: string enum: [user_info] example: user_info responses: '200': description: Current user information retrieved successfully 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' components: securitySchemes: ApiKeyAuth: type: apiKey in: query name: api_key description: | API key for authentication. Generate from your admin profile. **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 description: User information object 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" 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"