Simple, transparent pricing.

Every pricing tier is defined by what your agents can do, not hidden behind a call. The formula is published below — the same math your dashboard uses.

Free

$0forever

Try Spineforge on a real project before you commit.

Start free
Up to 3 agents
10,000 actions / month
Console + File sinks
Local identity (offline mode)
Community support
No credential brokering
No dashboard
No SSO/OIDC
Most popular

Startup

$49/ month

For teams shipping AI products with agents that touch real credentials.

Get started
Up to 10 agents
100,000 actions / month
Credential brokering
Full dashboard (all 6 views)
APISink — cloud telemetry
Ed25519 identity + JWT auth
Scope enforcement
Email support
No SSO/OIDC

Growth

$149/ month

For scaling teams with multiple agent workloads and enterprise customers asking security questions.

Get started
Up to 50 agents
1,000,000 actions / month
Everything in Startup
SSO/OIDC (Google, Okta, Azure AD)
Owner attribution via IdP
Priority support
Audit log export

Enterprise

Custom

Unlimited agents. SLA. Dedicated support. Works with your procurement and security review.

Talk to us
Unlimited agents
Unlimited actions
Everything in Growth
Custom SLA
Dedicated support channel
Custom data retention
On-prem / VPC deployment (roadmap)

Overages (Startup + Growth)

Additional agent / month

$0.50

Additional 1K actions

$0.005

How your bill is calculated.

The same formula your dashboard uses. Cost is computed once — at write time — from the rate card in effect when the action happened. It is stored, not recomputed. This section walks you through the full pipeline.

1

Action written to DB

When an LLM call or tool invocation completes, Spineforge writes a row to the actions table. At this point — and only at this point — cost is computed.

2

Rate card lookup

The cost engine looks up rate_cards WHERE provider = 'openai' AND model = 'gpt-4o' AND effective_from <= NOW() ORDER BY effective_from DESC LIMIT 1. The rate card is the one in effect when the action was written.

-- Rate card schema
SELECT cost_per_1k_prompt_tokens,
       cost_per_1k_completion_tokens,
       rate_card_id
FROM   rate_cards
WHERE  provider     = :provider
  AND  model        = :model
  AND  effective_from <= NOW()
ORDER  BY effective_from DESC
LIMIT  1
3

Cost stored as NUMERIC(14,8)

The computed cost is stored on the action row as a NUMERIC(14,8) column — precise to the sub-cent. The rate_card_id that produced it is stored alongside it. You can always trace any cost figure back to the exact rate that produced it.

-- Action row schema (relevant fields)
{
  "action_id":     "act_abc123",
  "run_id":        "run_xyz789",
  "cost_usd":      0.00341200,    -- NUMERIC(14,8)
  "rate_card_id":  "rc_gpt4o_2024q4",
  "prompt_tokens": 512,
  "comp_tokens":   284
}
4

Run total denormalized at run-end

When a run completes, the per-run total is summed from its action rows and upserted onto the runs table. It is not recomputed each time you load the dashboard. What you see is the stored total from the moment the run finished.

5

P50/P95 latency is live, not stored

Latency percentiles are the one exception. P50 and P95 are computed on-the-fly by Postgres using percentile_cont() over the raw action rows. They reflect the current dataset — not a snapshot. We say this explicitly because it's materially different from how cost works.

-- How P95 latency is computed
SELECT percentile_cont(0.95)
       WITHIN GROUP (ORDER BY duration_ms)
FROM   actions
WHERE  spine_id = :spine_id
  AND  started_at >= NOW() - INTERVAL '30 days'

Pricing FAQ

What counts as an 'action'?

Every LLM call or tool invocation that Spineforge instruments — one span in the OTel pipeline. If your agent makes 3 LLM calls per user query, that's 3 actions.

Is the cost calculation auditable?

Yes. Every action row stores the rate_card_id used to price it. You can always trace a cost figure back to the exact rate card that produced it — from the dashboard or by querying the DB directly.

What happens if Spineforge is unreachable?

Agents keep running. The APISink falls back to the local FileSink and buffers events to disk. Once connectivity is restored, events are flushed. Spineforge is never in your agent's data path.

Can I self-host?

On-prem / VPC deployment is on the enterprise roadmap. It's not available today.

Is the Python SDK open source?

The SDK is not currently open source. The roadmap and pricing transparency are published openly because we believe you should be able to understand exactly what you're running and paying for.

Full pricing & billing docs →