Skip to content

API documentation

Read and write your bets from your own scripts, spreadsheets and agents.

Authentication

Every request needs a personal API token, sent as a Bearer header. Create a free account, then create a token under API tokens. Base URL: https://log.bet/api/v1

Endpoints

  • GET    /bets — list all your bets
  • POST   /bets — create a bet
  • GET    /bets/{id} — fetch one bet
  • PATCH  /bets/{id} — update a bet (send only the fields to change)
  • DELETE /bets/{id} — delete a bet
  • GET    /odds/search?q= — find upcoming matches (for automatic closing odds)
  • GET    /odds/events/{eventId} — list a match's betting selections

Fetch all your bets

curl https://log.bet/api/v1/bets \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"

Register a bet

curl -X POST https://log.bet/api/v1/bets \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"event":"Arsenal vs Chelsea","bet_description":"Arsenal to win","odds":2.1,"amount":10,"match_date":"2026-06-20","status":"pending","sport":"Football","league":"EPL"}'

Required: event, bet_description, odds, amount, match_date, status. Optional: bet_type (back or lay, default back), sport, league, tipster, bookmaker, closing_odds, each_way (true/false) with place_terms (4/5/6/8/10, i.e. 1/N of the odds, default 5). Statuses: pending, won, placed, half_won, lost, half_lost, push, void. An each-way bet is always a back bet; amount is the unit stake, staked on both the win and the place (total outlay 2×amount). It settles as won (both parts), placed (place part only) or lost (−2×amount). For automatic closing odds, see below.

Settle a bet (partial update)

curl -X PATCH https://log.bet/api/v1/bets/123 \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"status":"won"}'

Send only the fields you want to change. DELETE the same URL removes the bet.

Automatic closing odds (CLV)

Log a bet against a real match and its closing line is fetched for you after kickoff, so you can track closing line value without entering it by hand. Three steps:

# 1) find the match
curl "https://log.bet/api/v1/odds/search?q=Arsenal" \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json"

# 2) list its selections (use event_id from step 1)
curl https://log.bet/api/v1/odds/events/EVENT_ID \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json"

# 3) log the bet with the picked selection
curl -X POST https://log.bet/api/v1/bets \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json" -H "Content-Type: application/json" \
  -d '{"event":"Arsenal vs Chelsea","bet_description":"Over 2.5","odds":1.95,"amount":10,"match_date":"2026-06-20","status":"pending","external_event_id":"EVENT_ID","market_key":"totals","outcome_name":"Over","outcome_point":2.5}'

Pass external_event_id plus the selection's market_key, outcome_name and (if it has one) outcome_point from step 2 — the server fills in the rest. After the match settles, GET /bets returns closing_odds and clv_percent.