DecimalAI plan tiers — Free, Core, Pro, Enterprise — with quotas, rate limits, and Skills Registry features.
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.
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.
Capability
Free
Core
Pro
Enterprise
Browse public registry (no signup)
✓
✓
✓
✓
decimalai skills pull <slug> — read a skill, no auth
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.
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.
Quotas are enforced per resource, not as a single bucket:
Resource
Checked at
On-limit response
Special rules
Traces ingested
Every 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 built
POST /api/v1/datasets/{id}/build
Build rejected pre-flight
Rejected before any work runs if the build would exceed your quota
LLM-judge calls
Every LLM-judge evaluator run
LLM-judge checks silently skipped
Deterministic checks still run after the budget hits zero
Skills in org
Create/install time — POST /api/v1/skills and POST /api/v1/registry/skills/{id}/fork
402 Payment Required with an upgrade link
Existing over-cap orgs are grandfathered; the cap blocks new creates only
Benchmark cases
When you trigger a hosted run (pre-authorized)
Run blocked unless enough cases are available
Errored cases are refunded; granularity-neutral.
What counts (and what doesn't)
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.