Skip to content

Start building

Your first lottery data request.

A few clear steps from your API key to a structured response.

Lottery data as a versioned REST API: the catalogue of games, their schedules, every result we have recorded as far back as your plan reaches, published prize breakdowns, fixed-odds payout tables and historical number statistics — delivered by request, by webhook, or over a live stream.

Base URLhttps://api.lottevo.com
Versionevery route is under /v1; there is no /api segment
FormatJSON in, JSON out; payloads are wrapped in data
Credentialan API key, issued from your account

1. Create an API key

Create a key from your workspace with the scopes and lotteries your application needs. Keep it on your server and out of source control — the full key is shown once.

2. Make a request

Code example
curl https://api.lottevo.com/v1/lotteries/EU-002/draws \
  -H 'Authorization: Bearer lv_a1b2c3d4e5f6_…' \
  -H 'Accept: application/json'
Code example
const response = await fetch('https://api.lottevo.com/v1/lotteries/EU-002/draws', {
  headers: { 'X-Api-Key': process.env.LOTTEVO_API_KEY, Accept: 'application/json' },
})

const { data, meta, links } = await response.json()

GET /v1/account is the smoke test. It needs no scope and answers with your key's plan, scopes, catalogue entitlement and what your account has spent today.

3. Read the response

Results are wrapped in data. Collections add links and meta for cursor pagination. This shortened draw shows the fields an interface usually needs:

Code example
{
  "data": [{
    "lottery_code": "EU-002",
    "numbers": [4, 7, 12, 31, 44],
    "bonus_numbers": [8, 11],
    "currency": "EUR",
    "drawn_at": "2026-09-29T19:45:00+00:00",
    "prizes_status": "published"
  }]
}

What bounds a key

Four things, and it is worth knowing which one refused you:

  • Scopes — what the key may read or manage. A missing one is 403 insufficient_scope.
  • Request ceilings — per minute on every plan, per UTC day on metered ones. 429.
  • Catalogue entitlement — the games the key covers. A game outside it is 403 lottery_not_entitled, not a 404: the game plainly exists.
  • History depth — how far back your plan reaches; history_from in GET /v1/account says where it starts. Listings simply stop there, and asking for an older result by id is 403 history_not_included.

Where to go next