JOEYDocs

Plans and Pricing

Plans and limits

The numbers, in one table

PlanMonthly priceDaily textsDaily emailsDialer calls per day
Free$0252520
Green Pea$15010010050
Pro$200UnlimitedUnlimitedUnlimited
Pro Beast$500UnlimitedUnlimitedUnlimited
Concierge$1,000UnlimitedUnlimitedUnlimited

Solo ($100) is a grandfathered plan, no longer sold. Grandfathered Solo accounts get the same daily text and email caps as Green Pea (100 and 100) with no auto dialer access, matching what was true on Solo before it was retired.

A trap worth explaining, because the code itself flags it

JOEY's plan system stores two different things that can look identical from the outside: a plan slug (free, starter, most_value, pro, concierge) and an account type (free, trial, and others). Looked up by plan slug alone, the Free row is null, meaning uncapped. That is deliberate, not a bug: a live trial tenant is stored with plan='free' too, and a 0 or a real cap in that row would silently throttle every trial account in the fleet, an outage dressed as a safety feature.

The real Free-tier meter, 25 texts, 25 emails, 20 dialer calls a day, is resolved separately, by checking account_type === 'free' rather than the plan slug. This is why the table above states the Free row as 25 / 25 / 20 rather than "uncapped": citing the plan-slug row for a genuine Free account would publish a materially wrong number.

What "unlimited" means, and what it does not

null in the underlying limits table means no per-day usage cap. It does not mean unguarded. Every send on every plan, uncapped included, still passes through quiet hours, fail-closed suppression (never message a customer a coworker's note says is already handled), single-active sending (never zero, which is an outage, never duplicate, which is a double-send), and per-send rate limiting. Those are safety guards, not plan entitlements, and they are identical on every plan.

A cap that is published but not yet enforced

Green Pea's 50-calls-a-day dialer cap is a real number in the plan limits file, but the auto dialer's backend is still single-tenant: it reads one manual daily call cap from its own control file and defaults to unlimited. No per-tenant enforcement exists yet for this specific number. It is documented here as it is coded today rather than left silently implicit.

JOEY Virtual Machine (VPS) add-on

$39 per month. Included free on plans $500 per month and up. Limited-time promotion: every plan has VPS access at no extra charge until September. See Setup: run mode (VPS) for how to enable it.

Pay-as-you-go and API rates

Standard rates (shared inference): text $0.45, email $0.18, call $0.90, API request $0.04.

Pro Beast rates (dedicated inference, 2.5x the standard rate): text $1.13, email $0.45, call $2.25, API request $0.10.

See API and integrations for what "API request" actually means today.

Edit this pageEditar esta pagina Last reviewedUltima revision: 2026-09-02