Handball API pricing

Priced by how far back you need.

Every plan calls the same endpoints and gets the same fields. Paid plans reach further back, open the player and goalkeeper lines, and call more often. Prices in US dollars, cancel any time.

Two months free
Which plan
Set your use and we point to the plan
Fits your useResults
Free key
$0forever
No card needed
  • 50 calls a day, 10 a minute
  • Yesterday and today
  • Results, fixtures and one-match details
  • Find leagues, clubs, players, referees and halls
  • MCP server for your assistant
Get a free key →
Results
$19a month
For apps and this season
  • 5,000 calls a day, 60 a minute
  • This season and last
  • Player lines, goalkeepers and discipline
  • Tables, form, runs, leaders and season figures
  • Referee records and home advantage
Archive
$49a month
For models and history
  • 25,000 calls a day, 120 a minute
  • Every season, back to 2004
  • Every endpoint and every field
  • Careers and records across every season
  • MCP server, same limits
02
How far back each plan reaches

The archive runs from the first season we hold to today. The free key sees the last two days; Results the current season and the last; Archive all of it.

2004201020152020Today
Free keyYesterday and today
ResultsThis season and last
ArchiveEvery season, back to 2004
03
Every endpoint, by plan

The same list the API reference shows. Ids are our own and stay the same across seasons; times are UTC with the league's own time zone alongside.

EndpointFree keyResultsArchive
GET /v1/results/yesterdayYesterday's results
GET /v1/results/latestLatest results
GET /v1/resultsResults on a day
GET /v1/matches/{id}One match
GET /v1/matches/{id}/playersPlayer lines of a match
GET /v1/fixturesFixtures ahead
GET /v1/competitions/{id}/tableLeague table
GET /v1/competitions/{id}/scorersTop scorers
GET /v1/teams/{id}/head-to-headHead to head
GET /v1/meta/coverageCoverage
GET /v1/meta/completenessCompleteness
GET /v1/usageYour usage
GET /v1/results/todayToday's results
GET /v1/results/rangeResults between two days
GET /v1/fixtures/todayToday's fixtures
GET /v1/fixtures/tomorrowTomorrow's fixtures
GET /v1/matchesFind matches
GET /v1/matches/{id}/officialsOfficials of a match
GET /v1/competitionsCompetitions
GET /v1/competitions/{id}One competition
GET /v1/competitions/{id}/seasonsSeasons of a competition
GET /v1/competitions/{id}/resultsResults of a competition
GET /v1/competitions/{id}/fixturesFixtures of a competition
GET /v1/competitions/{id}/teamsTeams of a competition
GET /v1/competitions/{id}/goalkeepersGoalkeepers of a season
GET /v1/competitions/{id}/seven-metres7m takers of a season
GET /v1/competitions/{id}/disciplineDiscipline of a season
GET /v1/competitions/{id}/assistsAssists of a season
GET /v1/competitions/{id}/home-awayHome and away tables
GET /v1/competitions/{id}/formForm table
GET /v1/competitions/{id}/statsSeason figures
GET /v1/competitions/{id}/recordsSeason records
GET /v1/competitions/{id}/attendanceCrowds of a season
GET /v1/teamsFind teams
GET /v1/teams/{id}One team
GET /v1/teams/{id}/resultsResults of a team
GET /v1/teams/{id}/fixturesFixtures of a team
GET /v1/teams/{id}/squadSquad of a season
GET /v1/teams/{id}/statsSeason figures of a team
GET /v1/teams/{id}/formForm of a team
GET /v1/teams/{id}/scorersScorers of a team
GET /v1/teams/{id}/seasonsSeasons of a team
GET /v1/teams/{id}/streaksRuns of a team
GET /v1/players/leadersLeaders
GET /v1/playersFind players
GET /v1/players/{id}One player
GET /v1/players/{id}/matchesMatches of a player
GET /v1/players/{id}/seasonsSeasons of a player
GET /v1/players/{id}/careerCareer of a player
GET /v1/goalkeepers/leadersGoalkeeper leaders
GET /v1/refereesFind referees
GET /v1/referees/{id}One referee
GET /v1/referees/{id}/matchesMatches of a referee
GET /v1/referees/{id}/statsRecord of a referee
GET /v1/venuesFind venues
GET /v1/venues/{id}/matchesMatches at a venue
GET /v1/countriesCountries
GET /v1/countries/{code}/competitionsCompetitions of a country
GET /v1/meta/seasonsSeasons held
GET /v1/updatesChanged since
GET /v1/stats/home-advantageHome advantage
GET /v1/stats/half-time-full-timeHalf-time and full-time
04
How limits work

Every reply tells you where you stand, so nothing comes as a surprise.

A day5,000

Calls each UTC day on Results. The allowance resets at 00:00 UTC. Past it, calls get a 429 with the code quota_exceeded until the reset.

A minute60

Requests each minute on Results. Past it, a 429 with the code rate_limited and a Retry-After header saying how many seconds to wait.

In every reply
X-RateLimit-Limit60
X-RateLimit-Remaining59
X-Quota-Remaining4,998
Retry-AfterOnly on a 429

The same headers on every call, so an app can slow itself down before it is refused.

05
Billing, plainly

Paid through Stripe. Your key changes plan the moment the payment goes through.

Charged asDEVELOPERDATA.NET
RenewsSame day each month or year
CancelAny time, runs to period end
RefundsRefund form

When you choose a plan, through a secure Stripe checkout, then on the same day each month or year. Your key moves to the new plan as soon as the payment goes through.

Yes, from your account, under Billing, at any time. The plan runs to the end of the period you paid for, then your key goes back to the free key. Nothing more is charged.

Yearly costs ten months, so two are free. Moving from monthly to yearly takes effect at your next renewal; nothing is charged on the day you switch.

Through the form on the refunds page. Every request is read and answered, on your ticket and by email.

The charge shows as DEVELOPERDATA.NET. Billing questions go to developerdata.net/support.

Yes. A tool call through the MCP server counts as one call, the same as a REST request. The usage endpoint never counts.

Prices in US dollars. Card charges appear as DEVELOPERDATA.NET.Billing questions: developerdata.net/support