Cable TV Plans

LIVE
Endpoint

Send a GET request with a query parameter to filter plans by provider.

Production URL
https://pairgate.com/api/v1/cable-plans
Method GET
Authentication

This request requires a valid Bearer token.

Header Value Description
Authorization
Bearer {token}
Your unique API authorization token
Query Parameters

This parameter is required. Include it in the URL query string.

Parameter Type Required Description
provider_id string Yes Provider slug (e.g. dstv, gotv, startimes)
Code Examples

Choose your preferred language below. Example shows fetching DSTV plans. Replace the parameter and YOUR_API_KEY with your actual values.

PHP (Laravel)
// Get Cable TV Plans
$response = Http::withHeaders([
    'Authorization' => 'Bearer YOUR_API_KEY',
    'Cache-Control' => 'no-cache',
])->get('https://pairgate.com/api/v1/cable-plans?provider_id=dstv');

$result = $response->json();

dd($result);
cURL
curl -X GET "https://pairgate.com/api/v1/cable-plans?provider_id=dstv" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Cache-Control: no-cache"
Node.js
const axios = require('axios');

const getCablePlans = async (providerId) => {
    try {
        const response = await axios.get(
            'https://pairgate.com/api/v1/cable-plans',
            {
                params: {
                    provider_id: providerId
                },
                headers: {
                    'Authorization': 'Bearer YOUR_API_KEY',
                    'Cache-Control': 'no-cache'
                }
            }
        );
        
        console.log(response.data);
    } catch (error) {
        console.error(error.response?.data || error.message);
    }
};

// Example: get DSTV plans
getCablePlans('dstv');
Python
import requests

url = "https://pairgate.com/api/v1/cable-plans"

headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Cache-Control": "no-cache"
}

params = {
    "provider_id": "dstv"
}

try:
    response = requests.get(url, headers=headers, params=params)
    response.raise_for_status()
    data = response.json()
    print(data)
except requests.exceptions.RequestException as e:
    print(f"Error: {e}")
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

HttpClient client = HttpClient.newHttpClient();

String url = "https://pairgate.com/api/v1/cable-plans"
    + "?provider_id=" + URLEncoder.encode("dstv", StandardCharsets.UTF_8);

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(url))
    .header("Authorization", "Bearer YOUR_API_KEY")
    .header("Cache-Control", "no-cache")
    .GET()
    .build();

try {
    HttpResponse response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
} catch (Exception e) {
    System.err.println("Error: " + e.getMessage());
}
Test Endpoint

Use the test endpoint to try without spending real money.

https://pairgate.com/api/v1/test/cable-plans?provider_id=dstv
Response Format

A successful request returns a 200 status with plans grouped by provider name.

Success Response (200)
{
  "code": 200,
  "status": "success",
  "data": {
    "DSTV": [
      {
        "plan_id": "68",
        "name": "Dstv Padi",
        "price": 4400.00
      },
      {
        "plan_id": "67",
        "name": "Dstv Yanga",
        "price": 6000.00
      },
      {
        "plan_id": "66",
        "name": "Dstv Confam",
        "price": 11000.00
      }
    ]
  }
}
Response Fields
Field Type Description
plan_id string Plan ID for use in purchase requests
name string Package name
price float Package cost in Naira (NGN)
The response is grouped by provider name for easy access.
Error Responses

The following errors may occur when calling this endpoint.

Status Code Description
422 Invalid provider Provider not found or inactive
401 Missing API key No Bearer token provided
401 Invalid API key Token does not match any active key
403 Suspended API key or account has been suspended
429 Rate limited Too many requests