---
title: "Search the apps-intelligence dataset"
method: GET
path: "/datasets/apps/search"
tags: ["Datasets"]
---

# Search the apps-intelligence dataset

`GET /datasets/apps/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/datasets/apps/search`
- Auth: API key in header `x-api-key`

Searches resolved iOS App Store and Google Play apps stored in a search index. Store enum: `ios`, `android`, `both`. Platform enum (Apple device platforms, ios records only): `phone`, `pad`, `mac`, `tv`, `watch`, `vision`. Sort enum: `relevance`, `rating_desc`, `reviews_desc`, `installs_desc`, `updated_at_desc`, `popularity_desc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).

## Query parameters

- `q` string
- `store` 'ios' | 'android' | 'both'
- `platforms` string[]
- `category` string
- `country` string
- `developer` string
- `free` boolean
- `min_rating` number
- `min_reviews` integer
- `sort` 'relevance' | 'rating_desc' | 'reviews_desc' | 'installs_desc' | 'updated_at_desc' | 'popularity_desc'
- `page` integer
- `page_size` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- DatasetsAppsSearchResponseDoc
  - `code` integer
  - `data` DatasetsAppsSearchResponse
    - `dataset` string
    - `items` EsAppRecord[]
      - `android_max_installs` integer
      - `android_package` string
      - `app_uid` string
      - `category` string
      - `countries_available` string[]
      - `country` string
      - `currency` string
      - `developer` string
      - `developer_id` string
      - `discovery_sources` string[]: DiscoverySources lists the public catalogs that supplied this app ID.
      - `first_seen` string
      - `free` boolean
      - `icon_url` string
      - `ios_app_id` string
      - `ios_bundle_id` string
      - `last_crawled` string
      - `platforms` string[]: Platforms is the set of store-specific device platforms this app is confirmed on. iOS uses Apple's appPlatforms vocabulary (phone, pad, mac, tv, watch, vision). Android uses Google Play device-tab/source values (phone, tablet, tv, chromebook, watch, xr, car, windows). Empty means the record has not been classified by platform yet.
      - `popularity` integer: Popularity = ratings_count × score ("total rating weight"). Derived on write (recomputed every upsert), 0 for unrated apps. A proven-adoption ranking signal.
      - `price_cents` integer
      - `ratings_count` integer
      - `released_at` string
      - `score` number
      - `store` string
      - `title` string
      - `updated_at` string
      - `url` string
      - `version` string
    - `page` integer
    - `page_size` integer
    - `sort` string
    - `total` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
