Skip to main content
Screenshots are the biggest part of an App Store listing and the only part asobeast could not read. This feature reads the caption text printed on them, keeps it with the snapshot it came from, and uses it in three places: the metadata page, keyword coverage and the change feed. It runs on the machine that hosts asobeast. It needs no OpenAI key, no account and no language data from the internet.

Does Apple read screenshot text?

Probably, a little, and Apple has not confirmed it. ASO practitioners reported in early June 2025 that apps started ranking for words that appear only in their screenshot captions, first measured by Appfigures and later repeated by Phiture and AppTweak. Apple has not documented screenshot text as an indexed field. A controlled test by ConsultMyApp of 64 caption phrases across eight apps found one phrase that ranked without an explanation in the title, subtitle or keyword field. Treat it as a weak, secondary signal. That is why asobeast shows it beside keyword coverage and never inside it: a keyword that only a screenshot caption mentions still counts as uncovered. The evidence and its limits are in App Store and Google Play.

What does it read?

The reader keeps the lines that are at least 55 percent as tall as the tallest confident line and at least 2 percent of the image height. A screenshot that shows only interface text reads as having no caption, which is correct. Every snapshot records its screenshots, so the caption belongs to the snapshot rather than to the app. When a screenshot has the same address as one already read, in your workspace or in anyone else’s, the reader reuses the result instead of reading the image again. Screenshots are public store data, so the reads are shared the same way keyword searches are.

How do market listings read their screenshots?

Every listing asobeast captures records its own screenshots: the home listing and each market listing, for your app and for every competitor. A market listing is captured when you track a keyword in a new market, in the daily run and when you refresh it, and while reading is on each capture queues its screenshots for reading like the home one. See What is a market listing? The extra reads cost CPU on the screenshots queue only. They spend no store request budget, because the images come from Apple’s image server, and a screenshot shared between markets is read once per language set.

What state can a screenshot be in?

A temporary problem, such as the image server being busy, is retried with growing delays and then recorded as could not read.

Which languages does it read?

A storefront reads English plus the language of the storefront: Japanese for jp, Korean for kr, Simplified Chinese for cn, Traditional Chinese for tw, hk and mo, Thai for th, Russian for ru, by and kz, Arabic for the Arabic speaking storefronts, and German, French, Spanish, Portuguese and Italian for the storefronts that speak them. Any other storefront reads English alone. The language packs ship inside the API image, so reading never downloads anything from the internet. Reading is most reliable on large, high contrast type on a plain or gradient background, which is what captions usually are. Decorative scripts, text on busy photographs and heavily rotated text may be missed or misread. Small differences between two reads of similar images do not create change events.

Where do you see the result?

  • Metadata page. The Screenshot captions card shows the screenshots in store order with the caption under each. See Optimize listing metadata.
  • Keyword coverage. A Screenshot text column marks the tracked keywords found in a caption and lists nothing else. A dashed circle marks a keyword whose listing has not been read yet, so it is never shown as missing from the captions. It does not change the Uncovered filter, the keyword field suggestion or the Action Center.
  • Changes. Replaced, added, removed and reordered screenshots, and edited captions, appear for your apps and your competitors. See Watch listing changes.
  • ASO audit. The check Keywords in captions answers from the read text when no AI analysis exists. See Score your listing.
The same data is available as GET /apps/{id}/screenshots, with country for a market listing that answers 404 until that listing was captured (see asobeast API), and the optional screenshotText fields of metadata_audit and the detail field of changes_timeline carry it to an agent (see MCP tool reference).

What does it cost?

How do you turn it off or narrow it?

Set SCREENSHOT_OCR=false to stop downloading and reading. Screenshots are still recorded with every snapshot and replaced or reordered screenshots are still detected, because that needs no reading. Set SCREENSHOT_OCR_LANGUAGES to a shorter list, such as eng,jpn, to read fewer languages. See Configuration reference.

Retention

Screenshot records leave with their snapshot, so RETENTION_SNAPSHOTS_DAYS governs them. The shared cache of read text is pruned nightly when no read has used an entry for 90 days.

Troubleshooting

  • Every screenshot says Not read. Check SCREENSHOT_OCR, and that the storefront has an enabled language pack. Google Play apps are never read.
  • The card says Reading for a long time. The reader runs one screenshot at a time. Open the queue dashboard at /admin/queues as the operator and look at the screenshots queue.
  • A caption is wrong or missing. Open the screenshot in the store at full size. Thin, decorative or low contrast lettering is the usual cause. The reader never changes your store listing, so nothing needs repair.
  • No caption change appeared after you edited captions. Changes are recorded after the snapshot is fully read, one snapshot later than the first import. They are skipped when a screenshot of either snapshot could not be read, because a missing read would otherwise look like a removed caption.
  • The API container restarts. See Capacity and limits for the memory ceiling.

Optimize listing metadata

Coverage across the indexed fields, and where screenshot text fits.

Watch listing changes

Screenshot and caption edits for your apps and your competitors.
Last modified on October 8, 2026