Billing and Plans

Plan comparison

Feature Free Solo Agency
Monthly price $0 $29 $79
Active intakes 1 15 60
Items per intake 10 Unlimited Unlimited
Seats 1 1 3
Storage 1 GB 25 GB 100 GB
API rate limit 60 req/h 600 req/h 3,000 req/h
Secrets vault No Yes Yes
Item revisions No Yes Yes
SMS reminders No No Yes (with credits)
Custom branding "Powered by BriefGate" Your logo + colors + Custom portal domain
Custom sending domain No No Yes
Chase schedules default, off All (gentle/default/aggressive/off) All
Templates 3 public 3 public + custom 3 public + custom + team-shared
Support Community Email, 48h Priority email, 24h
Annual billing $23.20/mo (–20%) $63.20/mo (–20%)

Annual billing is charged as a single upfront payment. The per-month figures above show the effective monthly cost.

Add-ons

Available on Solo and Agency plans:

Add-on Price
SMS credits $5 / 50 messages
Extra storage +50 GB for $5/month
Additional Agency seat +$15/seat/month

SMS credits are consumed per message sent (one reminder = one credit). Credits do not expire.

Upgrading

Start a checkout session via API:

POST /v1/billing/checkout
json
{
  "plan": "solo",
  "period": "monthly"
}

Response:

json
{
  "checkout_url": "https://checkout.stripe.com/c/pay/cs_live_..."
}

Redirect the user (or open the URL in a browser) to complete payment via Stripe. After payment, the plan is active immediately and existing intakes are not affected.

For annual billing, set "period": "yearly".

Managing your subscription

Open the Stripe Customer Portal to change plan, update payment method, or cancel:

POST /v1/billing/portal

Response:

json
{
  "portal_url": "https://billing.stripe.com/session/..."
}

Portal sessions expire after 5 minutes. Generate a new one if the user does not use it in time.

Checking usage

GET /v1/usage

Returns current period usage against your plan limits:

json
{
  "tier": "solo",
  "period_start": "2026-07-01T00:00:00Z",
  "period_end": "2026-08-01T00:00:00Z",
  "active_intakes": {
    "used": 7,
    "limit": 15
  },
  "storage_bytes": {
    "used": 3221225472,
    "limit": 26843545600
  },
  "rate_limit_per_hour": 600
}

active_intakes counts intakes in pending, in_progress, or revision_requested status. Completed and archived intakes do not count toward the limit.

Machine-readable pricing

Agents can fetch current pricing without scraping the landing page:

GET https://api.briefgate.dev/pricing.json

No authentication required. Returns the TIER_LIMITS object with all plan features and numeric limits. The response is cache-friendly (ETag + Last-Modified headers).

Data retention

PATCH /v1/account
{"retention_days": 365}

Valid range: 1 to 3650 days.

DELETE /v1/intakes/:id

This is irreversible. The intake, all submitted values, all files, and all chase history are removed.

For full account deletion, contact support. All data is removed within 30 days.