Weekly Get the newsletter

Makers Submit your app

For makers

Submit your app with an AI agent

What it is

Your AI agent sends us your app for you, with the same details as our form. An editor reviews it like any other submission; nothing goes on the site by itself.

The prompt

Copy this into ChatGPT, Claude or any AI agent you use.

Please send my app to App Inquirer (appinquirer.com), a directory of apps. Follow the instructions at https://appinquirer.cowardly.dev/agents.md. Fill in what you can from my app's website or store page, such as the icon, description, screenshots, platforms, pricing and store links. Ask me for anything you need that you can't find: the link to my app, its name, my name, my email address, my studio or company name (optional), and whether I'd like the app considered for a story.

What your agent will ask you

Only what the form asks. It finds what it can and asks you for the rest; it shouldn't make anything up.

  • The link to your app: its App Store page or its website
  • The app's name
  • Your name
  • Your email address, which we use only to write to you about your app
  • Your studio or company name (optional)
  • Whether you'd like the app considered for a story (optional)

For developers and agents that can make web requests

POST https://appinquirer.cowardly.dev/api/submit
Content-Type: application/json

Send one request per app, with a JSON object of these fields:

  • app_url (required): the app's App Store page or website, starting https://
  • app_name (required): the app's name, written the way the maker writes it
  • name (required): the maker's name
  • email (required): the maker's email address, used only to write to them about the app
  • company (optional): the studio or company they publish under
  • wants_story (optional): whether they'd like the app considered for a story: true or false, default false

Also send what you can find

Collect these from the app's own website or store page. Never invent a value; leave out anything you can't find. Every URL must start with https://.

  • tagline: text, at most 80 characters: the app's own one-line pitch
  • description: plain text (no HTML), at most 3,000 characters
  • developer: text, at most 120: the developer or studio as the store shows it
  • website: https URL: the app's website
  • download_url: https URL: a direct download
  • icon_url: https URL to the icon image file itself (PNG, JPEG or WebP), ideally square and 512 px or larger
  • screenshots: array of at most 8 https URLs to screenshot images
  • video_url: https URL of a video on youtube.com, youtu.be or vimeo.com
  • platforms: array of any of mac, windows, linux, ios, ipados, android, web, watchos, tvos, visionos
  • store_links: object with any of app_store, mac_app_store, play, ms_store, steam, flathub, snap, fdroid (each an https URL), plus other: an array of at most 5 https URLs
  • pricing: free, subscription or one_time
  • free_trial: true or false: a free trial or a free version is available
  • category: text, at most 60: what kind of app it is
  • socials: object with any of x, instagram, tiktok, youtube, linkedin, mastodon, bluesky, threads, facebook, github (each an https URL)
  • first_comment: text, at most 1,000: the maker's own note on why they made it (ask the user; don't write it for them)
  • alternatives: array of at most 10 app names (at most 60 characters each) this app is an alternative to

Fields we don't know are ignored, never an error; the 201 answer lists their names in ignored so you can fix a typo.

{
  "app_url": "https://apps.apple.com/us/app/example/id123456789",
  "app_name": "Example",
  "name": "Ada Maker",
  "email": "ada@example.com",
  "company": "Example Studio",
  "wants_story": false,
  "tagline": "Plan your week in one glance",
  "icon_url": "https://example.com/images/icon-1024.png",
  "platforms": [
    "ios",
    "mac"
  ],
  "pricing": "subscription",
  "free_trial": true,
  "store_links": {
    "app_store": "https://apps.apple.com/us/app/example/id123456789"
  }
}

What comes back, as JSON:

  • 201 Received. Tell the user an editor will look at it, and that if they asked for a story we may follow up. ignored, when it's there, names fields we didn't recognize.
    {"ok":true,"message":"…","ignored":["…"]}
  • 400 Fix the named fields (an item is named like screenshots[2] or store_links.play), asking the user if you need to, and send again.
    {"ok":false,"errors":{"<field>":"<message>"}}
  • 413 The body is too large; keep it to 32 KB or less.
    {"ok":false,"error":"…"}
  • 415 Send JSON, with Content-Type: application/json.
    {"ok":false,"error":"…"}
  • 429 A daily limit was reached. Wait a day before trying again.
    {"ok":false,"error":"…"}
  • 503 Submissions are paused. Try again later, or use the form.
    {"ok":false,"error":"…"}

The same instructions, written for agents: https://appinquirer.cowardly.dev/agents.md

If your agent can only use a browser

It can fill in the form at https://appinquirer.cowardly.dev/submit.

Limits

We take up to 20 apps a day from one connection and from one email address, so please send each app once.

Privacy

We treat what your agent sends exactly like the form; our privacy policy says what we keep and why.