# Google Play Search API (google_play.search)

- Canonical page: https://everyinfra.com/en/google-play-api/search
- Endpoint: POST https://api.everyinfra.com/api/v1/social with {"platform": "google_play", "action": "search", "params": {...}}
- Price: $0.001389 per call ($1.39 per 1,000 requests); failed calls and empty results are not charged
- Returns: list, default 20, max 100 per call
- Pagination: pass next_page_token back as page_token for the next page, other params unchanged; one call per page, tokens last 24 hours; up to 100 rows
- Mode: sync; add "mode": "async" for slow tasks

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=google_play&action=search

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| keyword | not declared | yes | not declared | A Google Play app-name or use-case query, such as `note taking`. It is not an exact package-name lookup. Use `app_id` for app details and reviews. |
| country | not declared | no | not declared | Selects the Google Play storefront country or region using a lowercase code such as us. The default is us. For search and profile it changes the storefront being queried, not the user's phone region or the developer's nationality. For reviews it does not change which reviews come back: reviews vary only with `language`, so us and gb return the same reviews for the same language. To compare reviews across markets, change `language`, not only `country`. |
| language | not declared | no | not declared | Selects the language used for Play Store content and review queries, such as en or zh. The default is en. It does not change country automatically or guarantee that every returned review was written in that language. |
| page_token | not declared | no | not declared | Pagination token: pass back next_page_token from the previous response to get the next page; omit it for the first page. Keep every other parameter unchanged. Tokens last 24 hours and each page is one call. |
| limit | integer (1–100) | no | 20 | The most rows to return in this call, an integer from 1 to 100. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| app_id | platform-native meaning |
| url | Link to the record on the platform. |
| name | Name of the object itself, for account, product and business capabilities. |
| summary | platform-native meaning |
| description | Summary or description, usually shorter than text. |
| developer | platform-native meaning |
| developer_email | platform-native meaning |
| developer_website | platform-native meaning |
| score | platform-native meaning |
| rating_count | Number of people who rated. null means not disclosed, not 0. |
| review_count | Number of reviews, for product and business capabilities. null means not disclosed, not 0. |
| installs | platform-native meaning |
| min_installs | platform-native meaning |
| price | Price as a number without a currency symbol; see currency. |
| is_free | Whether the app is free to download (keywords_for_app). |
| currency | Currency code of the price (for example CNY, USD). If price is present but currency is null, do not assume a currency. |
| category | Category name in the platform's own taxonomy, not normalized across platforms. |
| content_rating | platform-native meaning |
| contains_ads | platform-native meaning |
| offers_iap | platform-native meaning |
| version | platform-native meaning |
| released | platform-native meaning |
| updated_at | platform-native meaning |
| android_version | platform-native meaning |
| icon_url | platform-native meaning |
| header_image_url | platform-native meaning |
| privacy_policy | platform-native meaning |
| platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |
| screenshots | platform-native meaning |
| rating_histogram | platform-native meaning |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "google_play",
  "action": "search",
  "params": {
    "keyword": "habit tracker"
  }
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "google_play",
        "action": "search",
        "params": {
            "keyword": "habit tracker",
        },
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

Real response to the example request above, captured 2026-09-26T08:56:04Z. `results` and `count` are real with personal information (names, handles, avatars, profile links, contact details) removed; the list keeps the first 2 of 20. `id`, `billing` and `quota` differ on every call, so only their shape is shown.

```text
{
  "id": "req_…",
  "platform": "google_play",
  "action": "search",
  "results": [
    {
      "app_id": "org.isoron.uhabits",
      "url": "https://play.google.com/store/apps/details?id=org.isoron.uhabits",
      "name": "Loop Habit Tracker",
      "summary": "Create good habits and track their progress over time",
      "description": "Loop helps you create and maintain good habits, allowing you to achieve your long-term goals. Detailed charts and statistics show you how your habits improved over time. The app is completely ad-free, open source and it respects your privacy.\n\n\nSimple, beautiful and modern interf…",
      "developer": "Álinson S Xavier",
      "developer_email": "•••",
      "score": 4.7175927,
      "rating_count": 63336,
      "review_count": 3419,
      "installs": "5,000,000+",
      "min_installs": 5000000,
      "price": 0,
      "is_free": true,
      "currency": "USD",
      "category": "Productivity",
      "content_rating": "Everyone",
      "contains_ads": false,
      "offers_iap": false,
      "version": "2.3.1",
      "released": "Feb 22, 2016",
      "updated_at": "2025-09-14T22:56:06.000Z",
      "android_version": "9",
      "icon_url": "https://play-lh.googleusercontent.com/p0AgkzxC9Vus-E82psxrb7p8VtrVJMfXKcU9hNTW8tTG7G3yAGBqxCIyUmwibUyT1Mx7DAzkrJnPLo4VEYDwlbI",
      "header_image_url": "https://play-lh.googleusercontent.com/saJuIprQv_9zeut6372XuLUEWSSB9iAJIwFc2oASfly5r3AQaNZiVWQ9_Rc1fLe2Y4bNF6fljlze-I7yorTP",
      "privacy_policy": "http://loophabits.org/privacy",
      "platform": "google_play",
      "screenshots": [
        "https://play-lh.googleusercontent.com/KrxN9bOtspk63xhtNJx2uyaHZ3GOYK_IJ-VRIhMlh2ChFCQuBxXLWoRJd48uFRU_Rk97Nz3gHiI0eteLn2KDFQ",
        "https://play-lh.googleusercontent.com/2nZZDFddPS4-wHVgPvAfeYik3vMTsrV-Mgys3g1A6s-KLCcUWsf1PlYLJfKXGyxUnUHkSKX8sESQkrEx6mQN",
        "https://play-lh.googleusercontent.com/8BBDln1lKgX6ErWkH-_tKlfoD2TEfpcVzrgFlzJO91wK0HiYac_W0wJV7hHhGi8aeqk-8xRI051bK6mlsOLiZw"
      ],
      "rating_histogram": {
        "1": 1850,
        "2": 871,
        "3": 1850,
        "4": 4096,
        "5": 54630
      }
    },
    {
      "app_id": "com.habitnow",
      "url": "https://play.google.com/store/apps/details?id=com.habitnow",
      "name": "HabitNow Daily Routine Planner",
      "summary": "To-do list, Habit Tracker, Routine Planner and Reminders. All in just one app!",
      "description": "Maximize Your Productivity with HabitNow: Your Ultimate Todo List and Habit Tracker! 🚀\nKeeping your life organized has never been easier! With HabitNow, efficiently manage your school schedule, house chores, work, and more, all while building strong habits. Enter your routine, re…",
      "developer": "HabitNow Apps",
      "developer_email": "•••",
      "score": 4.7406015,
      "rating_count": 92815,
      "review_count": 2861,
      "installs": "5,000,000+",
      "min_installs": 5000000,
      "price": 0,
      "is_free": true,
      "currency": "USD",
      "category": "Productivity",
      "content_rating": "Everyone",
      "contains_ads": false,
      "offers_iap": true,
      "version": "2.5.4a",
      "released": "May 17, 2019",
      "updated_at": "2026-07-26T22:27:33.000Z",
      "android_version": "6.0",
      "icon_url": "https://play-lh.googleusercontent.com/HsjWZ5h3QDDNPL-0xKP9j4CXG6dxaojS2PtyuRnylitzLm5huDOCMkwc8gYF1glrr1laiRNospq5uNB0HUIo",
      "header_image_url": "https://play-lh.googleusercontent.com/rFBjMvOr9AMlbcXyoEcCmd68k7yOPeEwbfmaZar1Anz5nfZZxQvEoWOTj914GRyunw4rCEHtbbt_mtMUivcncQ",
      "privacy_policy": "https://www.habitnow.app/privacy-policy",
      "platform": "google_play",
      "screenshots": [
        "https://play-lh.googleusercontent.com/4_x2XH6oemmQ0_d9X_k7sRvq_yQmrb3lUB4ZA7WNZCDhn_kQ9zRzZS2XffNEbBnVcDK-fCm-NowhjTs0VdQJcO8",
        "https://play-lh.googleusercontent.com/58H0BAGBiSYeRYK4pixVsgYyebULGiYM2S1mBgxTWCFfGS11wbO4uo0e9eF3JmtFWJ99xgnQEh3-ufpmVztj1Q",
        "https://play-lh.googleusercontent.com/Nwb7e4hd53oPd6WyCGKeT-4Q4yBwe4o7oDUdD6Lbpg3RZp-fpkgXceqIs6PLL1Xon8DaxMeZxPGn6XWB6JQDwG8"
      ],
      "rating_histogram": {
        "1": 2315,
        "2": 802,
        "3": 2315,
        "4": 7666,
        "5": 79668
      }
    }
  ],
  "next_page_token": …,
  "pagination": { … },
  "count": 20,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=google_play
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
