Skip to content
datasportsAPI

About DataSportsAPI

The data under the scoreboard.

DataSportsAPI is a sports data API built for teams that ship products: live scores, fixtures, lineups, statistics, standings, teams and players for 24 sports, delivered as JSON over REST, a WebSocket stream and webhooks.

A scoreboard is the easy part to look at. We spend our days on what sits underneath it: names that keep their meaning, ids that stay put, and a changelog that speaks before the API does.

How we play

Five calls we made early, and still stand by.

Each marker on the board is one decision about how the API behaves. Together they are why an integration written this season should still run the next.

12345
the finish: an integration that lasts
  1. One shape, whatever the sport

    A tennis match and a football match arrive as the same Fixture object, with the same field names and the same status values. Cycling and Motorsport share one Race shape of their own. Code you write for your first league keeps working when you add the next sport.

    GET/v2/livescores?sport=football

    GET/v2/livescores?sport=tennis

    → the same Fixture object, field for field

  2. Ids that never change hands

    Every team, player, league, venue and match carries an id that we issue, not one borrowed from an upstream feed. It stays attached to the same thing season after season, so you can store it, index on it and join your own tables with it.

    team.idplayer.idleague.idvenue.idmatch.id→ issued once, kept for good
  3. The changelog speaks first

    Field names, units and enum values all have written definitions. A change is described, dated and tied to a contract version before any response carries it. New fields and endpoints arrive alongside the old ones, and anything on its way out is flagged with the date it stops working and what replaces it.

  4. One call, one count

    A bill should be arithmetic you can do in your head. There are no credits, no endpoint weights and no multipliers, and a call we refuse before doing any work, such as a bad key or an endpoint outside your plan, costs nothing.

    • A full lineupcounts as one call
    • A live scorecounts as one call
    • A league tablecounts as one call
  5. Docs that people and their tools can read

    Official SDKs for TypeScript, Python and Go and the dsa command line all read the same key from DATASPORTSAPI_API_KEY. The documentation is written to be machine-readable as well as human-readable: plain structure, every parameter and every response field spelled out, so the AI assistant in your editor works from the same pages you do.

    $ npm install datasportsapi

    $ pip install datasportsapi

    $ go get github.com/datasportsapi/datasportsapi-go

    $ go install github.com/datasportsapi/datasportsapi-go/cmd/dsa@latest

Rubbed out

What we left off the board, on purpose.

crossed out, and staying that way

  • We avoid: Sports locked behind a tier

    All 24 sports are open on every plan, Free included. Plans differ in volume, history depth, premium analytics and how the data reaches you.

  • We avoid: Prices mixed into match data

    Betting odds live on their own endpoints, such as /v2/fixtures/{id}/odds, on Pro and Business. A fixture, a list or a live-score channel never carries a price unless you ask for odds.

  • We avoid: Secret keys in socket URLs

    The stream opens with a single-use ticket from POST /v2/stream/ticket, so your API key never sits in a WebSocket URL or the logs that record it.

  • We avoid: Renames without warning

    A field keeps its name, type and meaning. If something has to go, it is marked deprecated with a removal date and a replacement, and it keeps working until that date.

The company

On the record.

DataSportsAPI is built and run by Noventra Software Ltd, a private limited company registered in England and Wales. These are its registered details.

Legal name
Noventra Software Ltd
Company number
17373060
Company type
Private limited company
Registered in
England and Wales
Registered office
Suite 11083, 5 Brayford Square, London, E1 0SG, United Kingdom

Reach the team

contact@noventra.devTelegram @atlaskose

We usually answer within one business day.

Contact form

Read the contract, then hold us to it.

1,000 free calls a day while the beta runs. No card needed.