GooglePlay API endpoint
Searches Google Play for apps matching the required `term`, up to `num` results (default 20, max 250). `price` is `all` (default), `free` or `paid`, and `country` and `lang` default to `us` and `en`. A strong exact match is placed first. An empty list means no apps matched.
/googleplay/searchMCP tool: googleplay_search
Returns Google Play app search results for a term.
Query parameters:
term (required) — search keyword.num — maximum number of results, default 20, max 250.country — two-letter storefront country code, default us.lang — two-letter language code, default en.price — price filter, default all. Allowed values: all, free, paid.full_detail — when true, resolve each result to full app details instead of
the compact card. Default false.Response behavior:
/store/search listing. When the term has a
strong exact match, Google renders it as a separate featured card; that app is
prepended to data so the most relevant result is first.data array means the query genuinely returned no apps — it does not
mean a specific app is missing from the store. To confirm an app's presence, look
it up directly with googleplay_app (by package name) or googleplay_list.200 with an empty array.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| title | 20 | “ChatGPT” and 19 other values |
| app_id | 20 | |
| url | 20 | play.google.com |
| icon | 20 | play-lh.googleusercontent.com |
| developer | 20 | “OpenAI” and 19 other values |
| developer_id | 1 | |
| summary | 20 | median 3,088 characters |
| score_text | 20 | 3.8 to 4.9, median 4.5 |
| score | 20 | 3.78 to 4.87, median 4.47 |
| price_text | 20 | FREE in all 20 |
| price | 20 | 0 |
| free | 20 | true in 20 of 20 |
| currency | 20 | USD in all 20 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| term | string | Yes | Search term | chatgpt | |
| num | integer | No | Number of apps | 20 | |
| country | string | No | Two-letter country code | us | |
| lang | string | No | Two-letter language code | en | |
| full_detail | boolean | No | Resolve each app to full detail | ||
| price | string | No | Price filter: all, free, paid Allowed values: all, free, paid. | all | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/googleplay/search?term=chatgpt&num=10&country=us&lang=en&full_detail=true&price=all" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": [
{
"app_id": "com.anthropic.claude",
"title": "Claude by Anthropic",
"developer": "Anthropic PBC",
"score": 4.7,
"price_text": "FREE",
"free": true
}
]
}Request schema
No body schema
Response schema
#/definitions/googleplay.searchResultsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | array | 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 |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/googleplay/search?term=chatgpt&num=10&country=us&lang=en&full_detail=true&price=all" \
-H "x-api-key: $CRAWLORA_API_KEY"