Back to Dashboard
API Endpoints
Export Data
Live Logs
System Stats
Distribution
Configuration

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

NameURLStatusSuccessErrorsLast SentActions
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 AddressConnectedDuration
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

Enabled Bookmakers

ScraperStatusMatchesTotalOKErrIntNext
Loading...