Skip to content
Developer docsREST · JSON and PNG · /v1

Quickstart

Your first racecard in six steps.

Active access required

Live requests require an active subscription, confirmed trial or explicit administrator-approved access. Signing up alone does not start a trial. Use the working base URL shown below; do not assume a custom API hostname is live.
  1. 1

    Create an account

    Sign up and verify your email address.

  2. 2

    Generate an API key

    In Dashboard, API keys, create a key and copy the secret. It is shown once. Export it on your server: export RACINGAPI_KEY=...

  3. 3

    Activate your trial or subscription

    Choose a monthly plan in Billing and complete checkout with a card. Eligible new customers receive seven days free. Access starts after server confirmation, not signup alone. Your chosen plan renews automatically unless cancelled before the trial ends. Without active access, feed requests return 403.

  4. 4

    Request today's UK and Irish racecards

    Use region=uk for the combined UK and Ireland feed. The base URL for this environment is loading.

    Waiting for the platform to return the working URL before showing request examples.

    Run JavaScript on your server (Node.js 18+). Python examples require the requests package; PHP examples require the cURL extension.

  5. 5

    Read the envelope

    Successful racing JSON responses have meta and data; errors instead have error, code and requestId. This abridged example shows a no-date racecard request: no explicit date means meta.date is null. Names and IDs are illustrative, not live.

    {
      "meta": {
        "version": "v1",
        "region": "uk",
        "date": null,
        "retrievedAt": "2026-10-27T09:12:04Z",
        "cached": false,
        "demo": false,
        "page": 1,
        "limit": 50,
        "total": 1
      },
      "data": [
        {
          "id": "RACE_ID",
          "name": "Example Handicap",
          "date": "27.10.2026",
          "time": "13:30",
          "course": {
            "id": "COURSE_ID",
            "name": "Example Course"
          },
          "runners": [
            {
              "id": "HORSE_ID",
              "name": "Example Runner",
              "jockey": {
                "id": "JOCKEY_ID",
                "name": "Example Jockey"
              },
              "trainer": {
                "id": "TRAINER_ID",
                "name": "Example Trainer"
              },
              "odds": []
            }
          ],
          "finishers": [],
          "wagers": []
        }
      ]
    }

    Other race and runner fields are omitted for brevity. Use the API reference for the complete response schema; an empty daily feed returns data: [].

  6. 6

    Follow IDs to detail endpoints

    Use a race ID from the same region and date to call /v1/races/{id}, runner horse IDs for /v1/horses/{id}, or both for /v1/silks/{horseId}?raceId=.... Pass the same date or tomorrow=true you used for the racecard.

Next: browse the API reference or make real calls in the signed-in playground.