SofaScore API endpoint
Returns a match's team streaks and trends: `general` statements about each side's recent matches (for example `Wins` 6 or `No goals conceded` 4) and `head2head` statements about their meetings. Each item names the streak, a `value` that is either a run length (`6`) or a ratio (`5/5`), the `team` it refers to (`home`, `away` or `both`) and, where SofaScore reports it, whether the streak `continued` into this match. Returns 404 when SofaScore lists no streaks for the match, which includes tennis matches.
/sofascore/event-team-streaksQuery parameters:
id: required. Numeric SofaScore event (match) id, e.g. 16363867.Notable response behavior:
general holds statements about each side's recent matches and head2head statements about their meetings. Each item has the streak name, a value that is either a run length (6) or a ratio of matches (5/5), the team it refers to (home, away or both) and, where SofaScore reports it, whether the streak continued into this match.Scored points average (Last 10) with a points value). SofaScore's additional per-type lists for basketball partition these two lists and are not returned separately.404 when SofaScore lists no streaks for the match. Tennis matches answer an empty pair of lists upstream, which is reported as 404 instead of an empty success.| Field | Filled in, of 6 checked | Values in the sample |
|---|---|---|
| name | 6 | “Wins” and 5 other values |
| value | 6 | “6” and 4 other values |
| team | 6 | home (5), away (1) |
| continued | 6 | true in 3 of 6 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Numeric SofaScore event (match) id | 16363867 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sofascore/event-team-streaks?id=16363867" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"event_id": 16363867,
"source_url": "https://api.sofascore.com/api/v1/event/16363867/team-streaks",
"fetched_at": "2026-07-08T00:00:00Z",
"general": [
{
"name": "Wins",
"value": "6",
"team": "home",
"continued": true
},
{
"name": "No goals conceded",
"value": "4",
"team": "home",
"continued": false
},
{
"name": "Less than 2.5 goals",
"value": "5/5",
"team": "away",
"continued": false
}
],
"head2head": [
{
"name": "No losses",
"value": "11",
"team": "home",
"continued": true
},
{
"name": "No goals conceded",
"value": "3",
"team": "home",
"continued": false
}
]
}
}Request schema
No body schema
Response schema
#/definitions/sofascore.eventTeamStreaksResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sofascore.EventTeamStreaksResponse | No | ||||
| data.event_id | integer | No | 16363867 | |||
| data.fetched_at | string | No | ||||
| data.general | array | No | ||||
| data.general[].continued | boolean | No | ||||
| data.general[].name | string | No | No goals conceded | |||
| data.general[].team | string | No | home | |||
| data.general[].value | string | No | 4 | |||
| data.head2head | array | No | ||||
| data.head2head[].continued | boolean | No | ||||
| data.head2head[].name | string | No | No goals conceded | |||
| data.head2head[].team | string | No | home | |||
| data.head2head[].value | string | No | 4 | |||
| 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/sofascore/event-team-streaks?id=16363867" \
-H "x-api-key: $CRAWLORA_API_KEY"