API Routes Documentation – Input/Output Specifications
Route Configuration
All routes use throttle middleware: 10 requests per minute per IP
1. Get Templates
Route: GET /auto/get-templates
Request (Query Parameters)
GET /auto/get-templates?api_token={your_api_token}
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| api_token | string | Yes | Manager’s API authentication token | abc123xyz789 |
Response
Success Response (200 OK)
{
"success": true,
"message": "Ready!",
"data": {
"tempaltes": [
{
"id": 1,
"name": "Basic Package"
},
{
"id": 2,
"name": "Premium Package"
},
{
"id": 3,
"name": "Ultimate Package"
}
]
}
}
Error Response (401 Unauthorized)
{
"success": false,
"message": "Invalid API token."
}
cURL Example
curl -X GET "https://yourapi.com/auto/get-templates?api_token=abc123xyz789"
2. Get Bouquets
Route: GET /auto/get-bouquets
Request (Query Parameters)
GET /auto/get-bouquets?api_token={your_api_token}&template_id={template_id}
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| api_token | string | Yes | Manager’s API authentication token | abc123xyz789 |
| template_id | integer | Yes | ID of the template to get bouquets for | 1 |
Response
Success Response (200 OK)
{
"success": true,
"message": "Ready!",
"data": {
"bouquets": {
"live": [
{
"id": 101,
"name": "Sports Channels",
"type": "live"
},
{
"id": 102,
"name": "News Channels",
"type": "live"
}
],
"vod": [
{
"id": 201,
"name": "Latest Movies",
"type": "vod"
},
{
"id": 202,
"name": "Classic Movies",
"type": "vod"
}
],
"series": [
{
"id": 501,
"name": "Netflix Series",
"type": "series"
},
{
"id": 502,
"name": "HBO Series",
"type": "series"
}
]
}
}
}
Error Responses
Invalid API Token (401 Unauthorized)
{
"success": false,
"message": "Invalid API token."
}
Invalid Template ID (401 Unauthorized)
{
"success": false,
"message": "Invalid Template ID."
}
cURL Example
curl -X GET "https://yourapi.com/auto/get-bouquets?api_token=abc123xyz789&template_id=1"
3. Create User
Route: GET /auto/create ⚠️ Should typically be POST
Request (Query Parameters)
GET /auto/create?api_token={token}&template={id}&device_type={type}&period={days}&...
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| api_token | string | Yes | Manager’s API authentication token | abc123xyz789 |
| template | integer | Yes | Template ID to assign to user | 1 |
| device_type | string | Yes | Type of device (mag, m3u, etc.) | mag |
| period | integer | Yes | Subscription period in days | 30 |
| (additional) | varies | * | Additional parameters from StoreUserRequest | – |
Note: The StoreUserRequest validation rules define additional required fields that aren’t shown in the controller. These likely include username, password, and other user details.
Response
Success Response (200 OK)
The response depends on the execNewUser method implementation in UserTrait. Likely returns:
{
"success": true,
"message": "User created successfully",
"data": {
"user_id": 12345,
"username": "user123",
"password": "pass456",
"expires_at": "2025-09-13 12:00:00",
"device_type": "m3u",
"template_id": 1
}
}
Error Responses
Invalid API Token (401 Unauthorized)
{
"success": false,
"message": "Invalid API token."
}
Invalid Template (403 Forbidden)
{
"success": false,
"message": "Template's not correct."
}
Insufficient Credits (200 OK) ⚠️ Note: Returns 200 status despite being an error
{
"success": false,
"message": "You don't have enough credits."
}
cURL Example
curl -X GET "https://yourapi.com/auto/create?api_token=abc123xyz789&template=1&device_type=mag&period=30&username=testuser&password=testpass"
4. Extend Subscription
Route: GET /auto/extend ⚠️ Should typically be POST
Request (Query Parameters)
GET /auto/extend?api_token={token}&user_id={id}&period={days}
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| api_token | string | Yes | Manager’s API authentication token | abc123xyz789 |
| user_id | integer | Yes | ID of the user to extend | 12345 |
| period | integer | Yes | Extension period in days | 30 |
Response
⚠️ Note: The implementation is incomplete in the provided code. The method calculates the price but doesn’t complete the extension process.
Expected Success Response (200 OK)
{
"success": true,
"message": "Subscription extended successfully",
"data": {
"user_id": 12345,
"new_expiry_date": "2025-10-13 12:00:00",
"extended_days": 30,
"credits_charged": 10
}
}
Error Responses
Invalid API Token (401 Unauthorized)
{
"success": false,
"message": "Invalid API token."
}
Invalid User ID (401 Unauthorized)
{
"success": false,
"message": "Invalid User ID."
}
cURL Example
curl -X GET "https://yourapi.com/auto/extend?api_token=abc123xyz789&user_id=12345&period=30"
Important Notes
1. HTTP Method Mismatch
The routes are configured as GET requests
2. Rate Limiting
All endpoints are throttled to 10 requests per minute per IP address.
3. Response Format
All responses follow a consistent JSON structure:
{
"success": boolean,
"message": "string",
"data": {} // Only present on success
}