Yahoo Sports API endpoint
Returns a snapshot of current/recently-completed tennis matches across the tour (tournament, round, players, per-set scores, winner, and status), from Yahoo Sports' own server-rendered tournaments page. This endpoint takes no parameters -- it is a fixed-size "what's happening right now" snapshot, not a by-date query.
/yahoo-sports/tennis-scoreboardThis endpoint takes no query parameters. It is a fixed-size "what's happening right now" snapshot (confirmed live: 20 matches), not a comprehensive by-date archive — Yahoo's own page ignores date/season filtering here the same way it does on tennis-schedule.
Notable response behavior:
matches covers whichever tournaments are currently prominent on Yahoo's own page — not every tournament in progress, and not scoped to one tournament.side1/side2 each carry one player for singles matches, two for doubles.status is one of PREGAME, IN_PROGRESS, or FINAL; status_display is Yahoo's own short label (e.g. "Set 2", "Final").sets has one entry per set actually played; side1_tiebreak/side2_tiebreak are present only for a set decided by a tiebreak.winner_ids is populated once a match is decided.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| tournament | 20 | Dongfeng Voyah Wuhan Open (8), Lisboa Belem Open (6), Torneo Internazionale Citta di… (3) and 1 more |
| event | 20 | Women's Singles (15), Men's Singles (3), Women's Doubles (2) |
| league | 20 | WTA (17), ATP (3) |
| round | 20 | Round of 32 (16), Round of 16 (4) |
| surface | 20 | Hard (14), Clay (6) |
| venue | 14 | |
| status | 20 | PREGAME (11), FINAL (6), IN_PROGRESS (3) |
| status_display | 20 | Final (6), 8:00 PM PDT (5), Set 2 (3) and 5 more |
| start_time | 20 | 2026-10-13 |
| side1 | 20 | median 1 entry |
| side2 | 20 | median 1 entry |
| sets | 9 | median 2 entries |
| url | 20 | sports.yahoo.com |
| side1_seed | 8 | 1 to 20, median 5 |
| side2_seed | 7 | 2 to 19, median 9 |
| winner_ids | 5 |
| 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-scoreboard" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"count": 20,
"source_url": "https://sports.yahoo.com/tennis/tournaments/",
"fetched_at": "2026-08-14T09:00:00Z",
"matches": [
{
"id": "ten.g.15754496",
"tournament": "Western & Southern Open",
"event": "Men's Singles",
"league": "ATP",
"round": "Round of 128",
"surface": "Hard",
"venue": {
"name": "Lindner Family Tennis Center",
"city": "Cincinnati, OH",
"country": "United States"
},
"status": "FINAL",
"status_display": "Final",
"start_time": "2026-08-13T08:00:00-07:00",
"side1": [
{
"id": "ten.p.34440",
"name": "Martin Landaluce",
"short_name": "M. Landaluce",
"country": "Spain",
"rank": 64
}
],
"side2": [
{
"id": "ten.p.33855",
"name": "Jack Draper",
"short_name": "J. Draper",
"country": "Great Britain",
"rank": 143
}
],
"winner_ids": [
"ten.p.34440"
],
"sets": [
{
"set": 1,
"side1_score": 6,
"side2_score": 3
},
{
"set": 2,
"side1_score": 7,
"side2_score": 5
}
],
"url": "https://sports.yahoo.com/tennis/2026/western-southern-open/mens-singles/martin-landaluce-jack-draper-15754496/"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/yahoosports.tennisScoreboardResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | yahoosports.TennisScoreboardResponse | No | ||||
| data.count | integer | No | 20 | |||
| data.fetched_at | string | No | ||||
| data.matches | array | No | ||||
| data.matches[].event | string | No | Men's Singles | |||
| data.matches[].id | string | No | ten.g.15754498 | |||
| data.matches[].league | string | No | ATP | |||
| data.matches[].round | string | No | Round of 128 | |||
| data.matches[].sets | array | No | ||||
| data.matches[].sets[].set | integer | No | 1 | |||
| data.matches[].sets[].side1_score | integer | No | 6 | |||
| data.matches[].sets[].side1_tiebreak | integer | No | ||||
| data.matches[].sets[].side2_score | integer | No | 3 | |||
| data.matches[].sets[].side2_tiebreak | integer | No | ||||
| data.matches[].side1 | array | No | ||||
| data.matches[].side1[].country | string | No | Spain | |||
| data.matches[].side1[].id | string | No | ten.p.34440 | |||
| data.matches[].side1[].name | string | No | Martin Landaluce | |||
| data.matches[].side1[].rank | integer | No | 64 | |||
| data.matches[].side1[].short_name | string | No | M. Landaluce | |||
| data.matches[].side1_seed | integer | No | ||||
| data.matches[].side2 | array | No | ||||
| data.matches[].side2[].country | string | No | Spain | |||
| data.matches[].side2[].id | string | No | ten.p.34440 | |||
| data.matches[].side2[].name | string | No | Martin Landaluce | |||
| data.matches[].side2[].rank | integer | No | 64 | |||
| data.matches[].side2[].short_name | string | No | M. Landaluce | |||
| data.matches[].side2_seed | integer | No | ||||
| data.matches[].start_time | string | No | 2026-08-13T19:35:00-07:00 | |||
| data.matches[].status | string | No | IN_PROGRESS | |||
| data.matches[].status_display | string | No | Set 2 | |||
| data.matches[].surface | string | No | Hard | |||
| data.matches[].tournament | string | No | Western & Southern Open | |||
| data.matches[].url | string | No | ||||
| data.matches[].venue | yahoosports.Venue | No | Venue record, 4 fields: city, country, name, state. Described under Yahoo Sports game boxscore API. | |||
| data.matches[].winner_ids | array | No | ||||
| data.source_url | string | No | ||||
| 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-scoreboard" \
-H "x-api-key: $CRAWLORA_API_KEY"