PlayStation API endpoint
Returns one page of written PlayStation Store reviews for a concept (game hub), each with its title, body, rating, helpful count, spoiler flag, the edition the reviewer owned, and reviewer identity (online id, PS Plus subscriber status, verified-purchase status, avatar). Also includes the concept's aggregate star rating (including its rating distribution). page/page_size page through the full review list (total_count reports the true upstream review count, has_next_page whether a later page has more), sort controls ordering, and rating optionally filters to one star value. Reviews are region-scoped: cc selects the store region whose reviews are returned (and the price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.
/playstation/concept/reviewsReturns one page of written PlayStation Store reviews for a concept (game hub). Reviews are concept-scoped (shared across every edition of a title), not per-product.
Query parameters:
id (required) — numeric PlayStation concept id (e.g. 10002456).cc (optional, default us) — store country code (ISO). Reviews are region-scoped: a concept can have written reviews under one cc and none under another (e.g. concept 10002456 has 20 reviews under us but 0 under gb).l (optional, default en) — language code such as en or ja; locale-shaped values such as en-US are normalized to en.page (optional, default 1, max 10000) — 1-based page number.page_size (optional, default 10, max 100) — reviews per page. A value outside 1-100 is rejected as an invalid parameter, not silently clamped.sort (optional, default latest) — review ordering. One of latest, oldest, helpful.rating (optional) — filter to reviews with exactly this star rating. One of 1, 2, 3, 4, 5.Returns concept_id, name, star_rating (average, count, distribution[] — each {stars, percent}), total_count (the true upstream review count for the current filter), page, page_size, sort, rating (echoed back when a filter was applied), has_next_page (true when a later page has more reviews), returned (how many reviews are in this response), reviews[], and source_url. Each review has id, title, comment, rating (1-5), helpful_count, is_spoiler, product_name and edition_name (which edition the reviewer owned), last_updated (ISO), and author (online_id, is_ps_plus_subscriber, is_officially_verified, avatar_url). Per-viewer-only fields (whether the requester voted the review helpful, whether the requester reported it) are excluded.
A concept with no written reviews (for the requested cc/rating filter) returns 200 with total_count: 0 and an empty reviews[] — this is a real, common case, not an error. Requesting a page past the end of the review list also returns 200 with an empty reviews[] and the real total_count. An unknown or region-mismatched concept id returns 404 Not Found, matching /api/v1/playstation/concept.
| Field | Filled in, of 21 checked | Values in the sample |
|---|---|---|
| id | 21 | |
| title | 21 | |
| comment | 21 | median 154 characters |
| rating | 21 | 1 to 5, median 5 |
| helpful_count | 17 | 1 to 15, median 4 |
| product_name | 21 | |
| edition_name | 21 | |
| last_updated | 21 | 2025-10-11 to 2026-09-15 |
| author | 21 | |
| is_spoiler | 5 | true in 5 of 5 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Numeric PlayStation concept id | 10002456 | |
| cc | string | No | Store country code (ISO) | ||
| l | string | No | Language code | ||
| page | integer | No | 1-based page number Minimum: 1. Maximum: 10000. | ||
| page_size | integer | No | Reviews per page Minimum: 1. Maximum: 100. | ||
| sort | string | No | Sort order Allowed values: latest, oldest, helpful. | ||
| rating | integer | No | Filter to one star rating (1-5) Minimum: 1. Maximum: 5. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/playstation/concept/reviews?id=10002456&page=1&sort=latest" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"concept_id": "10002456",
"name": "Marvel's Spider-Man 2",
"star_rating": {
"average": 4.62,
"count": 259000,
"distribution": [
{
"stars": 5,
"percent": 80
},
{
"stars": 4,
"percent": 10
},
{
"stars": 3,
"percent": 5
},
{
"stars": 2,
"percent": 2
},
{
"stars": 1,
"percent": 3
}
]
},
"total_count": 20,
"page": 1,
"page_size": 10,
"sort": "latest",
"has_next_page": true,
"returned": 10,
"reviews": [
{
"id": "1229558822",
"title": "Marvel Spider-Man 2 should have earned game of the year",
"comment": "I'm loving this game.",
"rating": 5,
"helpful_count": 0,
"product_name": "Marvel's Spider-Man 2",
"edition_name": "Standard Edition",
"last_updated": "2026-09-12T01:35:14.000Z",
"author": {
"online_id": "CaptinResukexSPx",
"is_ps_plus_subscriber": true,
"avatar_url": "http://static-resource.np.community.playstation.net/avatar_xl/WWS_A/A2117_xl.png"
}
}
],
"source_url": "https://store.playstation.com/en-us/concept/10002456"
}
}Request schema
No body schema
Response schema
#/definitions/playstation.conceptReviewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | playstation.ConceptReviewsResponse | No | ||||
| data.concept_id | string | No | ||||
| data.has_next_page | boolean | No | ||||
| data.name | string | No | ||||
| data.page | integer | No | ||||
| data.page_size | integer | No | ||||
| data.rating | integer | No | ||||
| data.returned | integer | No | ||||
| data.reviews | array | No | ||||
| data.reviews[].author | playstation.ReviewAuthor | No | ||||
| data.reviews[].author.avatar_url | string | No | ||||
| data.reviews[].author.is_officially_verified | boolean | No | ||||
| data.reviews[].author.is_ps_plus_subscriber | boolean | No | ||||
| data.reviews[].author.online_id | string | No | ||||
| data.reviews[].comment | string | No | ||||
| data.reviews[].edition_name | string | No | ||||
| data.reviews[].helpful_count | integer | No | ||||
| data.reviews[].id | string | No | ||||
| data.reviews[].is_spoiler | boolean | No | ||||
| data.reviews[].last_updated | string | No | ||||
| data.reviews[].product_name | string | No | ||||
| data.reviews[].rating | integer | No | ||||
| data.reviews[].title | string | No | ||||
| data.sort | string | No | ||||
| data.source_url | string | No | ||||
| data.star_rating | playstation.StarRating | No | StarRating record, 5 fields: average, count, distribution. Described under PlayStation Store Product API. | |||
| data.total_count | integer | No | ||||
| 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/playstation/concept/reviews?id=10002456&page=1&sort=latest" \
-H "x-api-key: $CRAWLORA_API_KEY"