Skip to Content
API ReferenceDeep Links

Deep Links

Generate sportsbook deep links from odds IDs or opportunity hash IDs. Deep links take users directly to the relevant event page on a sportsbook’s website, enabling one-click bet placement from your application.

EndpointsPermalink for this section

MethodPathDescription
POST/api/v1/deeplinks/batchGet deep links for up to 500 IDs
GET/api/v1/deeplink/{id}Redirect to a sportsbook (public, no auth)

AuthenticationPermalink for this section

Requires API key for POST /deeplinks/batch. Available to Hobby tier and above.

The redirect endpoint (GET /deeplink/{id}) is public and does not require authentication — the opaque ID prevents enumeration.

The id parameter accepts both odds IDs (from /odds, /odds/best) and opportunity hash IDs (from +EV, Arbitrage, Middles, and Low Hold endpoints). Either ID type resolves to the most specific link that sportsbook supports — specificity is a property of the book, not of the ID type. Read X-Deep-Link-Type on the redirect to see what you got, and see Supported Sportsbooks for which books preselect the bet.


POST /api/v1/deeplinks/batch

Returns deep link redirect paths for multiple IDs in a single request. Accepts both odds IDs and opportunity hash IDs. Each ID in the request appears in the response — resolved IDs return a redirect path, unresolvable IDs return null.

Request BodyPermalink for this section

{ "ids": ["17336125542407", "77b0749a1faae425", "abc1234567890def"], "state": "nj" }
FieldTypeDefaultDescription
idsstring[]requiredArray of odds IDs or opportunity hash IDs (1–500 items)
statestringpaUS state code for state-specific sportsbook URLs (e.g., nj, ny, il)

Example RequestsPermalink for this section

curl -X POST "https://api.sharpapi.io/api/v1/deeplinks/batch" \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"ids": ["17336125542407", "77b0749a1faae425"], "state": "nj"}'

ResponsePermalink for this section

Success (200)Permalink for this section

The batch endpoint returns redirect paths, not direct sportsbook URLs. Prepend your base URL or use the path with the redirect endpoint to reach the sportsbook.

{ "data": { "17336125542407": "/api/v1/deeplink/17336125542407", "77b0749a1faae425": "/api/v1/deeplink/77b0749a1faae425", "abc1234567890def": null }, "updated_at": "2026-02-11T12:00:15.000Z" }
ValueMeaning
"/api/v1/deeplink/{id}"Deeplink available — follow the redirect path to reach the sportsbook
nullNo deeplink available for this ID (unsupported sportsbook, expired odds, or invalid ID)

To get the final sportsbook URL, either follow the redirect (GET https://api.sharpapi.io/api/v1/deeplink/{id}) or use the path directly in <a href> links — the browser will follow the 302 redirect automatically.

Error ResponsesPermalink for this section

400 Missing IDs

{ "error": { "code": "validation_error", "message": "ids array required" } }

400 Batch size exceeded

{ "error": { "code": "validation_error", "message": "Maximum 500 IDs per batch" } }

GET /api/v1/deeplink/{id}

Redirects the user directly to the sportsbook page for a given odds ID or opportunity hash ID. This is a public endpoint — no API key required.

Use this endpoint in <a href> links to send users directly to a sportsbook. The response is a 302 Found redirect, not JSON.

Path ParametersPermalink for this section

ParameterTypeDescription
idstringRequired. Either a numeric odds ID (e.g., 135102220304350) or an opportunity hash ID (16-char hex, e.g., 77b0749a1faae425)

Query ParametersPermalink for this section

ParameterTypeDefaultDescription
statestringpaUS state code for state-specific URLs
bookstringSportsbook filter (for multi-book opportunities like middles/arbitrage)
fallbackstringURL to redirect to if the ID is not found

ExamplePermalink for this section

<!-- In your application HTML --> <a href="https://api.sharpapi.io/api/v1/deeplink/77b0749a1faae425?state=nj&book=draftkings"> Bet on DraftKings </a>

ResponsePermalink for this section

Success (302 Found)Permalink for this section

HTTP/1.1 302 Found Location: https://sportsbook.draftkings.com/event/12345?outcomes=abc123 Cache-Control: private, max-age=60 X-Deep-Link-Type: outcome

The X-Deep-Link-Type header indicates the link specificity:

ValueDescription
outcomeDirect link to a specific bet selection (with selection ID)
eventLink to the event page (no specific selection)
homepageFallback to the sportsbook homepage

Error ResponsesPermalink for this section

404 Not found

{ "error": { "code": "not_found", "message": "Deep link ID not found" } }

If the fallback query parameter is provided and the ID is not found, the endpoint redirects to the fallback URL instead of returning a 404 JSON response.


Batch ResponsePermalink for this section

FieldTypeDescription
dataobjectMap of ID to redirect path (string) or null if unavailable
updated_atstringISO 8601 timestamp of the odds data

Supported SportsbooksPermalink for this section

Deep link support is per sportsbook, and so is link specificity. Whether a link opens the event page or opens the bet slip with your selection already on it is decided by what that sportsbook’s own site accepts — not by which ID type you sent. The X-Deep-Link-Type header on the redirect tells you which one you got, per link.

Measured against production on 2026-08-25, across every sportsbook the API was serving at the time — 26 of 35 resolve a deep link, and 12 of those preselect the bet:

SportsbookDeep linkPreselects your selectionState-specific
BallyBetYesYesNo
BetMGMYesYesYes
betPARXYesYesNo
BetRiversYesYesYes
BetwayYesYesNo
BovadaYesYesNo
bwinYesYesNo
CaesarsYesYesYes
DraftKingsYesYesNo
FanDuelYesYesNo
Hard RockYesYesNo
UnibetYesYesNo
1xBetYesNoNo
BetanoYesNoNo
BetOnlineYesNoNo
KalshiYesNoNo
LadbrokesYesNoNo
NovigYesNoNo
PinnacleYesNoNo
PolymarketYesNoNo
ProphetXYesNoNo
SportzinoYesNoNo
StakeYesNoNo
Rebet †App linkNoNo
SBOBET ‡PartialNoNo
SX Bet ‡PartialNoNo
BetfairNo
CircaNo
FanaticsNo
FliffNo
GoldrushNo
SABANo
SkyBetNo
theScore BetNo
UnderdogNo

† Rebet resolves to a mobile app link (com.rebet.app://…). On desktop the redirect endpoint uses your fallback URL instead, and reports X-Deep-Link-Type: homepage.

‡ SBOBET and SX Bet resolve to a sport or league page rather than the individual event.

IDs for a sportsbook in the No group return null in the batch response, and the redirect endpoint returns 404 unless you pass fallback. Even on a supported sportsbook an individual ID can return null — not every market has a page. A sportsbook that was not publishing odds when this was measured is not listed.

Pinnacle deep links cannot preselect a bet. Pinnacle’s link is a matchup page (https://www.pinnacle.com/en/all-sports/matchup/{id}) and has no selection parameter to carry your outcome, so it is event-level whether you send a numeric odds ID or an opportunity hash ID. The bettor picks the outcome on the page.

  • +EV Opportunities - Source of hash_id values for +EV bets
  • Arbitrage - Source of hash_id values for arbitrage opportunities
  • Middles - Source of hash_id values for middle opportunities
  • Low Hold - Source of hash_id values for low-hold opportunities
Last updated on