App Store API

App Store 搜索 API

Search the App Store for iOS apps by keyword, in any storefront country: app ID, title, developer, rating, ratings count, price, version, and more for each result.

POST/v1/run/appstore.search
可用率
100.00%
30d · 1 次调用
请求数
1
30d
响应时间
1.8s
中位数 · 30d

价格与服务商

App Store 搜索 API 价格:一个 API,3 个可互换的服务商

最便宜的服务商优先响应。如果它失败,下一个会在同一次调用中接手。

你需支付
US$8.50
US$0.85/千次请求,只为实际用量付费。没有月度套餐。
有了 US$0.10 的初始余额,你的前 117 次请求免费。

试一试

一个请求获取 App Store 搜索

requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `sizeBytes` or `updatedUtc`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on an app that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
打开于
获取免费密钥
示例响应
免费运行只返回前 3 条结果。为密钥充值即可获得完整响应。
{
  "data": {
    "items": [
      {
        "appId": "a1b2c3d4",
        "bundleId": "a1b2c3d4",
        "contentRating": "A short example description of this item.",
        "currency": "USD",
        "description": "A short example description of this item.",
        "developer": "example",
        "developerId": "a1b2c3d4",
        "genres": [
          "general"
        ],
        "image": "https://example.com/image.jpg",
        "languages": [
          "en"
        ],
        "minimumOsVersion": "example",
        "price": 19.99,
        "rating": 4.6,
        "ratingCount": 5,
        "releasedUtc": 12.5,
        "screenshots": [
          "example"
        ],
        "sizeBytes": 42,
        "title": "Example title",
        "updatedUtc": 12.5,
        "url": "https://example.com/page",
        "version": "example"
      }
    ]
  },
  "found": true,
  "reason": "not_found"
}

完整的参数与响应参考:这个接口的每个字段、类型和示例。

参考

一个请求,一种响应结构。

你发送的每个字段和收到的每个字段,都附有真实示例。

最近验证于 2026-10-16 · 可用率和延迟按 30d 统计

请求体

JSON,POST 到这个接口。

  • querystring

    minecraft

    Search keywords, as typed into the App Store search box (e.g. budget tracker).

  • countrystring

    us

    Two-letter App Store storefront country code to search (e.g. gb); results, prices, and currency follow that storefront.

  • limitinteger

    10

    Maximum number of apps to return (1-50, default 20).

  • requireFieldsarray

    Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `sizeBytes` or `updatedUtc`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on an app that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.

你发送。 一个简短的 JSON 请求体。显示的值只是示例,请换成你自己的。

响应

JSON,每个字段一个示例值。

each itemdata.items[]

Matching apps in App Store search order. Populated whenever the provider has data for the entity.

  • appIdstring

    Numeric App Store app ID; pass it to appstore.app for the full listing. Populated whenever the provider has data for the entity.

  • bundleIdstring可设为必填

    The app's bundle identifier.

  • contentRatingstring

    Age rating (e.g. 4+). Populated whenever the provider has data for the entity.

  • currencystring

    ISO 4217 currency code of the price (e.g. USD).

  • descriptionstring

    App description. Populated whenever the provider has data for the entity.

  • developerstring

    Developer name. Populated whenever the provider has data for the entity.

  • developerIdstring

    Numeric App Store developer ID. Populated whenever the provider has data for the entity.

  • genresstring[]

    App Store categories, primary first. Populated whenever the provider has data for the entity.

  • imagestring

    App icon image URL. Populated whenever the provider has data for the entity.

  • languagesstring[]

    Two-letter codes of the languages the app supports. Populated whenever the provider has data for the entity.

  • minimumOsVersionstring

    Minimum iOS version required. Populated whenever the provider has data for the entity.

  • pricenumber

    Price to download in the storefront's currency; 0 for a free app.

  • ratingnumber

    Average star rating, 0 to 5. Populated whenever the provider has data for the entity.

  • ratingCountinteger

    Number of star ratings (ratings, not written reviews). Populated whenever the provider has data for the entity.

  • releasedUtcnumber

    UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the app was first released. Populated whenever the provider has data for the entity.

  • screenshotsstring[]可设为必填

    iPhone screenshot image URLs.

  • sizeBytesinteger可设为必填

    Download size in bytes.

  • titlestring

    App name. Populated whenever the provider has data for the entity.

  • updatedUtcnumber可设为必填

    UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the current version was released.

  • urlstring

    App Store page URL. Populated whenever the provider has data for the entity.

  • versionstring

    Current version number. Populated whenever the provider has data for the entity.

top level
  • foundboolean

    True when at least one app was returned.

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

你收到。 字段有名称、有类型,无论哪个数据源响应,结构都一样。

常见问题

关于 App Store 搜索 API

AnyAPI 的 App Store 搜索 API 只需一次 POST 请求 /v1/run/appstore.search,就以统一格式的 JSON 返回 App Store 数据。Search the App Store for iOS apps by keyword, in any storefront country: app ID, title, developer, rating, ratings count, price, version, and more for each result.AnyAPI 会在 3 个数据源之间路由每个请求,某个数据源失败时自动切换。费用:每千次请求 US$0.85 起,以美元计价,无需订阅,也没有每月最低消费。过去 30 天,通过 AnyAPI 发起的 App Store 搜索 API 调用中有 100.0% 成功,响应时间中位数为 1.8 秒,共测量 1 次调用。

费用:每千次请求 US$0.85 起,以美元计价,无需订阅,也没有每月最低消费。你只需为一个美元钱包充值,每次调用从中扣费。部分由钱包付费的失败请求会产生处理费用,我们按成本原价转嫁,不加价;错误响应会显示收取的金额。

Search the App Store for iOS apps by keyword, in any storefront country: app ID, title, developer, rating, ratings count, price, version, and more for each result.响应是统一格式的 JSON,外层结构与每个 AnyAPI 接口相同,所以解析另一个接口只需换一个 URL,别的都不用改。

过去 30 天,通过 AnyAPI 发起的 App Store 搜索 API 调用中有 100.0% 成功,响应时间中位数为 1.8 秒,共测量 1 次调用。这些是 AnyAPI 对经过网关的流量的自有测量,持续重新计算,并非公开承诺的服务等级目标。

可以。新的 AnyAPI 账户自带 US$0.10 免费余额,无需绑卡,足够调用 117 次 App Store 搜索,每次 US$0.00085。

AnyAPI 会在同一个请求中依次尝试它的 3 个数据源,从最便宜的开始,所以一个数据源宕机不会让你的调用失败。

向 https://api.getanyapi.com/v1/run/appstore.search 发送 POST 请求,在 “Authorization: Bearer” 请求头中放入你的 AnyAPI 密钥,并以 JSON 请求体传入参数。同一个密钥和同一个钱包适用于所有 AnyAPI 接口。

不需要。你向一个预付费的 AnyAPI 余额充值美元,每个请求从中扣费。没有月度套餐,也没有最低消费,同一个余额可用于所有 AnyAPI 接口。

有。TypeScript 用 npm 安装 @getanyapi/sdk,Python 用 pip 安装 getanyapi。两者都用同一个密钥调用所有 AnyAPI 接口,任何 HTTP 客户端也都可以。

可以。智能体可以连接 https://api.getanyapi.com/mcp 上的 AnyAPI MCP 服务器,或者向 https://api.getanyapi.com/agent/signup 发送一次无需认证的 POST 来创建自己的免费试用密钥,再通过 HTTP 调用这个接口。