Yahoo Sports API endpoint
Returns the full season tennis tournament calendar (name, gender, match type, surface, dates, status, venue, and champion where decided), from Yahoo Sports' own server-rendered tournaments page. This endpoint takes no parameters -- it always returns Yahoo's current full-season snapshot (season/gender/match-type filtering happens client-side on Yahoo's own page, not server-side).
/yahoo-sports/tennis-scheduleThis endpoint takes no query parameters — it always returns Yahoo's current full-season snapshot. Yahoo's own page accepts season/gender/matchType query parameters, but they are silently ignored server-side (confirmed live: three different combinations returned byte-identical tournament data), so this endpoint does not expose them.
Notable response behavior:
tournaments preserves Yahoo's own calendar ordering and spans both ATP and WTA events.champion is present once a tournament has concluded; null/omitted otherwise.id (e.g. ten.e.2042) is Yahoo's own internal tournament id — no other yahoo-sports endpoint currently accepts it as an input.| Field | Filled in, of 60 checked | Values in the sample |
|---|---|---|
| id | 60 | |
| name | 60 | “Brisbane International presented by Evie” and 59 other values |
| gender | 60 | |
| match_type | 60 | SINGLES in all 60 |
| surface | 60 | Hard (34), Clay (19), Grass (7) |
| start_time | 60 | 2026-01-03 to 2026-11-14 |
| end_time | 60 | 2026-01-11 to 2026-11-22 |
| status | 60 | FINAL (50), SCHEDULED (9), IN_PROGRESS (1) |
| venue | 57 | |
| champion | 50 | |
| url | 59 | sports.yahoo.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/yahoo-sports/tennis-schedule" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"count": 86,
"source_url": "https://sports.yahoo.com/tennis/tournaments/",
"fetched_at": "2026-08-14T09:00:00Z",
"tournaments": [
{
"id": "ten.e.2042",
"name": "Brisbane International presented by Evie",
"gender": "MEN",
"match_type": "SINGLES",
"surface": "Hard",
"start_time": "2026-01-03T16:00:00-08:00",
"end_time": "2026-01-11T04:00:00-08:00",
"status": "FINAL",
"venue": {
"city": "Brisbane",
"country": "Australia"
},
"champion": {
"name": "Daniil Medvedev",
"player_id": "ten.p.19603"
},
"url": "https://sports.yahoo.com/tennis/2026/brisbane-international-presented-by-evie/"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/yahoosports.tennisScheduleResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | yahoosports.TennisScheduleResponse | No | ||||
| data.count | integer | No | 86 | |||
| data.fetched_at | string | No | ||||
| data.source_url | string | No | ||||
| data.tournaments | array | No | ||||
| data.tournaments[].champion | yahoosports.TennisChampion | No | ||||
| data.tournaments[].champion.name | string | No | Daniil Medvedev | |||
| data.tournaments[].champion.player_id | string | No | ten.p.19603 | |||
| data.tournaments[].end_time | string | No | 2026-01-11T04:00:00-08:00 | |||
| data.tournaments[].gender | string | No | MEN | |||
| data.tournaments[].id | string | No | ten.e.2042 | |||
| data.tournaments[].match_type | string | No | SINGLES | |||
| data.tournaments[].name | string | No | Brisbane International presented by Evie | |||
| data.tournaments[].start_time | string | No | 2026-01-03T16:00:00-08:00 | |||
| data.tournaments[].status | string | No | FINAL | |||
| data.tournaments[].surface | string | No | Hard | |||
| data.tournaments[].url | string | No | ||||
| data.tournaments[].venue | yahoosports.Venue | No | Venue record, 4 fields: city, country, name, state. Described under Yahoo Sports game boxscore API. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/yahoo-sports/tennis-schedule" \
-H "x-api-key: $CRAWLORA_API_KEY"