> **For coding agents and LLMs:** This is one page from the Social Fetch docs (markdown export). For curated orientation and workflow guidance, start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for agent onboarding and crawl rules, use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for the full endpoint list with links to pages like this one, use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt); for one platform's parameters and curls, use [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt); use [`/llms.json`](https://www.socialfetch.dev/llms.json) when you need structured JSON for tool registration.

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/appid/get>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/appid/get.mdx>

## API base URL and authentication

- **API origin (from OpenAPI `servers`):** `https://api.socialfetch.dev`
- **Authentication:** send `x-api-key: sfk_...` on `/v1/**` and `/v2/**` routes unless the operation is explicitly anonymous (check OpenAPI `security`, the [API reference hub](https://www.socialfetch.dev/docs/api.mdx), [`/llms.txt`](https://www.socialfetch.dev/llms.txt), or [`/llms.json`](https://www.socialfetch.dev/llms.json) for each route).
- **OpenAPI JSON:** <https://www.socialfetch.dev/openapi.json>

## Recommended docs entrypoints (this site)

- [Documentation overview](https://www.socialfetch.dev/docs.mdx) — top-level orientation (markdown).
- [Quickstart](https://www.socialfetch.dev/docs/quickstart.mdx) — authenticate with `x-api-key`, validate auth with `whoami`, and understand the JSON envelope.
- [SDK](https://www.socialfetch.dev/docs/sdk.mdx) — official TypeScript SDK guide, including `SocialFetchClient`, `Result`, and `unwrap()`.
- [Capability matrix](https://www.socialfetch.dev/docs/capability-matrix.mdx) — every operation with identifiers, pagination, outcomes, media download, credits, and its SDK method. Generated from OpenAPI, so use it for route selection instead of scanning individual pages.
- [Recipes](https://www.socialfetch.dev/docs/recipes.mdx) — copyable workflows (brand monitoring, transcripts, Ad Library, creator scoring, Reddit research) with credit callouts and SDK examples.
- [Integrations](https://www.socialfetch.dev/docs/integrations.mdx) — MCP for AI clients, n8n verified node, Apify Store Actors, Make custom app, SDK, and REST API connection paths.
- [MCP product page](https://www.socialfetch.dev/mcp) — hosted MCP overview, OAuth, Skills install.
- [MCP integration](https://www.socialfetch.dev/docs/integrations/mcp.mdx) — hosted `/mcp` server, OAuth, Cursor/VS Code/Claude install snippets, 910 endpoint tools, plus docs_search/docs_read for implementation help.
- [n8n integration](https://www.socialfetch.dev/docs/integrations/n8n.mdx) — install `n8n-nodes-socialfetch`, credentials, and workflow examples.
- [Apify integration](https://www.socialfetch.dev/docs/integrations/apify.mdx) — Store Actors under @social-fetch, PPE billing, dataset export, and quick start.
- [Make integration](https://www.socialfetch.dev/docs/integrations/make.mdx) — custom app modules for Make scenarios, API key credentials, and module catalog.
- [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt) — every documented operation with a direct link to that route's agent-readable markdown page (prefer this over parsing OpenAPI).
- [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt) — per-platform endpoint files generated from OpenAPI (parameters, credits, curls).
- [`/agents.txt`](https://www.socialfetch.dev/agents.txt) — agent crawl/onboarding file with capabilities, auth rules, and allowlist.
- [`/llms.json`](https://www.socialfetch.dev/llms.json) — structured machine-readable operation inventory with parameter names, pagination, outcomes, credits, and SDK mapping.
- [API reference hub](https://www.socialfetch.dev/docs/api.mdx) — human-friendly index of operations with links into generated pages.
- [Errors](https://www.socialfetch.dev/docs/errors.mdx) — shared error envelope and HTTP status guidance.
- [Credits](https://www.socialfetch.dev/docs/credits.mdx) — metering, `402`, and planning batch jobs.
- Outcome semantics such as `found`, `not_found`, and `private` are documented in [Errors](https://www.socialfetch.dev/docs/errors.mdx) and on operation pages when present in the OpenAPI contract.

## Markdown docs convention

- Every docs page has a markdown twin: append **`.mdx`** to the docs pathname (for example `/docs/quickstart` → `/docs/quickstart.mdx`).
- Agents that send `Accept: text/markdown` on `/docs/**` HTML URLs may receive markdown directly (same URL, `Vary: Accept`).
- Published blog posts use the same convention: `/blog/{slug}` → `/blog/{slug}.mdx`, or `Accept: text/markdown` on the HTML URL (`Vary: Accept`).

---
# Get Apple App Store app (https://www.socialfetch.dev/docs/api/v1/apple-app-store/apps/appid/get)

## Summary

Get an Apple App Store app: price, ratings, version, genres, screenshots and more, by app id or bundle id.

**Tags:** `Apple App Store`

## HTTP

- **Method:** GET
- **Path:** `/v1/apple-app-store/apps/{appId}`
- **Base URL:** `https://api.socialfetch.dev`

## Capability summary

- **SDK mapping:** `client.appleAppStore.getApp({ appId: "284882215" })`
- **Accepted identifiers:** `appId` (path)
- **Pagination:** none
- **Business outcome field:** `data.lookupStatus` with values `found`, `not_found`

## Credits

- **Base:** 1 credit per successful lookup.
- **Maximum on success (200):** 1 credit.
- **Failed requests (`lookup_failed`, `503`):** not charged.
- **Authoritative field:** `meta.creditsCharged`.

## Authentication

- **`x-api-key`**: API key (`sfk_...`)

## Parameters

### `appId` (path)

- **Required:** yes
- **Constraints:** type `string`; minLength: 1; maxLength: 155
- **Description:** App Store app id (digits, e.g. `284882215`) or bundle id (e.g. `com.facebook.Facebook`). An id with the `id` prefix used in App Store links (`id284882215`) is also accepted.

### `country` (query)

- **Required:** no
- **Constraints:** type `string`; pattern: `^[a-zA-Z]{2}$`
- **Description:** Two-letter storefront code, e.g. `us`, `gb` or `jp`, case-insensitive. Prices, ratings, reviews and text are specific to it. A code Apple does not run a store for is refused. Default: `us`.

### `language` (query)

- **Required:** no
- **Constraints:** type `string`; pattern: `^[a-z]{2}[-_][a-z]{2}$`
- **Description:** Language of the text, as `ll-cc`, e.g. `es-mx` or `ja-jp`. Changes the language of descriptions and price labels inside the storefront. Default: the storefront's own language.

## Responses (status codes)

- **200**: App Store app.
- **400**: Invalid request
- **401**: Missing or invalid API key
- **402**: Insufficient credits
- **500**: Unexpected or billing error
- **502**: Lookup could not be completed.
- **503**: Service temporarily unavailable; safe to retry with backoff.

## Response body (200)

App Store app.

### Field outline

- **data** (required) — type `object`. Endpoint-specific response payload.
  - **lookupStatus** (required) — type `string`; enum: found, not_found. `not_found` when the app, developer or storefront has no match. An app removed from the store, one that never existed and one not offered in this storefront all look the same.
  - **storefront** (required) — type `string`. Storefront (country) the record is for.
  - **app** (required) — type `object`; nullable. The app; null when `lookupStatus` is `not_found`.
    - **id** (required) — type `integer`. App Store app id.
    - **bundleId** (required) — type `string`. Bundle id, e.g. `com.facebook.Facebook`.
    - **name** (required) — type `string`. App name.
    - **url** (required) — type `string`. The app's App Store page.
    - **platforms** (required) — type `array`. `ios` for iPhone and iPad apps, `mac` for Mac apps.
      - _items:_
        - type `string`; enum: ios, mac
    - **deviceFamilies** (required) — type `array`. Device families the app supports. Empty for Mac apps. An iPad-only app lists just `ipad`.
      - _items:_
        - type `string`; enum: iphone, ipad, ipod
    - **developer** (required) — type `object`. The developer an app is published under.
      - **id** (required) — type `integer`. App Store developer id.
      - **name** (required) — type `string`. Developer name.
      - **url** (required) — type `string`; nullable. The developer's App Store page.
    - **seller** (required) — type `object`. The seller of record.
      - **name** (required) — type `string`. Legal seller name. Differs from the developer name for about a third of apps.
      - **url** (required) — type `string`; nullable. The seller's website; null when none is listed.
    - **price** (required) — type `object`. Price of the app in this storefront.
      - **amount** (required) — type `number`; nullable. Price in the storefront currency; 0 for free apps. Null when Apple lists no price (some Apple Arcade games).
      - **currency** (required) — type `string`; nullable. ISO 4217 currency code.
      - **formatted** (required) — type `string`; nullable. Price as the App Store displays it, in the storefront language, e.g. `Free` or `$4.99`.
    - **ratings** (required) — type `object`. Star ratings in this storefront. Apple keeps one count per storefront; there is no worldwide total.
      - **average** (required) — type `number`; nullable. Average star rating (0 to 5); null when nobody has rated.
      - **count** (required) — type `integer`. Number of ratings in this storefront; 0 when none.
      - **currentVersion** (required) — type `object`. Ratings that apply to the current version only.
    - **ageRating** (required) — type `string`; nullable. Age rating such as `4+` or `17+`. The app route and the details route return the current store tier when it is available; app records inside list responses can still carry Apple's older tier.
    - **contentAdvisories** (required) — type `array`. Content descriptors behind the age rating, in the storefront language.
      - _items:_
        - type `string`
    - **genres** (required) — type `array`. All genres.
      - _items:_
    - **primaryGenre** (required) — type `object`; nullable. An App Store genre (category).
      - **id** (required) — type `integer`. App Store genre id, e.g. `6005`.
      - **name** (required) — type `string`. Genre name in the storefront language.
    - **currentVersion** (required) — type `object`. The version currently on sale.
      - **version** (required) — type `string`. Version string.
      - **releasedAt** (required) — type `string`; nullable. When this version was released (ISO-8601).
      - **notes** (required) — type `string`; nullable. Release notes; null when the developer wrote none.
    - **releasedAt** (required) — type `string`; nullable. When the app first went on sale (ISO-8601).
    - **minimumOsVersion** (required) — type `string`; nullable. Lowest OS version that runs the app.
    - **fileSizeBytes** (required) — type `integer`; nullable. Download size in bytes.
    - **languages** (required) — type `array`. Language codes the app supports, as Apple lists them (e.g. `EN`, `ZH`).
      - _items:_
        - type `string`
    - **features** (required) — type `array`. Feature flags Apple lists, e.g. `iosUniversal`, `gameCenter`.
      - _items:_
        - type `string`
    - **gameCenter** (required) — type `boolean`. Whether the app supports Game Center.
    - **supportsDeviceLicensing** (required) — type `boolean`. Whether Apple Business Manager can license it per device.
    - **description** (required) — type `string`; nullable. Store description (up to 4,000 characters).
    - **icon** (required) — type `object`. Icon image URLs hosted by Apple.
      - **url60** (required) — type `string`; nullable. 60 px icon.
      - **url100** (required) — type `string`; nullable. 100 px icon.
      - **url512** (required) — type `string`; nullable. 512 px icon.
    - **screenshots** (required) — type `object`. Screenshot URLs hosted by Apple.
      - **iphone** (required) — type `array`. iPhone screenshots.
        - _items:_
          - type `string`
      - **ipad** (required) — type `array`. iPad screenshots.
        - _items:_
          - type `string`
      - **appleTv** (required) — type `array`. Apple TV screenshots.
        - _items:_
          - type `string`
      - **mac** (required) — type `array`. Mac screenshots.
        - _items:_
          - type `string`
- **meta** (required) — type `object`. Metadata describing the request and billing outcome.
  - **requestId** (required) — type `string`; minLength: 1. Unique request identifier for tracing this API call.
  - **creditsCharged** (required) — type `integer`; minimum: 0. Credits charged for this request.
  - **version** (required) — type `string`; enum: v1. Public API version that served the response.

### Example JSON (found)

```json
{
  "data": {
    "lookupStatus": "found",
    "storefront": "us",
    "app": {
      "id": 284882215,
      "bundleId": "com.facebook.Facebook",
      "name": "Facebook",
      "url": "https://apps.apple.com/us/app/facebook/id284882215",
      "platforms": [
        "ios"
      ],
      "deviceFamilies": [
        "iphone"
      ],
      "developer": {
        "id": 284882218,
        "name": "Meta Platforms, Inc.",
        "url": "https://apps.apple.com/us/developer/meta-platforms-inc/id284882218"
      },
      "seller": {
        "name": "Meta Platforms, Inc.",
        "url": "http://www.facebook.com/mobile"
      },
      "price": {
        "amount": 0,
        "currency": "USD",
        "formatted": "Free"
      },
      "ratings": {
        "average": 4.52674,
        "count": 29069829,
        "currentVersion": {
          "average": 4.52674,
          "count": 29069829
        }
      },
      "ageRating": "13+",
      "contentAdvisories": [
        "Infrequent/Mild Profanity or Crude Humor"
      ],
      "genres": [
        {
          "id": 6005,
          "name": "Social Networking"
        }
      ],
      "primaryGenre": {
        "id": 6005,
        "name": "Social Networking"
      },
      "currentVersion": {
        "version": "586.0.0",
        "releasedAt": "2026-11-04T18:21:38.000Z",
        "notes": "Our teams have solved many crashes, fixed issues you’ve reported and made the app faster."
      },
      "releasedAt": "2019-02-05T08:00:00.000Z",
      "minimumOsVersion": "15.1",
      "fileSizeBytes": 547838976,
      "languages": [
        "AR"
      ],
      "features": [
        "iosUniversal"
      ],
      "gameCenter": false,
      "supportsDeviceLicensing": true,
      "description": "Where real people propel your curiosity. Whether you’re thrifting gear, showing reels to that group who gets it, or sharing laughs over fun images reimagined by AI, Facebook helps you make things happen like no other social network.\n\nExplore and expand your interests: \n* Shop Marketplace for hidden gems and take your …",
      "icon": {
        "url60": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/4e/fe/ae/4efeae89-e950-1030-417b-f904101c1b1a/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/60x60bb.jpg",
        "url100": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/4e/fe/ae/4efeae89-e950-1030-417b-f904101c1b1a/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/100x100bb.jpg",
        "url512": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/4e/fe/ae/4efeae89-e950-1030-417b-f904101c1b1a/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.jpg"
      },
      "screenshots": {
        "iphone": [
          "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/ec/d3/9c/ecd39c66-4b07-f453-c811-6513d6e05e8d/1-iOS-Marketplace.png/320x480bb.jpg"
        ],
        "ipad": [
          "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/c5/65/da/c565da12-1bbe-8139-9f75-80701690d21d/iPad2-Marketplace.png/576x768bb.png"
        ],
        "appleTv": [],
        "mac": []
      }
    }
  },
  "meta": {
    "requestId": "req_bd61a3cd-be19-48b6-8fb6-03cc32b6b223",
    "creditsCharged": 1,
    "version": "v1"
  }
}
```

### Machine-readable error codes

When an error JSON body is returned, it may include one of these `error.code` values (derived from the OpenAPI schemas for this operation; additional codes may exist at runtime):

- `bad_request`

## Error handling & retries

Interpret HTTP status codes using the descriptions below. Do not assume a JSON body unless the OpenAPI schema defines one for that status.

- **400**: Invalid request **Retry:** Fix the request; retrying the same invalid payload will not help.
- **401**: Missing or invalid API key **Retry:** Fix the API key first; retrying without changes will not help.
- **402**: Insufficient credits **Retry:** Do not retry without resolving billing/credits (retrying the same request will not help).
- **500**: Unexpected or billing error
- **502**: Lookup could not be completed. **Retry:** May be transient; a few retries with backoff are reasonable.
- **503**: Service temporarily unavailable; safe to retry with backoff. **Retry:** Usually safe to retry with exponential backoff and jitter.

### Suggested client defaults

- Send the API key using the `x-api-key` header on every request.
- On `503` (and sometimes `502`), retry with backoff; cap retries and surface a clear error to the user.
- On `402`, surface an actionable billing message rather than blind retries.

## Examples

### TypeScript SDK

```typescript
import { SocialFetchClient } from "@socialfetch/sdk";

const client = new SocialFetchClient({
  apiKey: process.env.SOCIALFETCH_API_KEY!,
});

const result = await client.appleAppStore.getApp({
  appId: "284882215",
});

if (!result.ok) {
  console.error(result.error);
} else {
  console.log(result.value.data);
}
```

### Node.js

```javascript
const response = await fetch(
  "https://api.socialfetch.dev/v1/apple-app-store/apps/284882215",
  {
    headers: {
      "x-api-key": "YOUR_API_KEY"
    }
  }
);

const data = await response.json();
console.log(data);
```

### cURL

```bash
curl "https://api.socialfetch.dev/v1/apple-app-store/apps/284882215" \
  -H "x-api-key: YOUR_API_KEY"
```

### Python

```python
import requests

response = requests.get(
    "https://api.socialfetch.dev/v1/apple-app-store/apps/284882215",
    headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()
print(data)
```