Reviews
Google Play에서 앱의 리뷰를 가져옵니다.
GET | POST /v1/google-play/reviews파라미터는 GET의 쿼리 문자열로도, POST의 JSON 본문으로도 보낼 수 있습니다. 둘은 같습니다.
요청
curl "https://gateway.apinoa.com/v1/google-play/reviews?id=com.strava&country=US&sort=newest&limit=10" \
-H "x-api-key: $APINOA_API_KEY"파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
country | enum | The market, as an ISO 3166 country code. US GB CA AU NZ IE DE FR IT ES NL BE AT CH SE NO DK FI PL PT CZ GR HU RO TR UA IL AE SA EG ZA NG KE IN PK ID MY SG TH VN PH JP KR TW HK MX BR AR CL CO PE | |
cursor | string | The previous page's cursor. Pass it alone for the next page. | |
device | enum | Reviews written on this kind of device (default phone). phone tablet watch chromebook tv car | |
id | string | The app's Play id: its package name (com.strava). | |
lang | string | Interface language. | |
limit | integer 1–200 | Results wanted (default 40, at most 200). More than one page is charged per page. | |
rating | integer 1–5 | Only reviews with this many stars (1-5). | |
sort | enum | Review order. relevant newest highest lowest | |
url | string | The app's Play link, instead of id. |
같은 파라미터와 모든 응답 타입은 OpenAPI 문서에도 있습니다.
응답
data에 AppReviewsPage를 돌려줍니다. 실제 응답을 줄인 것입니다. 배열은 앞쪽 항목만 남기고 긴 텍스트는 잘랐습니다.
{
"success": true,
"data": {
"engine": "google-play",
"appId": "com.strava",
"sort": "newest",
"country": "US",
"page": {"index": 1, "size": 10},
"reviews": [
{
"id": "525d1b9c-6ae9-4caf-9e64-b97d92a1ba7a",
"author": "Ryan Oliver",
"rating": 4,
"body": "expensive",
"date": "2026-10-29T00:57:18.000Z",
"helpfulCount": 0,
"images": [],
"ext": {
"authorAvatarUrl": "https://play-lh.googleusercontent.com/a/ACg8ocIWJhJWleii7ygul0I9hOi7_TsD8dZhdfuBs3IpQdXu-A4bMA=mo",
"authorId": "115264893161167747303",
"appVersion": "486.11",
"device": "phone"
}
},
{
"id": "a0b644e0-5d0c-4edc-b5ed-7f01f622d7cb",
"author": "Yashika maayra Choudhary",
"rating": 4,
"body": "subscription is the bad else all good 🙌",
"date": "2026-10-29T00:50:16.000Z",
"helpfulCount": 0,
"images": [],
"ext": {
"authorAvatarUrl": "https://play-lh.googleusercontent.com/a/ACg8ocLNkxYDolwPkpUyDO5nkv64QeZ9s6fhP9yfMyOs3ucO59dos80=mo",
"authorId": "113477972146124328942",
"appVersion": "486.11",
"device": "phone"
}
}
],
"cursor": "WkN_1HrvmhecZNG2rrdbx5weIWYO79AO2I7NN6ZpjZalfvHANgMvhooKLP5ZJfnBwvHwOehzDglpq5jMbzxuZ2P1wcEgwFWOR94mpo9l5a8_-DP_Rg-LvXESLvaVVWYtzuSB9UAkwl4G24l_vIG97vngjgIf2oNM…",
"fetchedAt": "2026-10-30T00:57:31.869Z"
}
}에러
| 상태 | 코드 | 의미 |
|---|---|---|
| 400 | INVALID_CURSOR | 이 오퍼레이션이 돌려준 cursor가 아닙니다. cursor 없이 처음부터 다시 호출하세요. |
| 400 | INVALID_PARAMS | 파라미터가 없거나, 알 수 없거나, 범위를 벗어났거나, 이 엔진이 받지 않는 값입니다. 메시지에 이름이 나옵니다. |
| 401 | UNAUTHORIZED | x-api-key 헤더가 없거나, 폐기되었거나 알 수 없는 키입니다. |
| 402 | INSUFFICIENT_BALANCE | 잔액이 이 호출 비용에 모자랍니다. 대시보드에서 충전하세요. |
| 404 | NOT_FOUND | 이 스토어의 해당 시장에 그 앱이 없습니다. |
| 429 | MARKETPLACE_SATURATED | 동시 호출이 너무 많습니다. Retry-After 초만큼 기다린 뒤 다시 시도하세요. |
| 502 | UPSTREAM_ERROR | 엔진이 쓸 수 없는 응답을 보냈습니다. 간격을 두고 다시 시도하세요. |
| 503 | SERVICE_UNAVAILABLE | 일시적인 장애입니다. 간격을 두고 다시 시도하세요. |
모든 코드는 Errors에 있습니다. 실패한 호출은 과금되지 않습니다.
가격
가격 호출당 $0.0012. 정가 기준이며, 하루 1,000회를 넘으면 단가가 내려갑니다.
참고
- 앱의 패키지 이름이나 Play 링크(
url)를 넘깁니다.rating은 별점 하나만 남기고,device는 리뷰가 쓰인 기기 종류를 고릅니다.