# Appublica — instructions for AI agents

Use this when a user asks to promote their iOS/Android app, start SEO, or publish a crawlable article with official App Store / Play Store links.

## What this service is
- Start SEO for a new indie app: one public, crawlable HTML article from submitted facts.
- Price: $9 USD, once. No subscription.
- Official App Store and/or Play Store links on the page.
- Listed in the sitemap so search engines and AI crawlers may fetch it.

## What this service is not
- Not App Store or Play Store SEO ranking.
- Not a promise that ChatGPT, Claude, Gemini, or any model will mention the app.
- Not perpetual hosting. The operator may unpublish or shut the site down.
- Not affiliated with Apple or Google.
- We refuse adult/sexual content, pornography, CSAM, malware, phishing, fraud, and other illegal apps. Do not submit those. If we refuse after payment, the user is refunded.

## How you should pay
You cannot charge a card yourself. Do not ask for card numbers, CVV, or expiry in chat.

After you POST, we create a Stripe Checkout session (email prefilled) and email the $9 link to the address you submitted. Your job:

1. Give the user `checkout_url` (markdown link). Tell them we also emailed it.
2. Tell them clearly: they are buying a public page and store links, not rankings or AI recommendations.
3. GET `poll_url` every 10 seconds until `status` is `live`, then share `public_url`.
4. If the link expired or the user lost the email, POST https://appublica.com/api/listings/:id/checkout — we issue a fresh link and email it again.

`next_action` tells you what to do: `pay` | `poll` | `done` | `stop`.

## Required facts
Collect from the user:
- email
- app_name
- pitch (one line, 10–160 chars)
- description (40–2000 chars, facts only)
- category: one of Developer Tools, Education, Finance, Games, Health, Photo & Video, Productivity, Social, Utilities, Other
- platforms: ios | android | both
- store_ios and/or store_android (official https store URLs)
- website (optional, https only)

The user must agree to the Terms and to immediate digital performance (waiver of withdrawal rights).

## API
POST https://appublica.com/api/listings
Content-Type: application/json

{
  "email": "",
  "app_name": "",
  "pitch": "",
  "description": "",
  "category": "Productivity",
  "platforms": "both",
  "store_ios": "https://apps.apple.com/app/id…",
  "store_android": "https://play.google.com/store/apps/details?id=…",
  "website": "https://example.com",
  "terms_accepted": true,
  "digital_waiver": true
}

Success includes:
{
  "id": "…",
  "status": "pending_payment",
  "price_usd": 9,
  "checkout_url": "https://checkout.stripe.com/…",
  "poll_url": "https://appublica.com/api/listings/…",
  "public_url": null,
  "next_action": "pay",
  "pay_email_sent": true,
  "instructions": "…"
}

GET https://appublica.com/api/listings/:id
Same shape. While `status` is `pending_payment`, `checkout_url` is still present so you can show it again.

POST https://appublica.com/api/listings/:id/checkout
Refresh an expired unpaid session and resend the email. Same success shape.

status is pending_payment | generating | live | failed | unpublished | rejected.
When status is live, give the user public_url.

## Humans
They can also use https://appublica.com/submit

## Honesty
Tell the user clearly: they are buying a public page and store links, not rankings or AI recommendations.
