# Oddsportal — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Track sports betting odds, matches, and results across multiple sports and leagues in real-time, while viewing team standings and match details to stay informed on upcoming games. Access comprehensive betting data and historical results from OddsPortal to compare odds and analyze sports outcomes.

**Category:** Sports | **Website:** [oddsportal.com/](https://oddsportal.com/) | **Docs:** [parse.bot/marketplace/6ba49a43-e86d-423c-ac50-915600c1a469/oddsportal-com-api](https://parse.bot/marketplace/6ba49a43-e86d-423c-ac50-915600c1a469/oddsportal-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_all_bookmakers

Get all bookmakers available on OddsPortal with comprehensive data including ratings, payout percentages (overall and per-sport), bonus offers, and features. Results are geo-dependent based on proxy IP location.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/get_all_bookmakers \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_all_sports

Get all available sports supported by OddsPortal. Returns a static list of sport names and URL slugs used to construct further queries.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/get_all_sports \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_league_matches

Get tournament metadata for a specific league including tournament ID and bookmaker bitmask. Can fetch upcoming matches or results page metadata. The tournament_id and bitmask can be used to construct archive data URLs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | Yes | Country slug (e.g., england, spain, italy). |
| `is_results` | boolean | No | When true, fetches results page instead of upcoming matches. |
| `league` | string | Yes | League slug (e.g., premier-league, laliga, serie-a). |
| `sport` | string | Yes | Sport slug (e.g., football, tennis, basketball). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/get_league_matches \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country":"<string>","is_results":"<boolean>","league":"<string>","sport":"<string>"}'
```

### get_league_standings

Get the URL for current league standings page. Returns the constructed URL that links to the standings/table view for the specified league.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | Yes | Country slug (e.g., england). |
| `league` | string | Yes | League slug (e.g., premier-league). |
| `sport` | string | Yes | Sport slug (e.g., football). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/get_league_standings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country":"<string>","league":"<string>","sport":"<string>"}'
```

### get_match_details

Get match details including structured data and raw odds data for multiple markets. The match is identified by home_team and away_team slugs (from h2h links on league results pages, format: team-name-ID) and optionally an event_id for a specific fixture. Odds data is returned in an obfuscated/compressed format.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `away_team` | string | Yes | Away team slug with ID suffix from h2h links (e.g., manchester-united-ppjDR086). Found on league results pages. |
| `event_id` | string | No | Specific event/match ID (e.g., pOnfE84l). When provided, fetches data for that specific fixture rather than the h2h summary. |
| `home_team` | string | Yes | Home team slug with ID suffix from h2h links (e.g., aston-villa-W00wmLO0). Found on league results pages. |
| `sport` | string | No | Sport slug (e.g., football). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/get_match_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"away_team":"<string>","event_id":"<string>","home_team":"<string>","sport":"<string>"}'
```

### get_sport_leagues

Get leagues for a specific sport. Returns a curated list of major leagues with country, name, and slug for constructing league-specific URLs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `sport` | string | No | Sport slug (football, tennis, basketball, hockey, baseball, american-football, handball, rugby-league). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/get_sport_leagues \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sport":"<string>"}'
```

### get_today_matches

Get the URL for today's matches page for a given sport. Returns the constructed URL that can be used to access today's live and upcoming matches.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `sport` | string | No | Sport slug (e.g., football, tennis, basketball). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-oddsportal-com-api-6ba49a43/get_today_matches \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sport":"<string>"}'
```
