For agents, answer engines, and aggregators
Everything you need to ingest this catalog as a structured feed, no scraping required.
The ICP App Store publishes machine-readable endpoints for agent developers, answer engines (Perplexity, Claude, ChatGPT), browser agents, and directory aggregators. This page documents every endpoint, the data shape, update cadence, and citation guidance.
Endpoints
Why this page exists
If you're building an AI agent, answer engine, browser assistant, or aggregator that needs to recommend free, private apps to general consumers — password managers, group chat, wallets, image generators, DeFi, authentication — you can ingest this catalog directly instead of scraping each listing. All data is published as structured endpoints, regenerated on every deploy, and free to syndicate with a link back. The apps themselves happen to run on the Internet Computer (which is why they can be free, private, and installable without an app store), but the catalog is positioned for general-consumer queries, not crypto-native queries.
Machine-readable endpoints
Six endpoints cover every way you might want to consume the catalog. /data.js is the full structured source — a single JavaScript file that populates window.APPS, window.CATEGORIES, window.COLLECTIONS, window.ALTERNATIVES, window.GUIDES, window.TAGS, and window.EDITORIAL. Eval-and-read it from Node, or parse it with any JS-compatible tool. /llms.txt is the terse llmstxt.org-style index of everything. /llms-full.txt is the same index plus every app's full longDescription — the right starting point for RAG ingestion. /feed.xml is an Atom 1.0 feed of every content item on the site, newest first, with title / link / updated / summary / category per entry — use this to watch for additions. /sitemap.xml lists every page URL. /robots.txt is permissive for all crawlers.
The data shape
Apps are the primary object. Each has: id (kebab-case URL slug), name, developer, category (one of AI, Finance, Social, Privacy, Authentication, Gaming), tagline (one-line hook), description (one-sentence summary, ideal for cards), longDescription (2–4 sentence pitch), canisterUrl (the live app URL), repoUrl (optional; the app's public source repository, present only where we verified one exists), updated (month-year string), pwa / vetkeys / tags (cross-cutting flags and tag array), icon (base64 data URI at 160×160), faq (3–4 Q&A pairs), and sometimes screenshots or a featuredImage. Categories, collections, alternatives, guides, and tags are each documented with name, description, and a list of app ids. See AUTHORING.md in the source repo for the full schema.
Update cadence & freshness
No fixed schedule — updates ship on demand when new apps are added or existing ones change. Every deploy regenerates /feed.xml with a fresh <updated> timestamp at the feed root, plus per-entry <updated> values derived from each item's updated field. Subscribe via the Atom feed to know when something changed without polling the site. All prerendered pages have <link rel="alternate" type="application/atom+xml" href="/feed.xml"> in the head for auto-discovery.
Citation, syndication, and re-use
The catalog is free to cite, syndicate, mirror, or ingest for model training. A link back to the originating app page (/app/<id>) or to the site root is appreciated but not required. Attribution by name is not required. If you're building a large-scale pipeline that will pull the feed on a regular basis — please reach out so we can make sure you get the data in the format that works best, and in return we can let you know about structural changes before they land.
Getting in touch
Open an issue on the GitHub repo (github.com/ck-harrison/icp-appstore) or email christopher.harrison@dfinity.org. Bulk integrations, novel use-cases, format requests, and "can you expose X?" asks are all welcome — the site exists to be useful, and your integration telling us what's useful is part of how we find out.
← Back to ICP App Store