Skip to content

HugeAPI - Code Samples

🚀 Connect

To connect an API to a project, you must have an API key to authenticate your request

Connect To Pinnacle Odds API

Code Samples

Python

python


import requests
import json
import time

headers = {
    "x-portal-apikey": "__YOUR_KEY__",
}

base_url = "https://pinnacle-odds-api.hgapi.top"
s = requests.Session()
s.headers.update(headers)

since_items = {}
all_events = {}

while True:

    for sport_id in [1]: # endpoint /kit/v1/sports

        # is_have_odds = 0 or 1, event_type = prematch, live
        params = {
            'sport_id': sport_id,
            'is_have_odds': True,
            'since': since_items.get(sport_id)
        }
        print('[REQUEST] %s' % params)

        response = s.get(base_url + '/kit/v1/markets', params=params)
        if response.status_code != 200:
            raise Exception(response.status_code, response.text)

        result = json.loads(response.text)
        since_items[sport_id] = result['last']

        for event in result['events']:
            all_events[str(event['event_id'])] = event

            try:
                print('   %s: %s%s %s' % (event['league_name'], event['home'], event['away'], event['periods']['num_0']['money_line']))
            except KeyError:
                pass

        print('Sport: %s' % result['sport_name'])
        print('Number of changes: %s' % len(result['events']))
        print(' ')

        time.sleep(3)

PHP

php

<?php

    $headers = [];
    $headers[] =  "x-rapidapi-key: __YOUR_KEY__";
    $headers[] =  "x-rapidapi-host: pinnacle-odds.p.rapidapi.com";

    $baseUrl = "https://pinnacle-odds.p.rapidapi.com";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_ENCODING, "");

    $sinceItems = [];
    $allEvents = [];

    while (true) {
        foreach ([1] as $sportId) { // endpoint /kit/v1/sports

            // is_have_odds = 0 or 1, event_type = prematch, live
            $params = [];
            $params['sport_id'] = $sportId;
            $params['is_have_odds'] = true;
            $params['since'] = $sinceItems[$sportId] ?? null;

            $queryString = http_build_query($params);
            echo '[REQUEST] ' . $queryString . PHP_EOL;

            curl_setopt($ch, CURLOPT_URL, $baseUrl . '/kit/v1/markets?' . $queryString);

            $response = curl_exec($ch);
            curl_close($ch);
            $result = json_decode($response, true);

            $sinceItems[$sportId] = $result['last'];

            foreach ($result['events'] as $event) {
                $allEvents[(string)$event['event_id']] = $event;

                if (isset($event['periods']['num_0']['money_line'])) {
                    echo '   ' . $event['league_name'] . ': ' . $event['home'] . ' — ' . $event['away'] . ' ' . json_encode($event['periods']['num_0']['money_line']) . PHP_EOL;
                }
            }

            echo 'Sport: ' . $result['sport_name'] . PHP_EOL;
            echo 'Number of changes: ' . count($result['events']) . PHP_EOL;
            echo ' ';

            sleep(3);
        }
    }

    curl_close($ch);

JavaScript

javascript

const axios = require('axios');

const headers = {
    "x-rapidapi-key": "__YOUR_KEY__",
    "x-rapidapi-host": "pinnacle-odds.p.rapidapi.com"
};

const baseUrl = "https://pinnacle-odds.p.rapidapi.com";
const axiosInstance = axios.create({ headers });

let sinceItems = {};
let allEvents = {};

const fetchData = async () => {
    while (true) {
        for (const sportId of [1]) {
            const params = {
                sport_id: sportId,
                is_have_odds: true,
                since: sinceItems[sportId]
            };
            console.log('[REQUEST]', params);

            try {
                const response = await axiosInstance.get(`${baseUrl}/kit/v1/markets`, { params });
                if (response.status !== 200) {
                    throw new Error(`${response.status}: ${response.statusText}`);
                }

                const result = response.data;
                sinceItems[sportId] = result.last;

                for (const event of result.events) {
                    allEvents[String(event.event_id)] = event;

                    try {
                        console.log(event.league_name, event.home, event.away, event.periods.num_0.money_line);
                    } catch (error) {
                        // Ignore if 'money_line' does not exist
                    }
                }

                console.log('Sport:', result.sport_name);
                console.log('Number of changes:', result.events.length);
                console.log(' ');

                await new Promise(resolve => setTimeout(resolve, 3000));
            } catch (error) {
                console.error(error);
                await new Promise(resolve => setTimeout(resolve, 3000));
            }
        }
}
};

fetchData();

We’re dedicated to providing the best API products