Skip to main content
DecimalAI is free to start. You pay only when you exceed the Free tier’s monthly quotas or need a higher-tier feature. For the customer-facing version with current dollar amounts, see decimal.ai/pricing. This page is the source of truth for what each plan technically allows — quotas, rate limits, gated features, and enforcement behavior.

Plan tiers

FreeCore ($49)Pro ($199)Enterprise
Monthly traces ingested5,00010,000100,000Custom
Monthly SFT rows built5005,00050,000Custom
Monthly LLM-judge calls1001,00010,000Custom
Monthly benchmark cases (hosted, verified)1001,0005,00025,000
Agents1310Unlimited
Skills in org1050250Unlimited
Workspaces1310Unlimited
Members1525Unlimited
API keys21050Unlimited
Data retention14 days30 days90 days365 days
SupportCommunityEmailEmail + SlackDedicated + SLA

Skills registry features

The skills layer — registry browse, install, smart routing, and observability — is the wedge feature; Free is generous on purpose. Capabilities gated to paid tiers focus on publishing, analytics, and team workflow.
CapabilityFreeCoreProEnterprise
Browse public registry (no signup)
decimalai skills pull <slug> — read a skill, no auth
Install (fork) registry skills
Create your own skills (within skill cap)
router.get_menu() — static skill menu
router.smart_route() — semantic + effectiveness rank
Public skill dashboards + OG cards + embed widget
Version diff viewer (public registry)
Per-model effectiveness on public registry skills
Publish your skills to the public registry
Per-model effectiveness on your org’s forks
analytics/compare — A/B two versions
analytics/leaderboard — rank your skills
Weekly skill degradation digest email
Per-agent skill bundle assignment
Named bundle templates
Skill audit log
Org-private registry (workspace-only visibility)
Private registry (skills never on api.decimal.ai)
BYO embedder for smart_route
SSO for registry access
Gating behavior — soft today, hard later. Free-tier callers can still invoke the paid feature endpoints today; responses include an X-Plan-Upgrade-Required: core header so you can see what your team needs before upgrading. Future cutover to hard 402 enforcement will be announced in the changelog.

Rate limits

Per plan, applied per API key:
PlanRPMBurst
Free6010
Core12020
Pro30050
Enterprise1,000+200+
When you hit a limit, responses return 429 Too Many Requests with a Retry-After header. The SDK respects this automatically; see Errors for direct-API behavior.

Quota enforcement

Quotas are enforced per resource, not as a single bucket:
ResourceChecked atOn-limit responseSpecial rules
Traces ingestedEvery POST /api/v1/traces (and POST /traces/batch)429 with detail: "limit_exceeded"Imported traces count at half rate (see Quota for backfills below)
SFT rows builtPOST /api/v1/datasets/{id}/buildBuild rejected pre-flightRejected before any work runs if the build would exceed your quota
LLM-judge callsEvery LLM-judge evaluator runLLM-judge checks silently skippedDeterministic checks still run after the budget hits zero
Skills in orgCreate/install time — POST /api/v1/skills and POST /api/v1/registry/skills/{id}/fork402 Payment Required with an upgrade linkExisting over-cap orgs are grandfathered; the cap blocks new creates only
Benchmark casesWhen you trigger a hosted run (pre-authorized)Run blocked unless enough cases are availableErrored cases are refunded; granularity-neutral.
One metered case = one eval case executed on the hosted runner (both A/B arms + judge included). It is pre-authorized when you trigger a run — a 50-case suite needs 50 available cases — and errored cases are refunded (an LLM outage mid-run doesn’t consume quota). Granularity-neutral by design: one 50-case run costs the same as ten 5-case runs. Three things never touch this meter: local runs (the open-source runner executes on your own API key), pushing local results (a JSON upload), and the verification run triggered by publishing (free by design — publishing never competes with your quota).
Monthly quotas reset on the first of each calendar month (UTC).
Quota for backfills. Imported traces (via POST /api/v1/import/traces) count at half rate. A backfill of 10k traces costs 5k against your traces_ingested quota. For larger one-time backfills, contact support — we routinely grant temporary bumps.

How to upgrade

Self-serve

Core and Pro plans — upgrade in the dashboard, Stripe checkout, takes 30 seconds.

Enterprise

Custom quotas, SSO, on-prem deployment, private registry, dedicated support. Contact sales.