> ## 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.

# Screenshots

> Download your live App Store screenshots into the repo, check their sizes and counts before you upload new ones, and measure a new set as an experiment.

Screenshots sell the app once someone lands on the product page. Appeeky Spec keeps a copy of your live App Store screenshots next to the listing, so you and your coding agent can see what is live, and it checks the sizes of a new set before you upload it.

## Download the live set

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
npx @appeeky/spec screenshots pull
# Downloaded 24 screenshots from version 2.4.1 (ready for sale)
```

| Option | Meaning |
| - | - |
| `--locale <locales...>` | Only these locales |

Screenshots come from the same App Store version that `pull` reads: the version you are preparing when there is one, otherwise the live version. Store access works the same as for the listing; see [Connect the stores](https://docs.appeeky.com/docs/spec-stores.md).

`screenshots pull` covers the App Store only.

## Where the files live

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
appeeky/screenshots/app-store/
  en-US/
    APP_IPHONE_67/
      01.png
      02.png
      03.png
    APP_IPAD_PRO_3GEN_129/
      01.png
  de-DE/
    APP_IPHONE_67/
      01.png
```

One folder per locale, one folder per display type inside it, and the screenshots numbered in store order. Pulled files are saved as PNG. Pulling again overwrites files with the same number. It does not delete extra files you added.

Commit the folder if you want the history of your screenshots in git, and pull requests that show old and new sets side by side.

## Check sizes and counts

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
npx @appeeky/spec screenshots check
```

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
error  App Store en-US APP_IPHONE_67  04.png is 1242×2688; APP_IPHONE_67 takes 1290×2796, 1320×2868, 1260×2736. (screenshots)
error  App Store de-DE APP_IPHONE_65  APP_IPHONE_65 has 11 screenshots; the limit is 10. (screenshots)
```

It reads every `.png`, `.jpg` and `.jpeg` file under `appeeky/screenshots/app-store/` and checks:

* **Count:** no more than 10 screenshots per display type.
* **Size:** the pixel size matches one the display type accepts. Landscape is fine: the same sizes turned sideways.

| Folder (display type) | Accepted portrait sizes |
| - | - |
| `APP_IPHONE_67` | 1290×2796, 1320×2868, 1260×2736 |
| `APP_IPHONE_65` | 1242×2688, 1284×2778 |
| `APP_IPHONE_61` | 1179×2556, 1206×2622, 1170×2532 |
| `APP_IPHONE_58` | 1125×2436, 1080×2340 |
| `APP_IPHONE_55` | 1242×2208 |
| `APP_IPAD_PRO_3GEN_129` | 2048×2732, 2064×2752 |
| `APP_IPAD_PRO_129` | 2048×2732 |
| `APP_IPAD_PRO_3GEN_11` | 1668×2388, 1640×2360 |

A folder with another name gets the count check only. Every problem is an error, and the command exits 1 when it finds one. With no `appeeky/screenshots/` folder, there is nothing to check.

`check` runs these screenshot checks too, together with the listing rules, so one command covers both:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
npx @appeeky/spec check
```

## Prepare a new set

1. Run `screenshots pull` to start from what is live.
2. Put the new images in the same folders, named in the order you want (`01.png`, `02.png`, …).
3. Run `screenshots check` and fix any size or count errors.
4. Open a pull request, so the team sees the new set before it ships.

## How screenshots relate to push

`push` sends listing text only. It does not upload screenshots, so screenshot errors do not stop a listing push; `push` prints them as a warning. The pull request report from the [GitHub Action](https://docs.appeeky.com/docs/spec-ci.md) lists screenshot errors next to the listing check and fails the check when there are any, so a bad set is caught before the merge.

Upload new screenshots with the [App Store Connect CLI](https://docs.appeeky.com/docs/store-cli-app-store-connect.md) or in App Store Connect.

## Measure a new set

A listing push is measured for you. A new screenshot set is not a listing push, so track it as an experiment with one metric, usually store conversion:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
npx @appeeky/spec experiment add \
  --type screenshots \
  --persona sleepless-parent \
  --hypothesis "Leading with the baby screen lifts conversion for parents" \
  --metric conversion \
  --store app-store --country us \
  --asset appeeky/screenshots/app-store/en-US/APP_IPHONE_67/
```

`conversion` (downloads ÷ product page views) is measured for you with `APPEEKY_API_KEY`: `experiment add` records the baseline, and `verify` closes the experiment when it is due. Upload the new set the day you start the experiment, so the before and after windows line up. See [Experiments](https://docs.appeeky.com/docs/spec-experiments.md).

Next: [Experiments](https://docs.appeeky.com/docs/spec-experiments.md) · [Write and check your listing](https://docs.appeeky.com/docs/spec-listing.md) · [Troubleshooting](https://docs.appeeky.com/docs/spec-troubleshooting.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.