Pricing

Pay for the answers you publish, not for seats or tools. Every article gets its day-60 review.

Plans

Starter

Fits your volume

For a founder with one site.

$

On request

  • 1 site
  • 12 new articles a month
  • Day-60 review for every article
  • Title fixes on 20 existing pages
  • 25 AI questions, weekly, 2 engines
  • 2 seats, weekly email report
Start free trial

Growth

Recommended

For small teams growing two sites.

$

On request

  • 2 sites
  • 30 new articles a month
  • Day-60 review for every article
  • Title fixes on 100 existing pages
  • 100 AI questions, daily, 4 engines
  • Full autopilot, 5 seats, PDF reports
Start free trial

Agency

Fits your volume

For agencies running many client sites.

$

On request

  • 10 sites, more as an add-on
  • 120 articles a month, shared
  • Day-60 review for every article
  • Title fixes on 500 existing pages
  • 300 AI questions, daily, 4 engines
  • 15 seats, white-label reports
Start free trial

Enterprise

Fits your volume

For larger teams with custom needs.

$

On request

  • Everything in Agency
  • Single sign-on (SSO)
  • More AI engines
  • API access
  • Custom limits
  • Dedicated support
Talk to sales

Pricing is on request. Book a call with the founder for early access and founding-brand pricing.

14-day free trial

Try the whole loop before you pay.

14 days, not 7, because publishing and indexing take days. No card needed.

Start freeGo to app

What happens in the trial

Day 0
Question map and a baseline of where you stand
Days 1 to 14
3 answers written, checked and published for you
Day 10
A reminder before the trial ends
Day 14
Pick a plan, or the agents pause and your data is kept 30 days

Compare plans and features

No surprises. When you reach a limit, publishing pauses. We never charge you more without asking.

Plan comparison
FeatureStarter12 articles a monthGrowth30 articles a monthAgency120 articles a monthEnterpriseCustom
Content
Sites1210, more as an add-onCustom
New articles a month1230120, sharedCustom
Day-60 review for every article????
Title fixes on existing pages20 pages100 pages500 pagesCustom
All website platforms????
AI visibility
Tracked AI questions25, weekly100, daily300 shared, dailyCustom
AI engines244More
Control and team
Autonomy levels1 to 31 to 41 to 41 to 4
Seats2515 + client approversCustom
ReportsWeekly emailEmail and PDFWhite-label, scheduledCustom
Single sign-on and API×××?
SupportEmailPriority emailPriority and onboarding callDedicated

Add-ons

Need a little more?

Extra articles

$

On request / per article, any plan

Extra AI questions

$

On request / per 50 questions a month

Extra sites

$

On request / per site a month, Agency plan

Add-ons are priced on request. Ask during your early-access call.

Billing questions

Answered first.

What counts as an article?

One new published answer to one question. Title fixes, refreshes after a day-60 review and internal links don't use your limit.

What happens when I reach my limit?

Publishing pauses until next month, and we tell you before it happens. You can upgrade or add extras on request.

How do I get pricing?

All plans are priced on request. Book a call with the founder for early access and founding-brand pricing.

Can I change or cancel my plan?

Any time. You keep access until the end of the billing period, your articles stay on your site, and you can export your data.

; $('[data-price]', c).classList.add('is-request'); $('[data-per]', c).textContent = 'On request'; }); $$('[data-cur]', root).forEach(function (b) { b.setAttribute('aria-pressed', String(b.dataset.cur === cur)); }); $$('[data-bill]', root).forEach(function (b) { b.setAttribute('aria-pressed', String(b.dataset.bill === bill)); }); if (live) live.textContent = plans[sel].name + ' fits ' + plans[sel].label + ' articles a month.'; } range.addEventListener('input', render); ticks.forEach(function (t, k) { t.addEventListener('click', function () { range.value = k; render(); }); }); $$('[data-cur]', root).forEach(function (b) { b.addEventListener('click', function () { cur = b.dataset.cur; try { localStorage.setItem('fl-cur', cur); } catch (e) {} render(); }); }); $$('[data-bill]', root).forEach(function (b) { b.addEventListener('click', function () { bill = b.dataset.bill; render(); }); }); render(); // W7.8: live prices from GET /v1/public/plans (function loadPlans() { var meta = d.querySelector('meta[name="findable-api"]'); var base = (meta && meta.content) || window.FINDABLE_API_BASE || ((location.hostname === 'localhost' || location.hostname === '127.0.0.1') ? 'http://localhost:8000' : ''); base = String(base).replace(/\/$/, ''); function apply(items, currency) { (items || []).forEach(function (item) { if (item.amount_minor == null) return; var key = String(item.id || item.name || '').toLowerCase(); var p = plans.find(function (x) { return x.name.toLowerCase() === key || x.name.toLowerCase() === String(item.name || '').toLowerCase(); }); if (!p) return; var major = Math.round(Number(item.amount_minor) / 100); if (currency === 'INR') p.inr = major; else p.usd = major; }); render(); } fetch(base + '/v1/public/plans?currency=USD&period=monthly', { credentials: 'include' }) .then(function (r) { return r.ok ? r.json() : Promise.reject(); }) .then(function (body) { apply(body.items, 'USD'); }) .catch(function () {}); fetch(base + '/v1/public/plans?currency=INR&period=monthly', { credentials: 'include' }) .then(function (r) { return r.ok ? r.json() : Promise.reject(); }) .then(function (body) { apply(body.items, 'INR'); }) .catch(function () {}); })(); }); })();