Hades Logo

HADES 365

Reference Guide

Welcome to the Hades Data API. This guide is for:

All endpoints use JSON for requests and responses. A session must be started before most actions.


Authentication & Session Tokens

All requests require a valid sessionId (returned from /session/start).

Session Lifecycle:


Error Handling & Debugging

All error responses include a JSON body with details. Common HTTP status codes:

Debugging Tips:


Getting Started

  1. Start a session (POST /session/start).
  2. (Optional) Log in (POST /session/login) for account/betting access.
  3. Use your sessionId for all subsequent requests.
  4. Extract data, place bets, or retrieve account info as needed.

Best Practice:

Use a unique user-agent and proxy for each session to avoid detection and rate-limiting. Simulate a real device/browser if possible.


Session Management

POST /session/start

Purpose: Start a new session. This is required before any data extraction or account action.

Parameters:

Example Request:

{
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
      "bootstrap": true,
      "proxyUrl": "http://user:pass@123.45.67.89:8080"
    }

Example Response:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
      "sst": "abc123xyz",
      "proxyUrl": "http://user:pass@123.45.67.89:8080"
    }

Usage Scenario:
Start a session before any other API call. Save the sessionId for all future requests.


GET /session/info?sessionId=...

Purpose: Retrieve metadata about a session, including user-agent, proxy, and status.

Example Response:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
      "proxyUrl": "http://user:pass@123.45.67.89:8080",
      "active": true,
      "loggedIn": false,
      "createdAt": "2025-11-06T12:34:56Z"
    }

GET /session/status?sessionId=...

Purpose: Check if the session is still valid and logged in.

Example Response:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "active": true,
      "loggedIn": true,
      "expiresIn": 540
    }

Usage Scenario:
Call this endpoint before placing a bet or extracting data to ensure your session is still alive.


POST /session/keepalive

Purpose: Prevent session timeout due to inactivity. Call every 10 minutes.

Example Request:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456"
    }

Example Response:

{
      "ok": true,
      "alive": true
    }

Tip: Automate this call in your bot or script to avoid forced logouts.


Authentication & Account Actions

POST /session/login

Purpose: Log in to Bet365 using your credentials on an existing session. Required for account actions and bet placement.

Parameters:

Example Request:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "username": "myuser123",
      "password": "mypassword!"
    }

Example Response (Success):

{
      "ok": true,
      "accountInfo": {
        "username": "myuser123",
        "country": "UK",
        "currency": "GBP",
        "balance": 120.50
      }
    }

Example Response (Failure):

{
      "ok": false,
      "error": "Invalid credentials or account restricted."
    }

Usage Scenario:
Call this after starting a session. If you get an error, check your credentials, proxy, and user-agent.


GET /account/info?sessionId=...

Purpose: Retrieve account balance, bet history, and other account details. (Requires login)

Example Response:

{
      "balance": 120.50,
      "currency": "GBP",
      "bets": [
        {
          "betId": "B1234567890",
          "stake": 10.00,
          "returns": 18.50,
          "status": "settled",
          "placedAt": "2025-11-06T13:00:00Z"
        },
        {
          "betId": "B1234567891",
          "stake": 5.00,
          "returns": 0.00,
          "status": "lost",
          "placedAt": "2025-11-05T20:00:00Z"
        }
      ]
    }

Usage Scenario:
Check your account balance before placing a bet, or retrieve your bet history for analysis.


Market Data Extraction

POST /matchmarkets/markets

Purpose: Retrieve structured market data (MA/PA/MG records) for a given event or fixture. Useful for odds, lines, and market availability.

Parameters:

Example Request:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "pd": "#AC#B1#C1#D1002#G938#J20#Q1#F^3#"
    }

Example Response:

{
      "ma": [
        {"id": 1, "name": "Match Winner", "selections": [ ... ]},
        {"id": 2, "name": "Total Goals", "selections": [ ... ]}
      ],
      "pa": [ ... ],
      "mg": [ ... ]
    }

Usage Scenario:
Extract all available markets and odds for a specific match or event.


POST /props

Purpose: Retrieve props data for a given event or fixture. Props include player, team, and special markets.

Parameters:

Example Request:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "pd": "#AC#B1#C1#D1002#G938#J20#Q1#F^3#"
    }

Example Response:

{
      "parsed": [
        {"type": "Player Points", "options": [ ... ]},
        {"type": "Team Specials", "options": [ ... ]}
      ]
    }

Usage Scenario:
Extract player and team prop markets for advanced analytics or betting.


GET /splashcontent/competitions_from_session?sessionId=...&pd=...

Purpose: Fetch competitions splash for a session and PD. Returns parsed MG records for available competitions.

Example Response:

{
      "competitions": [
        {"id": 1001, "name": "Premier League", "events": [ ... ]},
        {"id": 1002, "name": "La Liga", "events": [ ... ]}
      ]
    }

Usage Scenario:
List all competitions and events available for a given session and event context.


Racing Data

GET /racing/racecoupon

Purpose: Retrieve race coupon data for one or more events. Useful for horse and greyhound racing automation.

Parameters:

Example Request (query params):

/racing/racecoupon?sessionId=b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456&lid=1&zid=2&cid=3&cgid=4&ctid=5&pd=#AC#B1#C1#D1002#G938#J20#Q1#F^3#

Example Response:

{
      "parsedSummary": {
        "raceId": "R12345",
        "runners": [ ... ],
        "startTime": "2025-11-06T15:00:00Z"
      },
      "hierarchy": {
        "track": "Ascot",
        "country": "UK"
      }
    }

Usage Scenario:
Extract all runners and race details for a specific event or set of events.


Placing Bets

POST /bet/place

Purpose: Place a bet using your session. (Requires login)

Parameters:

Example Request (single bet):

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "stake": 10.00,
      "selectionId": "S123456",
      "marketId": "M98765"
    }

Example Request (multiple bet):

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "stake": 5.00,
      "selections": [
        {"selectionId": "S123456", "marketId": "M98765"},
        {"selectionId": "S654321", "marketId": "M12345"}
      ],
      "type": "multiples"
    }

Example Response (success):

{
      "ok": true,
      "betId": "B1234567890",
      "returns": 18.50
    }

Example Response (failure):

{
      "ok": false,
      "error": "Insufficient funds.",
      "safe_retry": false
    }

Usage Scenarios:
- Place a single or multiple bet. For multiples, provide all selections in the selections array. - Always check for safe_retry before retrying a failed bet to avoid duplicates. - If you receive a geolocation or device error, use the relevant endpoints to verify your session.


Generic Proxy & Advanced Usage

POST /request

Purpose: Make a custom upstream request using your session. Useful for advanced scraping, custom endpoints, or unsupported actions.

Parameters:

Example Request:

{
      "sessionId": "b365-2e1f8c7a-1234-4bcd-9e8f-abcdef123456",
      "host": "www.bet365.com",
      "path": "/sports",
      "params": {"foo": "bar"},
      "method": "GET"
    }

Example Response:

{
      "status": 200,
      "body": "...raw response from upstream..."
    }

Usage Scenario:
Use this endpoint for unsupported or experimental actions, or to fetch raw data from Bet365. Always monitor for errors and rate limits.


Automation, Anti-Bot, and Troubleshooting

Tips for Automation

Common Issues & Solutions

Security & Best Practices


More Endpoints & Advanced Features

Other endpoints are available for:

If you need something not listed, just ask or consult the full API documentation.