// Handball API documentation

Results and history,
one key, 62 calls.

Handball API holds finished matches from national leagues in fifteen countries and groups, international events and archive seasons going back to the 1930s: scores with half-time, venues, crowds, referees, and a line for every player with goalkeeper saves where it is published.

Results land after full time and never change shape: every id is our own and permanent, every answer is the same envelope, and v1 only ever gains fields. Build league tables, form guides, player and goalkeeper stats, match archives, or give an assistant the whole history of the sport.

62 endpoints30 MCP tools15 countries and groups1935 earliest matchUTC, JSON, one envelope
first-call.shresults only

Start herethree steps

Quick start
1Get a key

Sign up and your free key is made at once. It is kept in this browser for every docs page, so Try it works everywhere.

Get a free key
2Make the first call

Yesterday's results, in one line. Paste your key below and run it here, or copy the curl into a terminal.

3Read the answer

Every answer is data and meta. Take a match id from the list and ask for its details or its player lines.

See the answer
key

Every subject8 guides

One guide for each part of the data: what it covers, how the records link, and the jobs people do with it, each with its calls.

Matches1 endpoint

One match in full: the hall, the crowd, the referees, a 7m shootout where there was one, and whether it was indoor, beach or wheelchair handball, with how many player lines it carries.

Read the guide
Competitions and seasons18 endpoints

Every league and cup held, with its seasons, results and fixtures, tables overall and home and away, form, scorers, goalkeepers, 7m takers, discipline, season figures, records and crowds.

Read the guide
Coverage1 endpoint

What the archive holds, counted from the data on every call: matches, results and player lines by country, the first and latest dates, and the competitions never collected and why.

Read the guide

Every endpoint62, by group

OpenAPI

The green dot opens on the free key; the orange dot on the Results plan and up. Every endpoint page has Try it, its parameters, what it returns, a real example answer and its errors.

CompetitionsLeagues and cups: seasons, tables, leaders, form, figures and records.
GET /v1/competitions/{id}/tableThe table of a competition and season, computed from the results held: played, won, drawn, lost, goals and points.GET /v1/competitions/{id}/scorersThe leading scorers of a competition and season, from the player lines held, with matches, 7m goals and goals a match.GET /v1/competitionsEvery competition with results, with country, men or women, league or cup, seasons and dates held.GET /v1/competitions/{id}A competition: country, men or women, league or cup, seasons held, first and last match, and its latest season.GET /v1/competitions/{id}/seasonsEvery season held for a competition, newest first: matches, teams, dates and how many matches have player lines.GET /v1/competitions/{id}/resultsEvery result of a competition in a season, newest first.GET /v1/competitions/{id}/fixturesThe matches still to be played in a competition, soonest first.GET /v1/competitions/{id}/teamsEvery team that played in a competition and season, with matches played.GET /v1/competitions/{id}/goalkeepersThe best save rates of a competition and season, among goalkeepers who faced at least min_shots shots.GET /v1/competitions/{id}/seven-metresThe leading 7m scorers of a competition and season, with throws taken and the rate scored.GET /v1/competitions/{id}/disciplinePlayers with the most red cards, 2 minute suspensions and yellow cards in a competition and season.GET /v1/competitions/{id}/assistsThe leading assist makers of a competition and season, where the league publishes assists.GET /v1/competitions/{id}/home-awayTwo tables for a competition and season: home matches only and away matches only.GET /v1/competitions/{id}/formEvery team of a competition and season with its last five results and its current run.GET /v1/competitions/{id}/statsA competition season in figures: goals a match, home and away goals, home win, draw and away win rates, average crowd.GET /v1/competitions/{id}/recordsThe biggest win, the highest and lowest scoring match and the largest crowd of a competition season.GET /v1/competitions/{id}/attendanceAverage, highest and total home crowd per team in a competition season, where crowds are published.

Popular callswhere most people start

For assistants and agentsMCP, skill, manual

Set up MCP

Handball API is built to be used by AI as much as by code. Give an assistant the tools, teach an agent with the skill, or paste the whole API in one file.

Add Handball API to Claude, Cursor or any MCP client: 30 tools, your key, your plan.

https://handballapi.com/mcp

Every tool, its arguments, the endpoint it calls and the plan it needs.

https://handballapi.com/documentation/mcp-tools

One file that teaches an agent the key, the calls and the limits. Save it as a skill.

https://handballapi.com/skill.md

The whole API in one markdown file, sized to paste into an assistant.

https://handballapi.com/documentation/manual.md

The short index an assistant reads first to decide what to fetch.

https://handballapi.com/llms.txt

The machine-readable description, for code generators and API tools.

https://handballapi.com/openapi.json

Plans in shortrequests, calls and reach

Pricing
planpriceresults reach backrequests a minutecalls a dayendpoints
Free keyfreeyesterday and today1050the free ones
Resultsnot on sale yet400 days605,000all
Archivenot on sale yetthe whole archive12025,000all

What is newchangelog

All changes

The restkeys, errors, paging, limits, status, support

Questions people ask

Is there live or in-play data?

No, on any plan. A match appears once it is over: finished, or awarded at the table. That is the whole product: results and history you can rely on, without the cost and fragility of a live feed. See Coverage.

Why is a league I follow missing?

Some competitions have an official data partner holding their data rights, and we never collect those from any source: Handball-Bundesliga, EHF competitions, Superliga, Austrian Handball Leagues, Liga ASOBAL and Czech men's Extraliga and the Czech cups. Everything else we hold is counted live by GET /v1/meta/coverage.

What does the free key reach?

Yesterday and today's results, single matches from those days, coverage and your own usage, at 10 requests a minute and 50 calls a day. Player lines and older dates are on the Results plan and up. See Plans and limits.

Do ids ever change?

No. Every id is our own and permanent: mt_ for matches, tm_ teams, cp_ competitions, pl_ players, rf_ referees, vn_ venues. Store them; v1 only ever gains fields, nothing is renamed or removed.

What time zone are dates in?

UTC everywhere. date_utc ends in Z, and ?date= means one UTC day. Convert to local time in your own code.

Can I use it from an AI assistant?

Yes, three ways: the MCP server for tools, the agent skill to teach an agent the API, or the one-file manual to paste. See MCP server.