PlayStation API endpoint
Returns store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and 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/productReturns store metadata for a single PlayStation product (one edition or add-on). For the full title (all editions and add-ons) use /api/v1/playstation/concept.
Query parameters:
id (required) — PlayStation product id (e.g. UP0001-PPSA01491_00-GAME000000000000).cc (optional, default us) — store country code (ISO); selects the store region and price currency.l (optional, default en) — language code such as en or ja; locale-shaped values such as en-US are normalized to en.Product ids are region-specific (the prefix ties to a region family: UP… = Americas, EP… = Europe). Requesting a product id under a mismatched region (e.g. a UP… id with cc=gb) returns 404 Not Found, as does a genuinely missing id. Concept ids (numeric) are global.
Returns id, name, np_title_id, concept_id, type, classification, edition_name, publisher, release_date (ISO), platforms[], genres[], spoken_languages[], screen_languages[], content_rating, star_rating (average, count, distribution[] — each {stars, percent}, the percent of ratings at that star value), price (base_price, discounted_price, discount_text, base_price_value, discounted_value, currency_code, is_free, applicability, …), media[] (type, role, url), and source_url.
| Field | Filled in, of 16 checked | Values in the sample |
|---|---|---|
| type | 16 | IMAGE in all 16 |
| role | 16 | SCREENSHOT (9), BACKGROUND (1), EDITION_KEY_ART (1) and 5 more |
| url | 16 | image.api.playstation.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | PlayStation product id | UP0001-PPSA01491_00-GAME000000000000 | |
| cc | string | No | Store country code (ISO, selects currency) | ||
| l | string | No | Language code | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/playstation/product?id=UP0001-PPSA01491_00-GAME000000000000" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "UP0001-PPSA01491_00-GAME000000000000",
"name": "Assassin's Creed Valhalla",
"np_title_id": "PPSA01491_00",
"concept_id": "10000237",
"type": "GAME",
"classification": "FULL_GAME",
"platforms": [
"PS4",
"PS5"
],
"star_rating": {
"average": 4.08,
"count": 84255,
"distribution": [
{
"stars": 5,
"percent": 61
},
{
"stars": 4,
"percent": 15
},
{
"stars": 3,
"percent": 9
},
{
"stars": 2,
"percent": 5
},
{
"stars": 1,
"percent": 12
}
]
},
"price": {
"base_price": "$59.99",
"discounted_price": "$19.79",
"discount_text": "-67%",
"base_price_value": 5999,
"discounted_value": 1979,
"currency_code": "USD",
"is_free": false,
"applicability": "OUTRIGHT"
},
"source_url": "https://store.playstation.com/en-us/product/UP0001-PPSA01491_00-GAME000000000000"
}
}Request schema
No body schema
Response schema
#/definitions/playstation.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | playstation.ProductDetail | No | ||||
| data.classification | string | No | ||||
| data.concept_id | string | No | ||||
| data.content_rating | playstation.ContentRating | No | ||||
| data.content_rating.authority | string | No | Rating board that issued the rating, for example `ESRB`. | |||
| data.content_rating.description | string | No | Rating label in plain words, for example `ESRB Mature 17+`. | |||
| data.content_rating.descriptors | array | No | Descriptors are the human-readable content/interactivity disclosures the rating carries (e.g. "Blood", "Violence", "In-Game Purchases", "Users Interact"), merged from the store's descriptors + interactiveElements lists. | |||
| data.content_rating.name | string | No | Rating identifier as the store gives it, for example `ESRB_MATURE_17`. | |||
| data.content_rating.url | string | No | URL of the rating board's page for this rating. | |||
| data.edition_name | string | No | ||||
| data.genres | array | No | ||||
| data.id | string | No | ||||
| data.media | array | No | ||||
| data.media[].role | string | No | Role of the asset on the store page, as the store labels it. | |||
| data.media[].type | string | No | Kind of asset, such as an image or a video. | |||
| data.media[].url | string | No | URL of the image or video. | |||
| data.name | string | No | ||||
| data.np_title_id | string | No | ||||
| data.platforms | array | No | ||||
| data.price | playstation.DetailPrice | No | ||||
| data.price.applicability | string | No | How the price applies, for example `OUTRIGHT` for a one-time purchase. | |||
| data.price.base_price | string | No | Regular price as a formatted string, for example `$59.99`. | |||
| data.price.base_price_value | integer | No | Regular price in the smallest currency unit, for example cents for USD. | |||
| data.price.currency_code | string | No | Currency code of the price, for example `USD`. | |||
| data.price.discount_text | string | No | Discount label shown on the store, for example `-67%`. | |||
| data.price.discounted_price | string | No | Current price after discount as a formatted string. | |||
| data.price.discounted_value | integer | No | Current price after discount in the smallest currency unit, for example cents for USD. | |||
| data.price.end_time | string | No | Time the offer ends, as the store gives it. | |||
| data.price.is_exclusive | boolean | No | Whether the store marks the price as exclusive to a membership. | |||
| data.price.is_free | boolean | No | Whether the item is free. | |||
| data.price.is_tied_to_subscription | boolean | No | Whether the store marks the price as tied to a subscription. | |||
| data.price.service_branding | array | No | Names of the PlayStation services the price is tied to. | |||
| data.price.upsell_text | string | No | Promotional text the store shows next to the price. | |||
| data.publisher | string | No | ||||
| data.release_date | string | No | ||||
| data.screen_languages | array | No | ||||
| data.source_url | string | No | ||||
| data.spoken_languages | array | No | ||||
| data.star_rating | playstation.StarRating | No | ||||
| data.star_rating.average | number | No | Average user rating out of 5. | |||
| data.star_rating.count | integer | No | Number of user ratings. | |||
| data.star_rating.distribution | array | No | Share of ratings at each star value, from 1 to 5. | |||
| data.star_rating.distribution[].percent | integer | No | Percentage of ratings that gave this star value. | |||
| data.star_rating.distribution[].stars | integer | No | Star value, from 1 to 5. | |||
| data.type | string | 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/product?id=UP0001-PPSA01491_00-GAME000000000000" \
-H "x-api-key: $CRAWLORA_API_KEY"