Getting started

Before your first request, you will need an API key. Send it in the x-rapidapi-key header with every request.

Your first request

Handball data comes with two subscriptions. A Handball API subscription covers handball alone. An All Sports API subscription covers handball and all other sports. Both are available on Highlightly and on RapidAPI, as the Handball API and the All Sports API.

Once you have a key, fetch the countries the API supports. The request below uses the Handball API base URL on Highlightly.

curl --request GET \
  --url 'https://handball.highlightly.net/countries?name=Germany' \
  --header 'x-rapidapi-key: YOUR_API_KEY'
const params = new URLSearchParams({
  name: 'Germany'
})
const response = await fetch(`https://handball.highlightly.net/countries?${params}`, {
  headers: {
    'x-rapidapi-key': process.env.HIGHLIGHTLY_API_KEY
  }
})

if (!response.ok) {
  throw new Error(`Highlightly responded ${response.status}`)
}

const data = await response.json()
import os
import requests

response = requests.get(
    'https://handball.highlightly.net/countries',
    params={
        'name': 'Germany',
    },
    headers={
        'x-rapidapi-key': os.environ['HIGHLIGHTLY_API_KEY'],
    },
    timeout=10,
)

response.raise_for_status()
data = response.json()

With an All Sports API subscription, send the same request to https://sports.highlightly.net/handball/countries. On Highlightly your API key stays the same and only the base URL changes. Through RapidAPI, use the key, base URL and x-rapidapi-host value for your All Sports API subscription, listed in Authentication.

If the request returns data, you are set up correctly. A 403 means the x-rapidapi-key header is missing. A 401 means the key was not accepted, so check it against the key in your account. On RapidAPI, use the API key issued for the Handball API.

Finding your way around

Page Covers
Base URLs The four base URLs, and what changes with an All Sports API subscription.
Authentication Which headers to send, direct versus RapidAPI, keeping your key private.
Pagination and limits Paging with limit and offset, rate limit headers, and how your plan affects results.
Errors Error bodies and status codes, what a missing filter returns, and running out of quota.

Under Endpoints each resource lists its own operations. Every endpoint page carries its parameters, a request in three languages, and the full response shape with nested objects expanded in place.

Working from a league

Matches, highlights, odds and standings filter by league. Countries gives you a countryCode, leagues turns that into a leagueId and the list of seasons available for it.

Keep both values. leagueId filters matches, highlights and odds, and standings requires the season alongside it.

OpenAPI specification

Import the OpenAPI 3.0 document into Postman or Insomnia, or generate a client from it.

Download docs.json