HugeAPI - Code Samples
🚀 Connect
To connect an API to a project, you must have an API key to authenticate your request
Connect To PinBook Odds API
Code Samples
Obtaining and updating event odds
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: pinbook-odds.p.rapidapi.com";
$baseUrl = "https://pinbook-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": "pinbook-odds.p.rapidapi.com"
};
const baseUrl = "https://pinbook-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();