Getting started

Quickstart

Make a real request in under a minute with the public demo key, then switch to your own key. Using a coding agent? Paste Add Cito sports data to my app: citoapi.com/SKILL.md and it does these steps for you.

Get a free keyPlayground

1. Call the API with the demo key

No signup needed. This asks for the next CS2 match and works right now.

Bash
curl "https://api.citoapi.com/api/v1/cs2/matches/upcoming?limit=1" \
  -H "x-api-key: pk_demo_cito_live_a06c129e0a9ce1c39c3035bd187541c4"

You get back:

JSON
{
  "success": true,
  "data": [
    {
      "id": "cs2-match-2399865",
      "eventName": "CCT 2026 South America Series 7",
      "startsAt": "2026-10-21T22:10:00.000Z",
      "bestOf": 3,
      "status": "upcoming",
      "team1Name": "Zetta",
      "team2Name": "LOS NINOS"
    }
  ],
  "meta": { "...": "pagination and request details" }
}

The demo key is read-only and allows 50 requests a day per IP across every game's GET endpoints. Live streams, WebSockets and webhooks need your own key.

2. Get your own key

  1. 1

    Sign up free

    Create an account: 500 requests a month, no card.

  2. 2

    Copy your key

    Open API keys in the dashboard. Keys start with cito_ and work the moment they're created.

  3. 3

    Store it as an environment variable

    Env
    # .env (keep it out of git)
    CITO_API_KEY=cito_your_key_here

3. Call it from your server

Send x-api-key from a backend, bot or script. Never ship the key to a browser or mobile app.

Code
// app/api/upcoming/route.ts
export async function GET() {
  const res = await fetch("https://api.citoapi.com/api/v1/cs2/matches/upcoming?limit=5", {
    headers: { "x-api-key": process.env.CITO_API_KEY! },
    next: { revalidate: 60 },
  });
  return Response.json(await res.json());
}

Good to know

Response shape
Every response is { success, data, meta }. Errors return success: false with an error.code such as GAME_NOT_INCLUDED or RATE_LIMIT_EXCEEDED.
IDs
Take ids and slugs from list or search results (cs2-match-2399865, ufc-333). Never build them by hand.
Live delay
Live endpoints run about 60 seconds behind on Free and entry plans and in real time on Pro and above. The X-Cito-Data-Delay-Seconds header tells you which you got.
Caching
Schedules, results and profiles change slowly. Cache them for a minute or more and save your allowance for live data.

Next steps