Quickstart · ~5 minutes

Your first API request in under 5 minutes

Six short steps from signup to live sports data in production — no approval queue, no waiting on sales, no credit card to start.

01 Create account
02 Get API key
03 First request
04 Handle response
05 Handle errors
06 Go live
See It Happen

Signup to live data, in one terminal

The same steps as below — typed out in real time. No dashboard tour required.

Signup
API Key
Request
Live
zsh — orbistats-quickstart
LIVE
1

Create your account

Free-tier keys are self-serve. Sign up with an email address and your sandbox API key is issued instantly from the dashboard — no credit card, no sales call, no waiting for approval.

No credit cardInstant key
2

Get your API key

Every account gets a sandbox key and a production key. The sandbox key returns realistic sample data and never counts against your rate limit or monthly quota — build and break things freely before switching to production.

Key typeDataCounts toward quota
SandboxRealistic sample dataNo
ProductionLive dataYes, per your plan
3

Make your first request

Attach your key as a Bearer token and call GET /v1/football/fixtures to pull upcoming Premier League fixtures. Every language below does the same thing.

curl "https://api.orbistats.com/v1/football/fixtures?league=premier-league" \ -H "Authorization: Bearer YOUR_API_KEY"
const res = await fetch( "https://api.orbistats.com/v1/football/fixtures?league=premier-league", { headers: { Authorization: `Bearer ${process.env.ORBISTATS_KEY}` } } ); const { data } = await res.json(); console.log(data);
import requests resp = requests.get( "https://api.orbistats.com/v1/football/fixtures", params={"league": "premier-league"}, headers={"Authorization": f"Bearer {ORBISTATS_KEY}"} ) print(resp.json()["data"])
$ch = curl_init("https://api.orbistats.com/v1/football/fixtures?league=premier-league"); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer " . $orbistatsKey]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = json_decode(curl_exec($ch), true)["data"];
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.orbistats.com/v1/football/fixtures?league=premier-league")) .header("Authorization", "Bearer " + orbistatsKey) .build(); HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.orbistats.com/v1/football/fixtures?league=premier-league"); request.Headers.Add("Authorization", $"Bearer {orbistatsKey}"); var response = await httpClient.SendAsync(request);
req, _ := http.NewRequest("GET", "https://api.orbistats.com/v1/football/fixtures?league=premier-league", nil) req.Header.Set("Authorization", "Bearer "+orbistatsKey) resp, _ := http.DefaultClient.Do(req)
require 'net/http' uri = URI("https://api.orbistats.com/v1/football/fixtures?league=premier-league") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer #{orbistats_key}" res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
4

Handle the response

Every endpoint returns the same envelope — read data for the payload and meta.pagination if you need the next page.

{ "data": [ { "fixture_id": "fx_884213", "league": "Premier League", "home_team": "Manchester City", "away_team": "Arsenal", "kickoff": "2026-08-30T15:00:00Z" } ], "meta": { "pagination": { "page": 1, "per_page": 25, "total": 10 } } }
5

Add error handling

Check the HTTP status and the errors array before trusting data. On a 429, read the Retry-After header and back off instead of retrying immediately.

if (!res.ok) { const body = await res.json(); if (res.status === 429) { const retryAfter = res.headers.get("Retry-After"); // wait retryAfter seconds, then retry } throw new Error(body.errors[0].message); }
6

Go live

Swap your sandbox key for a production key when you're ready to launch — same endpoints, same response shapes, live data. Run through this checklist first.

CheckWhy it matters
Production key setSandbox keys silently return sample data forever.
Error handling in placeProduction traffic will eventually hit rate limits and transient 5xxs.
Plan covers your volumeCheck monthly request quota against expected traffic.
Webhooks or WebSocket wired upOnly needed if you're polling live scores or odds heavily.
Next

What to build next

The same account and key from this quickstart work for every use case below.

Troubleshooting

Common first-request problems

The issues almost everyone hits on their first call, and the one-line fix for each.

401

Unauthorized

The Authorization header is missing, misspelled, or missing the word Bearer before the key. It should read exactly Authorization: Bearer YOUR_API_KEY with no extra quotes.

Empty

Fixtures list comes back empty

Fixtures default to the next 14 days. If the league is in its off-season, widen date_from/date_to or query /results for completed matches instead.

429

Too Many Requests

You've hit the free plan's 100 requests/minute limit. Read the Retry-After header and back off, or move to live scores via WebSocket instead of polling.

404

League or ID not found

Competition slugs are case-sensitive and sport-scoped — confirm the slug against /competitions rather than guessing it.

FAQ

Common questions

What people ask before and during their first integration.

Do I need a credit card to get an Orbistats API key?

No. The free plan is fully self-serve — sign up with an email address and your API key is issued instantly from the dashboard, no credit card and no approval queue.

Why is my first request returning a 401 error?

A 401 almost always means the Authorization header is missing, misspelled, or missing the word Bearer before the key. Double-check the header reads exactly Authorization: Bearer YOUR_API_KEY with no extra quotes or line breaks.

Why is my fixtures response empty?

The fixtures endpoint defaults to the next 14 days. If the league you queried is in its off-season, widen the date_from and date_to parameters or switch to the results endpoint for completed matches.

What's the difference between a sandbox key and a production key?

Sandbox keys return realistic sample data and never count against your production rate limit or monthly quota, so you can build and test freely. Production keys return live data and are billed against your plan.

See Also

Related pages

Explore more of the developer platform.

Get Started

Start free. Upgrade when you need enterprise SLAs.

Self-serve API keys for developers today — dedicated infrastructure, custom feeds and SLAs when you're ready.