Pourquoi choisir un IPTV Plan :

Powered and property

@Jul

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}
ParameterTypeRequiredDescriptionExample
api_tokenstringYesManager’s API authentication tokenabc123xyz789

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}
ParameterTypeRequiredDescriptionExample
api_tokenstringYesManager’s API authentication tokenabc123xyz789
template_idintegerYesID of the template to get bouquets for1

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}&...
ParameterTypeRequiredDescriptionExample
api_tokenstringYesManager’s API authentication tokenabc123xyz789
templateintegerYesTemplate ID to assign to user1
device_typestringYesType of device (mag, m3u, etc.)mag
periodintegerYesSubscription period in days30
(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}
ParameterTypeRequiredDescriptionExample
api_tokenstringYesManager’s API authentication tokenabc123xyz789
user_idintegerYesID of the user to extend12345
periodintegerYesExtension period in days30

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
}