---
title: "Get provider ID mappings"
method: GET
path: "/v4/mm/get_mappings"
tags: ["Mapping"]
---

# Get provider ID mappings

`GET /v4/mm/get_mappings`

## Request

- Base URL: `https://cash.api.prophetx.co/partner`
- URL: `https://cash.api.prophetx.co/partner/v4/mm/get_mappings`
- Auth: API key in header `Authorization`

Map data provider IDs to ProphetX IDs, and the reverse. For entity_type=sport_event, prophetx_id is the sport event ID. For entity_type=player, prophetx_id is the player ID returned by get_players. For entity_type=competitor, prophetx_id is the competitor ID, the competitor_id on market selections, and provider_id is the OpticOdds team ID, or the OpticOdds player ID in individual sports such as tennis. For entity_type=market, prophetx_id is the market ID within the event given by event_id, and provider_id depends on the market. A main market uses the OpticOdds market_id (for example "point_spread"). A player or team prop uses "<OpticOdds player or team ID>:<OpticOdds market_id>:<ProphetX market sub type>" (for example "<player_id>:player_points:player_total_points"), because one OpticOdds market can become more than one ProphetX market. A 3-way moneyline becomes three ProphetX markets: "<home team ID>:<market_id>", "<away team ID>:<market_id>" and "draw:<market_id>" (for example "draw:moneyline_3-way"). A tennis player to win a set market becomes one market for each player: "<OpticOdds competitor ID>:player_to_win_a_set". For entity_type=strike, prophetx_strike_id is the strike_id on market selections, market_id is its market, and provider_id is "<fixture_id>:<market provider_id>:<outcome>:<points with one decimal>". The outcome is the lowercased outcome type of the strike, for example over, under, home, away, yes or no. Strikes without points, such as moneyline and yes/no strikes, use 0.0 (for example "<fixture_id>:point_spread:home:-3.5" or "<fixture_id>:draw:moneyline_3-way:yes:0.0"). Markets and strikes are returned only for events of the given provider, and only when they have a provider key. When both provider_ids and prophetx_ids (or prophetx_strike_ids) are set, a mapping must match both lists. Results are ordered by provider_id, highest first, and paged with a cursor: pass next_cursor from the response to fetch the next page. The last page has no next_cursor.

## Query parameters

- `provider` 'opticodds', required
- `entity_type` 'sport_event' | 'player' | 'competitor' | 'market' | 'strike', required
- `event_id` integer
- `provider_ids` string
- `prophetx_ids` string
- `prophetx_strike_ids` string
- `limit` integer
- `next_cursor` string

## Response `200`

OK

- MarketMakerListProviderMappingResponseV4
  - `data` V4ListProviderMappingResponse
    - `mappings` V4ProviderMapping[]
      - `provider` string
      - `entity_type` 'sport_event' | 'player' | 'competitor' | 'market' | 'strike'
      - `provider_id` string: The data provider's own ID, in the format described for each entity_type
      - `prophetx_id` integer: Present for entity_type sport_event, player, competitor, and market. Absent for entity_type strike — use prophetx_strike_id instead.
      - `prophetx_strike_id` string: Present only for entity_type strike — the strike_id on market selections
      - `event_id` integer: Present for entity_type market and strike
      - `market_id` integer: Present for entity_type strike — the market the strike belongs to
    - `next_cursor` string: Opaque cursor for the next page. Absent on the last page.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `500`: Internal server error

## Changes

- **2026-11-03** `37e7808f6c3a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/prophetx/apis/external-market-maker-api/changes/v4/mm/get_mappings/get.md)

---

[API](https://skmtc.dev/prophetx/apis/external-market-maker-api.md) - [All operations](https://skmtc.dev/prophetx/apis/external-market-maker-api/llms.txt) - [OpenAPI document](https://skmtc.dev/prophetx/apis/external-market-maker-api/revisions/37e7808f6c3a?raw)
