Steam API endpoint
Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets.
/steam/reviews/histogramReturns the positive/negative recommendation counts over time — the review graph shown on a Steam store page.
Query parameters:
appid (required) — numeric Steam app id (e.g. 570).language (optional, default english) — a Steam language name or all.Returns appid, count_all_reviews, rollup_type, start_date, end_date, rollups[] (weekly/monthly buckets) and recent[] (recent daily buckets), each bucket carrying date, recommendations_up, recommendations_down, plus source_url.
| Field | Filled in, of 183 checked | Values in the sample |
|---|---|---|
| date | 183 | 2011-08-01 to 2026-10-01 |
| recommendations_up | 183 | 6 to 60,341, median 13,163 |
| recommendations_down | 183 | 0 to 12,328, median 2,860 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| appid | string | Yes | Numeric Steam app id | 570 | |
| language | string | No | Steam language name or 'all' | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/steam/reviews/histogram?appid=570&language=en" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"appid": "570",
"count_all_reviews": 1900000,
"rollup_type": "week",
"start_date": 1600000000,
"end_date": 1620000000,
"rollups": [
{
"date": 1600300800,
"recommendations_up": 5400,
"recommendations_down": 700
}
],
"recent": [
{
"date": 1619740800,
"recommendations_up": 320,
"recommendations_down": 40
}
],
"source_url": "https://store.steampowered.com/appreviewhistogram/570?l=english"
}
}Request schema
No body schema
Response schema
#/definitions/steam.histogramResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | steam.ReviewsHistogramResponse | No | ||||
| data.appid | string | No | Steam app id the histogram belongs to. | |||
| data.count_all_reviews | integer | No | Total number of reviews counted for the histogram. | |||
| data.end_date | integer | No | End of the period the histogram covers, in Unix seconds. | |||
| data.recent | array | No | Daily buckets of recommendations for the most recent period. | |||
| data.recent[].date | integer | No | Start of the bucket, in Unix seconds. | |||
| data.recent[].recommendations_down | integer | No | Number of negative recommendations in the bucket. | |||
| data.recent[].recommendations_up | integer | No | Number of positive recommendations in the bucket. | |||
| data.rollup_type | string | No | Size of each bucket in `rollups`, such as `week`. | |||
| data.rollups | array | No | Weekly or monthly buckets of recommendations covering the whole period. | |||
| data.rollups[].date | integer | No | Start of the bucket, in Unix seconds. | |||
| data.rollups[].recommendations_down | integer | No | Number of negative recommendations in the bucket. | |||
| data.rollups[].recommendations_up | integer | No | Number of positive recommendations in the bucket. | |||
| data.source_url | string | No | URL the data was read from. | |||
| data.start_date | integer | No | Start of the period the histogram covers, in Unix seconds. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/steam/reviews/histogram?appid=570&language=en" \
-H "x-api-key: $CRAWLORA_API_KEY"