Skip to content

Commit b2e0ffc

Browse files
Mlaz-codeclaude
andcommitted
docs(deeplinks): remove nonexistent GET /deeplinks endpoint, add bet365 support
- Remove GET /api/v1/deeplinks (never implemented in Go) - Add bet365 and bet365 UK to supported sportsbooks table - Remove from OpenAPI spec - Update unsupported list (now 5 books, down from 7) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d49b8d4 commit b2e0ffc

2 files changed

Lines changed: 4 additions & 226 deletions

File tree

content/en/api-reference/deeplinks.mdx

Lines changed: 4 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ Generate sportsbook deep links from odds IDs or opportunity hash IDs. Deep links
1212

1313
| Method | Path | Description |
1414
|--------|------|-------------|
15-
| `GET` | `/api/v1/deeplinks` | Get deep links for a single opportunity |
1615
| `POST` | `/api/v1/deeplinks/batch` | Get deep links for up to 500 IDs |
1716
| `GET` | `/api/v1/deeplink/{id}` | Redirect to a sportsbook (public, no auth) |
1817

1918
## Authentication
2019

21-
Requires API key for `GET /deeplinks` and `POST /deeplinks/batch`. Available to **Hobby tier and above**.
20+
Requires API key for `POST /deeplinks/batch`. Available to **Hobby tier and above**.
2221

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

@@ -28,127 +27,6 @@ The `id` parameter accepts both **odds IDs** (from `/odds`, `/odds/best`) and **
2827

2928
---
3029

31-
## Get Deep Links
32-
33-
```
34-
GET /api/v1/deeplinks
35-
```
36-
37-
Returns deep links for a single opportunity, keyed by sportsbook.
38-
39-
### Query Parameters
40-
41-
| Parameter | Type | Default | Description |
42-
|-----------|------|---------|-------------|
43-
| `id` | string | **required** | Opportunity hash ID (16-character hex string, e.g., `77b0749a1faae425`) |
44-
| `state` | string | `pa` | US state code for state-specific sportsbook URLs (e.g., `nj`, `ny`, `il`) |
45-
46-
### Example Requests
47-
48-
<Tabs items={['cURL', 'JavaScript', 'Python']}>
49-
<Tabs.Tab>
50-
```bash
51-
curl -X GET "https://api.sharpapi.io/api/v1/deeplinks?id=77b0749a1faae425&state=nj" \
52-
-H "X-API-Key: YOUR_API_KEY"
53-
```
54-
</Tabs.Tab>
55-
<Tabs.Tab>
56-
```javascript
57-
const response = await fetch(
58-
'https://api.sharpapi.io/api/v1/deeplinks?id=77b0749a1faae425&state=nj',
59-
{ headers: { 'X-API-Key': 'YOUR_API_KEY' } }
60-
);
61-
const { data } = await response.json();
62-
63-
for (const [book, url] of Object.entries(data.deep_links)) {
64-
console.log(`${book}: ${url}`);
65-
}
66-
```
67-
</Tabs.Tab>
68-
<Tabs.Tab>
69-
```python
70-
import requests
71-
72-
response = requests.get(
73-
'https://api.sharpapi.io/api/v1/deeplinks',
74-
params={'id': '77b0749a1faae425', 'state': 'nj'},
75-
headers={'X-API-Key': 'YOUR_API_KEY'}
76-
)
77-
result = response.json()
78-
79-
for book, url in result['data']['deep_links'].items():
80-
print(f"{book}: {url}")
81-
```
82-
</Tabs.Tab>
83-
</Tabs>
84-
85-
### Response
86-
87-
#### Success (200)
88-
89-
```json
90-
{
91-
"success": true,
92-
"data": {
93-
"id": "77b0749a1faae425",
94-
"deep_links": {
95-
"draftkings": "https://sportsbook.draftkings.com/event/12345?outcomes=abc123",
96-
"fanduel": "https://nj.sportsbook.fanduel.com/addToBetslip?marketId=m456&selectionId=s789"
97-
}
98-
},
99-
"meta": {
100-
"updated_at": "2026-02-11T12:00:15.000Z"
101-
}
102-
}
103-
```
104-
105-
#### Error Responses
106-
107-
***400 Invalid ID format***
108-
```json
109-
{
110-
"error": {
111-
"code": "invalid_request",
112-
"message": "Invalid id format. Expected 16-character hex string."
113-
}
114-
}
115-
```
116-
117-
***403 Tier restricted***
118-
```json
119-
{
120-
"error": {
121-
"code": "tier_restricted",
122-
"message": "Deep links requires hobby tier or higher",
123-
"tier": "free",
124-
"required_tier": "hobby"
125-
}
126-
}
127-
```
128-
129-
***404 Not found***
130-
```json
131-
{
132-
"error": {
133-
"code": "not_found",
134-
"message": "Deep link not found for this opportunity"
135-
}
136-
}
137-
```
138-
139-
### Response Headers
140-
141-
```
142-
X-RateLimit-Limit: 120
143-
X-RateLimit-Remaining: 119
144-
X-RateLimit-Reset: 1737853200
145-
X-Data-Delay: 0
146-
X-Request-Id: req_dl_abc123
147-
Cache-Control: public, s-maxage=10, max-age=5
148-
```
149-
150-
---
151-
15230
## Batch Deep Links
15331

15432
```
@@ -359,14 +237,6 @@ If the `fallback` query parameter is provided and the ID is not found, the endpo
359237

360238
## Deep Link Schema
361239

362-
### Single Response
363-
364-
| Field | Type | Description |
365-
|-------|------|-------------|
366-
| `data.id` | string | The opportunity hash ID |
367-
| `data.deep_links` | object | Map of sportsbook ID to deep link URL |
368-
| `meta.updated_at` | string | ISO 8601 timestamp of the opportunity data |
369-
370240
### Batch Response
371241

372242
| Field | Type | Description |
@@ -380,6 +250,8 @@ Deep links are available for 21 of 28 sportsbooks. State-specific books use the
380250

381251
| Sportsbook | Deep Link Support | State-Specific |
382252
|-----------|-----------|----------------|
253+
| bet365 | Yes | No |
254+
| bet365 UK | Yes | No |
383255
| DraftKings | Yes | No |
384256
| FanDuel | Yes | No |
385257
| BetMGM | Yes | No |
@@ -404,7 +276,7 @@ Deep links are available for 21 of 28 sportsbooks. State-specific books use the
404276

405277
The following sportsbooks do not currently support deep links. IDs for these books will return `null` in the batch response:
406278

407-
bet365, bet365 UK, Bet105, Bookmaker, Fliff, Rebet, SABA
279+
Bet105, Bookmaker, Fliff, Rebet, SABA
408280

409281
## Related Endpoints
410282

public/openapi.json

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -2648,100 +2648,6 @@
26482648
}
26492649
}
26502650
},
2651-
"/deeplinks": {
2652-
"get": {
2653-
"operationId": "getDeepLinks",
2654-
"summary": "Get deep links for an opportunity",
2655-
"description": "Generates sportsbook deep link URLs for a given opportunity ID. The ID comes from the `id` field in EV, arbitrage, middles, or low-hold responses. Requires **Hobby** tier or higher.\n",
2656-
"tags": [
2657-
"Deep Links"
2658-
],
2659-
"parameters": [
2660-
{
2661-
"name": "id",
2662-
"in": "query",
2663-
"required": true,
2664-
"description": "16-character hex opportunity ID",
2665-
"schema": {
2666-
"type": "string",
2667-
"pattern": "^[a-f0-9]{16}$"
2668-
},
2669-
"example": "a1b2c3d4e5f67890"
2670-
},
2671-
{
2672-
"name": "state",
2673-
"in": "query",
2674-
"description": "US state code for state-specific deep links",
2675-
"schema": {
2676-
"type": "string",
2677-
"default": "pa"
2678-
}
2679-
}
2680-
],
2681-
"responses": {
2682-
"200": {
2683-
"description": "Deep link URLs by sportsbook",
2684-
"content": {
2685-
"application/json": {
2686-
"schema": {
2687-
"allOf": [
2688-
{
2689-
"$ref": "#/components/schemas/SuccessEnvelope"
2690-
},
2691-
{
2692-
"type": "object",
2693-
"properties": {
2694-
"data": {
2695-
"type": "object",
2696-
"required": [
2697-
"id",
2698-
"deep_links"
2699-
],
2700-
"properties": {
2701-
"id": {
2702-
"type": "string"
2703-
},
2704-
"deep_links": {
2705-
"type": "object",
2706-
"additionalProperties": {
2707-
"type": "string",
2708-
"format": "uri"
2709-
}
2710-
}
2711-
}
2712-
}
2713-
}
2714-
}
2715-
]
2716-
},
2717-
"example": {
2718-
"success": true,
2719-
"data": {
2720-
"id": "a1b2c3d4e5f67890",
2721-
"deep_links": {
2722-
"draftkings": "https://sportsbook.draftkings.com/event/123456",
2723-
"fanduel": "https://sportsbook.fanduel.com/basketball/nba/event"
2724-
}
2725-
}
2726-
}
2727-
}
2728-
}
2729-
},
2730-
"400": {
2731-
"$ref": "#/components/responses/BadRequest"
2732-
},
2733-
"401": {
2734-
"$ref": "#/components/responses/Unauthorized"
2735-
},
2736-
"403": {
2737-
"$ref": "#/components/responses/TierRestricted"
2738-
},
2739-
"404": {
2740-
"$ref": "#/components/responses/NotFound"
2741-
}
2742-
}
2743-
}
2744-
},
27452651
"/deeplinks/batch": {
27462652
"post": {
27472653
"operationId": "batchDeepLinks",

0 commit comments

Comments
 (0)