Measured, sourced, recountable
Every claim we make about the service, with the method behind it and where the figure comes from. Nothing on this page is a target or an estimate; where something is not measured, it says so. Machine-readable twin: /trust/evidence.json.
Availability
external monitor90 days 99.99% · 1 incident in 90 days · monitored since 2026-08-24
Independent external monitor (UptimeRobot) probing the API over the public internet every 5 minutes; ratios, incidents and response times come from the monitor, not from our servers.
Status page, 90-day history and incidents →Data freshness
every minutep95 4s · 4s excluding 0 rows the source abandoned · snapshot 11 Oct 2026 12:07 UTC
Results settled in the last 24 h: 1166 / 1180 started (98.81%).
Collector runs every minute against the database /v1 serves from: per in-play match, seconds since its latest live-statistics write, reported as a distribution; rows the feed stopped following (kicked off 150+ min ago, no final whistle) are separated out. Results: settled / started over a 24-hour window.
Live measurements →Event capture delay
probe, twice a weekThe figure appears after the first scheduled probe; it is never estimated.
A probe polls GET /v1/fixtures?status=live&include=events through the same controller a customer key hits, every 15 s for 55 min, twice a week. An event is new the first time its identity (fixture, type, side, running count) appears; its delay is the match clock at that poll minus the event minute, in match minutes. Retractions (an event withdrawn while the match is in play) and minute revisions are counted. No independent clock is claimed: this is capture delay against the feed's own event minute.
How it is measured →Data coverage
recounted nightlyOf 138,527 finished matches in 12 months: corners 99.6% · odds 99.4% · events 99.7% · live stats 99.8% · corner line 52.0% · counted 11 Oct 2026 05:32 UTC
Per competition and season, counted nightly from the tables /v1 reads: finished matches (kickoff more than 4 h past) and, of those, how many carry corner counts (0-0 treated as not tracked), a corner line, a pre-match Asian handicap line, an event timeline, an in-play statistics row and card counts. Esoccer excluded; merged league ids folded into their survivor.
Known limitations
- Corner lines exist for roughly half of finished matches: bookmakers price corners for far fewer competitions than goals. The per-league column shows which.
- Matches the feed never finalises (abandoned, interrupted, lost to a source outage) are reported as status "unknown" after 4 hours, never auto-finished. Postponed matches are rescheduled under a new fixture id.
- Lower-tier live feeds retract goals after review and revise event minutes; both are counted by the probe rather than hidden. Settle on status "finished", key events by identity, not minute.
- No player-level data: no lineups, squads, player statistics, scorer names, injuries, transfers or venues.
- The event-delay probe measures capture delay against the feed's own event minute; it is not an independent end-to-end clock, and it runs from one region.
- The external monitor started on 2026-08-24; uptime history before that date does not exist.
For agents and scripts
Every figure above, with its method and source, in one JSON document regenerated on each request from the stored measurements: /trust/evidence.json. The underlying documents:
- status https://5dollarfootballapi.com/status.json
- data_quality https://5dollarfootballapi.com/docs/data-quality.json
- openapi https://5dollarfootballapi.com/openapi.json
- apis_json https://5dollarfootballapi.com/apis.json
- api_catalog https://5dollarfootballapi.com/.well-known/api-catalog
- llms_txt https://5dollarfootballapi.com/llms.txt
- verify_script https://github.com/5dollarfootball-api/football-api-verify
Check it against your own league
A free key, no card: run the verify script or query any competition yourself.