ALL SYSTEMS · NOMINAL
UTC --:--:--
Docs·Getting started·Plans & pricing

Plans & pricing

Four tiers, one engine. The numbers below are the source-of-truth contract — rate-limiter caps and Stripe metered overage rates derive from the same data.

Plan tiers

Each tier sets a monthly quota included in the canone + an overage rate per 1,000 calls past quota. Overage is billed via Stripe metered usage (one event per scored request).

TierMonthly feeQuota includedOverageDaily cap
FreeFree1,000 / monthHard cap50 / day
Starter€49 / mo50,000 / month€1.50 / 1k calls5,000 / day
Pro€249 / mo500,000 / month€0.80 / 1k calls50,000 / day
ScaleCustomUnlimitedContractedNone

Overage billing

Past the monthly quota, every scored request hits Stripe metered billing with a graduated tier (first N at €0, then the per-1k rate). Free is hard-capped — once the 1,000 calls included are spent, the API returns 429 RATE_LIMITED until the next month rolls over. No surprise bills on Free.

Want to forecast your monthly bill? Open the usage dashboard in your tenant portal — it surfaces your current spend vs the included quota in real time.

Daily safety cap

Independent of the monthly quota, every tier has a per-day safety cap that catches runaway-loop bugs before they melt your bill. Hitting it returns 429 RATE_LIMITED until 00:00 UTC. The cap is set generously above what 1/30th of the monthly quota would imply — burst days are fine, infinite loops aren't.

LLM token budget

The intelligence endpoints draw from a separate monthly token allowance, not the scoring quota:

  • Free + Starter — no LLM access (the endpoints return 402 PAYMENT_REQUIRED).
  • Pro — 500,000 tokens / month. Roughly 500–1,000 explain calls or 100–200 briefings, depending on slot count and locale.
  • Scale — 5,000,000 tokens / month. Plus access to /v1/intelligence/edge-case (Pro doesn't carry it).

Budget resets the 1st of each month UTC. Past quota the API returns 429 LLM_BUDGET_EXCEEDED until the reset. The usage dashboard surfaces remaining tokens alongside the API call count.

Endpoint unlocks

Higher tiers unlock additional surface area. A 402 PAYMENT_REQUIRED response means the endpoint exists but your tenant's plan doesn't include it.

Free
  • POST /v1/score
  • POST /v1/score/series
  • POST /v1/score/multi
Starter
  • Everything in Free
  • POST /v1/score/:id/outcome
Pro
  • Everything in Starter
  • POST /v1/intelligence/explain + briefing (LLM, 500k tokens/mo)
  • POST /v1/score/historical (ERA5 reanalysis, up to 20 years)
  • POST /v1/score/portfolio (up to 10 spots)
  • POST /v1/score/explain-counterfactual
  • POST /v1/decision (personalized agent)
  • POST /v1/observations + station registry (data assimilation)
  • Probabilistic ensemble scoring (30 members)
  • Stormglass priority chain (consensus blending)
Scale
  • Everything in Pro
  • POST /v1/intelligence/edge-case (heavier model, deeper passes)
  • Higher LLM budget (5M tokens/mo, up from 500k)
  • POST /v1/score/portfolio up to 50 spots
  • POST /v1/score/historical unlimited years
  • POST /v1/projections (CMIP6 + CORDEX climate)
  • POST /v1/projections/portfolio + adaptation-report
  • POST /v1/underwriting/quote + bind + evaluate (parametric)
  • Probabilistic ensemble scoring (50 members)
  • Dedicated tenant catalog + private profiles

Upgrading

Upgrade from the tenant portal at console.goable.io/portal/billing. Stripe Checkout handles card collection; you're on the new plan within seconds of payment confirmation. Downgrades and card management flow through the Stripe Customer Portal, reachable from the same page.

Billing happens entirely through the tenant portal. There is no tenant-callable upgrade endpoint on the public API — plan changes are an operator decision, not programmatic. Same for the Customer Portal: you open it from the console, then Stripe takes over.