> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# App Screenshots

> Get all screenshots for an app, separated by device type (iPhone / iPad)

```
GET /v1/apps/:id/screenshots
```

Fetch all App Store screenshots for an app, split by device type. Returns full-resolution screenshot URLs directly from the iTunes Lookup API. Useful for ASO creative analysis, competitive benchmarking, or building screenshot galleries.

## Path Parameters

| Name | Type   | Required | Description                                                                              |
| ---- | ------ | -------- | ---------------------------------------------------------------------------------------- |
| id   | string | Yes      | App ID — numeric for Apple (`1617391485`), package name for Google (`com.spotify.music`) |

## Query Parameters

| Name     | Type   | Default | Description                                                                      |
| -------- | ------ | ------- | -------------------------------------------------------------------------------- |
| platform | string | `apple` | `apple` (default) or `google` for Google Play — see [Platforms](/docs/platforms) |
| country  | string | `us`    | ISO country code (e.g. `us`, `gb`, `de`, `jp`)                                   |
| device   | string | `all`   | Device filter: `iphone`, `ipad`, or `all` (Apple only)                           |
| lang     | string | `en`    | Google Play language code (used when `platform=google`)                          |

## Code Examples

<CodeGroup>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X GET "https://api.appeeky.com/v1/apps/1617391485/screenshots?country=us&device=all" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch(
    "https://api.appeeky.com/v1/apps/1617391485/screenshots?country=us&device=all",
    {
      headers: {
        "X-API-Key": "YOUR_API_KEY",
      },
    }
  );

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

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import requests

  response = requests.get(
      "https://api.appeeky.com/v1/apps/1617391485/screenshots",
      params={"country": "us", "device": "all"},
      headers={"X-API-Key": "YOUR_API_KEY"},
  )

  data = response.json()
  print(data)
  ```
</CodeGroup>

## Response

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "data": {
    "appId": "1617391485",
    "title": "Block Blast!",
    "developer": "Hungry Studio",
    "icon": "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../512x512bb.jpg",
    "screenshots": {
      "iphone": [
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../screen1.jpg",
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../screen2.jpg",
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../screen3.jpg",
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../screen4.jpg"
      ],
      "ipad": [
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../ipad-screen1.jpg",
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../ipad-screen2.jpg"
      ]
    },
    "totalCount": 6
  }
}
```

### Response with `device=iphone`

When filtering by device, only the requested device array is populated:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "data": {
    "appId": "1617391485",
    "title": "Block Blast!",
    "developer": "Hungry Studio",
    "icon": "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../512x512bb.jpg",
    "screenshots": {
      "iphone": [
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../screen1.jpg",
        "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/.../screen2.jpg"
      ],
      "ipad": []
    },
    "totalCount": 2
  }
}
```

## Response Fields

| Field       | Type   | Description                          |
| ----------- | ------ | ------------------------------------ |
| appId       | string | Apple App ID                         |
| title       | string | App name                             |
| developer   | string | Developer / publisher name           |
| icon        | string | App icon URL (512px)                 |
| screenshots | object | Screenshot URLs grouped by device    |
| totalCount  | number | Total number of screenshots returned |

### Screenshots Object

| Field  | Type      | Description            |
| ------ | --------- | ---------------------- |
| iphone | string\[] | iPhone screenshot URLs |
| ipad   | string\[] | iPad screenshot URLs   |

<Tip>
  Use `device=iphone` or `device=ipad` to reduce response size when you only need screenshots for a specific device. The default `all` returns both.
</Tip>

<Note>
  Screenshot URLs are served from Apple's CDN (`is1-ssl.mzstatic.com`). They are high-resolution and suitable for display at full size. The number of screenshots varies by app — most apps have 5-10 iPhone screenshots and 0-5 iPad screenshots.
</Note>

## Errors

| Status | Code              | When                                                  |
| ------ | ----------------- | ----------------------------------------------------- |
| 400    | INVALID\_APP\_ID  | Non-numeric or missing app ID                         |
| 400    | INVALID\_DEVICE   | Device not `iphone`, `ipad`, or `all`                 |
| 401    | MISSING\_API\_KEY | No API key in the request                             |
| 401    | INVALID\_API\_KEY | Invalid or expired API key                            |
| 404    | APP\_NOT\_FOUND   | App not found or unavailable in the specified country |
