Search the catalog (~5M apps in both stores) by app name or id.

GEThttps://api.appgoat.ai/v1/search
1 creditMCP tool search_appsoperationId searchApps

Exact title matches first, then prefix, then substring; most ratings first within each group.

Request

curl "https://api.appgoat.ai/v1/search?q=photo+editor&store=apple" \
  -H "x-api-key: $APPGOAT_API_KEY"

Query parameters

qstringrequired
App name (≥ 2 characters) or exact id.
store"apple" | "play"
categorystring
Store category name, e.g. Photo & Video (App Store) or PHOTOGRAPHY (Play).
limitinteger

Default 20

cursorstring
meta.next_cursor from the previous page.
fieldsstring
Comma list of top-level fields to return (identifiers are always kept), e.g. title,rating,version.

Response

200 with data: AppCard[]. See the envelope for meta.

storeStore
app_idstring
titlestring | null
developer_namestring | null
icon_urlstring | null
categorystring | null
ratingnumber | null
ratings_countinteger | null
installs_mininteger | null
Play install bucket lower bound.
pricenumber | null
Example
{
  "data": [
    {
      "store": "apple",
      "app_id": "324684580",
      "title": "Spotify: Music and Podcasts",
      "developer_name": "string",
      "icon_url": "string",
      "category": "string",
      "rating": 4.5,
      "ratings_count": 1,
      "installs_min": 1,
      "price": 4.5
    }
  ],
  "meta": {
    "credits_used": 1,
    "credits_remaining": 9981,
    "request_id": "req_123"
  }
}

Status codes

200
Matching apps.
A parameter is missing or invalid (error.param names it).
Missing or invalid API key.
insufficient_credits (the call costs more than you have left; nothing was done) or plan_limit (a feature of a higher plan).
Too many requests per second for your plan.