Plans & billing
I bill per domain, through Stripe. You pick a plan for each site you add, save a card once, and run a 15-day trial before anything is charged. The bill I show you is computed from your domains — the same rows I sync to Stripe — so what you see is exactly what you'll be invoiced.
Each domain carries its own tier. The tier sets a monthly conversation cap and which insights it unlocks — see chat for what counts as a conversation.
| Tier | Price | Conversations / mo | Insights |
|---|---|---|---|
| Starter | $34/mo | 2000 (free under 100) | Chat |
| Growth | $62/mo | 10000 | + AEO |
| Scale | $189/mo | 25000 | + GapRadar |
One subscription per organization. Each tier is a line item with a quantity — the number of your domains on that tier.
Starter is free up to 100 conversations a month — no card. A card is asked for only when you move a domain to a paid tier (Growth or Scale); Stripe's hosted Checkout collects it in setup mode (a card is stored, nothing is charged), and I stamp a 15-day trial on the first paid subscription.
Sign up. A personal organization is created for you automatically.
Use Starter free. Chat on a verified domain, up to 100 conversations/mo — no card.
Upgrade, save a card. Growth or Scale opens Stripe Checkout in setup mode — $0 today, 15-day trial.
First charge. Stripe invoices the saved card when the trial ends.
Your verified domains are the source of truth. Whenever one changes, a single function recomputes the Stripe line items from your domain rows — it never increments, it re-derives — so adding, deleting, or switching a plan just re-syncs.
The bill mirrors your domain rows — what I show is what Stripe invoices.
Stripe is the one place I touch the payments SDK. If a Stripe call fails, you see a friendly, plain message — never a stack trace — and the change is never blocked: the domain row is saved and the next sync squares up. A webhook mirrors subscription status changes back to me; it's public, and Stripe's signature is its authentication.
A Stripe failure never blocks a domain change. The row is saved either way, and the next sync reconciles the subscription.
Your organization is in good standing while its subscription status is one of these:
Fall out of good standing and the product pauses until you fix it — card, invoices, and cancellation all live in Stripe's customer portal.
An organization out of good standing has its domains stop crawling, and the chat answers a short paused line with no model call. Nothing is lost — restore good standing and both resume.