API Documentation
All endpoints return JSON. Base URL: http://212.47.71.50:3302
GET
/api/matches
Get all matches with odds from all bookmakers
{
"matches": [
{
"home": "Team A",
"away": "Team B",
"league": "Premier League",
"sport": "Soccer",
"bookmaker": "betika",
"start_time": 1702483200,
"is_live": false,
"odds": {"home": 1.85, "draw": 3.40, "away": 4.20}
}
]
}
GET
/api/matches?bookmaker=betika
Filter matches by bookmaker (betika, superbet, winner)
GET
/api/matches?sport=Soccer
Filter matches by sport
GET
/api/scrapers
Get scraper status and statistics
{
"interval": 5,
"is_scraping": false,
"scrapers": [
{
"name": "Betika",
"status": "OK",
"matches": 477,
"success_count": 74,
"error_count": 0,
"interval": 5,
"timer": 3
}
]
}
GET
/api/stats
Get system statistics (CPU, RAM usage)
{"cpu": 15, "ram": 42}
Usage Examples
JavaScript/Node.js
// Fetch all matches
fetch('http://212.47.71.50:3302/api/matches')
.then(r => r.json())
.then(data => {
console.log('Total matches:', data.matches.length);
data.matches.forEach(m => {
console.log(`${m.home} vs ${m.away} - ${m.bookmaker}`);
});
});
// Fetch only Superbet odds
fetch('http://212.47.71.50:3302/api/matches?bookmaker=superbet')
.then(r => r.json())
.then(data => console.log(data));
Python
import requests
# Get all matches
response = requests.get('http://212.47.71.50:3302/api/matches')
data = response.json()
for match in data['matches']:
print(f"{match['home']} vs {match['away']}")
print(f" Odds: {match['odds']}")
print(f" Bookmaker: {match['bookmaker']}")
cURL
# Get all matches
curl -s http://212.47.71.50:3302/api/matches | jq
# Get only soccer matches
curl -s "http://212.47.71.50:3302/api/matches?sport=Soccer" | jq
# Get scraper status
curl -s http://212.47.71.50:3302/api/scrapers | jq
Export Data
0
Total Matches
0
Betika
0
Superbet
0
Winner
Download Options
Export current odds data in various formats
Live JSON Preview
Loading...
Live Logs
System Statistics
--%
CPU Usage
--MB
RAM Usage
--
Uptime
--
Requests/min
Scraper Performance
| Scraper | Status | Matches | Success | Errors | Interval | Last Duration | Next In |
|---|
Performance Chart
Data Distribution
Configure how your odds data is distributed to external clients
0
Webhooks
0
Live Clients
0
Total Sent
Webhooks (Push)
Add webhook URLs to receive automatic updates when odds change
| Name | URL | Status | Success | Errors | Last Sent | Actions |
|---|---|---|---|---|---|---|
| No webhooks configured | ||||||
Server-Sent Events (SSE) - Live Stream
Clients can connect to receive real-time updates
GET
/api/stream
Connect to receive live odds updates via Server-Sent Events
// JavaScript Example
const eventSource = new EventSource('http://212.47.71.50:3302/api/stream');
eventSource.addEventListener('matches', function(e) {
const data = JSON.parse(e.data);
console.log('Received', data.matches.length, 'matches');
});
eventSource.onerror = function() {
console.log('Connection lost, reconnecting...');
};
Connected Clients
| IP Address | Connected | Duration |
|---|---|---|
| No clients connected | ||
API Polling (Pull)
External services can poll our API at their own interval
GET
/api/matches
Full matches JSON - poll every 5-30 seconds
# Python Example - Polling
import requests
import time
while True:
response = requests.get('http://212.47.71.50:3302/api/matches')
data = response.json()
print(f"Got {len(data['matches'])} matches")
time.sleep(30) # Poll every 30 seconds
Configuration
API Access
Generate API keys for third-party access
Scraper Settings
| Scrape Interval | seconds |
| Request Timeout | seconds |
| Max Retries |