canonical: https://jentic.com/apis/whapi.com/sportsdata-api

# Whapi SportsData API

The William Hill SportsData REST API is a collection of GET methods to provide William Hill product data such as sport, competition, event, market and selection data (including prices). The API exposes 15 endpoints.

## For AI agents

Programmatically retrieves a list of competitions for a given class id., retrieves a list of events for a given class id.. Covers 15 operations.

## Scope

Does not handle payments, communications, or crm - use for e-commerce only.

## Capabilities

- Retrieves a list of competitions for a given class id.
- Manage e commerce data programmatically
- Integrate SportsData API into automated workflows
- Query and filter SportsData API records by parameters
- Monitor SportsData API operational status and events

## Use cases

### E-Commerce Operations

Use the SportsData API to perform e commerce operations programmatically. The API provides 15 endpoints covering core functionality including retrieves a list of competitions for a given class id., retrieves a list of events for a given class id., retrieves a specific competition.

Example prompt: Call GET /classes/{classId}/competitions/ to retrieves a list of competitions for a given class id.

### Automated Classes Management

Automate classes operations by combining multiple SportsData API endpoints. Agents can retrieves a list of events for a given class id. and then retrieves a specific competition in a single workflow.

Example prompt: Call GET /classes/{classId}/events/ to retrieves a list of events for a given class id., then verify the result

### AI Agent Integration via Jentic

AI agents discover and call SportsData API endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle none tokens manually.

Example prompt: Search Jentic for 'retrieves a list of competitions for a given class id.', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /classes/{classId}/competitions/ | Retrieves a list of competitions for a given class id. |
| GET | /classes/{classId}/events/ | Retrieves a list of events for a given class id. |
| GET | /competitions/{competitionId} | Retrieves a specific competition |
| GET | /competitions/{competitionId}/events/ | Retrieves a list of events for a given competition id. |
| GET | /competitions/{competitionId}/marketgroups/ | Retrieves a list of market groups for a given competition id |
| GET | /competitions/{competitionId}/marketsByGroupid | Retrieves a list of events/markets/selections where markets within said event ma |
| GET | /events/ | Retrieves a list of events for the provided IDs. |
| GET | /events/{eventId} | Retrieves a single event by ID. |

## Key resources

- **Classes** — Operations for classes
- **Competitions** — Operations for competitions
- **Events** — Operations for events
- **Sports** — Operations for sports
- **Topbets** — Operations for topbets

## Why Jentic

- **Setup:** Wiring this SportsData API by hand means pointing requests at its sandbox.whapi.com host, wiring each class, competition, and event read, and handling retries yourself. Through Jentic you install once, import the SportsData API from the API Directory, and your agent calls it.
- **Permission scoping:** This SportsData API puts the competition id in the URL path (/competitions/{competitionId}/...), so a rule can pin your agent to one competition: it can read that competition's events and market groups and nothing else. You choose the operations it may call, so browsing every event is not included unless you add it.
- **Credential handling:** This SportsData API declares no authentication in its spec, so there is no credential to store; if your instance later adds one, Jentic One stores it once, encrypted, and injects it at execution time so it never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list competitions for a class' or 'read a competition's events', and Jentic returns the matching SportsData API operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Shopify** — Alternative e commerce API
- **Stripe** — Alternative e commerce API

## FAQ

### What authentication does the SportsData API use?

The SportsData API uses no authentication. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I retrieves a list of competitions for a given class id. with the SportsData API?

Yes. Use the GET /classes/{classId}/competitions/ endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the SportsData API?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I retrieves a list of competitions for a given class id. through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'retrieves a list of competitions for a given class id.'. Jentic returns the matching SportsData API operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the SportsData API have?

The SportsData API exposes 15 endpoints covering classes, competitions, events operations.

### Can I limit what my agent is allowed to do with the SportsData API?

Yes. Jentic One is self-hosted, so your own rules decide which SportsData API operations the agent may call. Because the competition id sits in the URL path, such as /competitions/{competitionId}/events/ and /competitions/{competitionId}/marketgroups/, a rule can pin the agent to a single competition and let it read only that competition's events and market groups. You also choose the exact operations it may use, so broad reads like listing every event for a class stay off unless you add them.
