App-ads.txt tells you which accounts an app publisher authorizes. You still need the catalog: which titles exist, who publishes them, what Play Data Safety or Apple App Privacy says, and how CTV channels sit next to mobile packages.
DecryptAds keeps an ingested app store catalog under Research → App store catalog (decryptads.com/apps). When the same store id shows up in crawls, rows join to app-ads.txt on publisher profiles.
Store overview
We cover five stores:
- Google Play — packages, installs, ratings, Play Data Safety
- Apple App Store — numeric App Store ids, Apple App Privacy
- Roku — channel ids; privacy / support / terms / store URLs when we have them
- Fire TV — ASINs with the same developer and legal-URL fields
- Samsung TV — Smart TV appIds in the same table as everything else
Filter Store to Roku, Fire TV, or Samsung TV, or search a known channel id / ASIN / appId with exact store id. Expand a row when app-ads.txt only gives you an opaque store id and you need the readable channel name and legal links.
App risk score
Listings get a 0–100 app risk score with the same bands as hostname Auto-Investigate: low, medium, high, critical. Use it to prioritize review — not as a store-policy ruling.
It draws on four areas:
- Disclosure — what the store privacy label says is collected, shared, or tracked
- Supply — app-ads.txt coverage, DIRECT mix, OWNERDOMAIN alignment
- Jurisdiction — where DIRECT partners on that file are registered
- Listing & portfolio — missing or shared legal URLs, thin contact, oversized developer portfolios
The results table has an App risk column. Expand a row (or open an exact store-id match) for the gauge. Details: /help/#apps.
Search and filters
Top of the page:
- Query — app name, developer name / id, or store id (substring by default)
- Store — all stores, or Play / Apple / Roku / Fire TV / Samsung TV
- Exact store id only — package names, Apple ids, Roku channel ids, Fire ASINs, Samsung TV appIds
Filters cover category and developer website/email; privacy / terms / support / app-ads.txt URLs;
privacy-label status; disclosure types (shared, collected, tracked, linked, not_linked);
privacy category / data type / purpose; security practices; rating or install floors.
Expandable rows: store, name, app risk, developer, website, rating on the summary;
store id, legal URLs, installs, and CTV fields in the detail. Export CSV or JSON.
API: GET /store_apps/search.
Example: kids apps that share location
Find titles that look child-directed but declare shared location on Google Play:
- Query:
kids - Store: Google Play
- Disclosure: shared
- Privacy category: Location
- Label status: ok
Or open
/apps?q=kids&store=google&disclosure=shared&privacy_category=Location&privacy_status=ok.
Expand a row for the label table. Treat disclosures as the publisher’s statements,
then check the live listing before you act.
Filters panel
Listing fields, legal URL checks, privacy labels, and scale controls sit in one panel. Stack them — for example ad-supported kids titles missing a privacy URL, or high-install Play apps that track Device ID for advertising. Raise the result limit if the query is capped.
Try it
Research → App store catalog · header search mode App store catalog · Help: /help/#apps
The catalog is read-only from ingested scrapes and bulk files; the API does not live-query storefronts for missing rows. Broader product overview: What DecryptAds analyzes.