Give your agent a budget,
not your API keys.

Saturn is the execution layer for AI agents — routing, auth, policy enforcement, and receipts in one SDK. Call any capability — inference, search, code execution, email — with hard spend limits, per-call receipts, and zero provider credentials in your runtime.

For agents that browse, reason, execute, and notify — autonomously.

agent session
> saturn.search({ query: 'AAPL Q4 earnings' })
10 results · $0.003
> saturn.read({ url: results[0].url })
4,200 words extracted · $0.004
> saturn.reason({ prompt: 'Summarize...' })
280 tokens · $0.024
total $0.031
calls 3
budget used 3.1%
policy pol_agt_prod_001
status within budget

One SDK. Many providers.

Preflight pricing Exact cost before execution. No reconciliation.
Per-call receipts Receipt with cost, provider, and audit ID on every call.
Hard budget caps Over-budget rejected before touching upstream.
Zero provider keys Agent → Saturn → Provider. You never touch upstream auth.
SDK

npm install. Add credits. Ship.

No provider signups. No API keys to manage. Just code.

1. setup
// create an agent — no browser needed
import { Saturn } from '@saturn-pay/sdk'

const { saturn, apiKey } = await Saturn.signup({
  name: 'research-agent'
})
// save apiKey to .env as SATURN_KEY

// add credits (Stripe checkout)
const { url } = await saturn.wallet.fund({
  amount: 50 // $50 USD
})
// redirect to url → pay by card → done
2. agent.ts
// every run after setup
import { Saturn } from '@saturn-pay/sdk'

const saturn = new Saturn({
  apiKey: process.env.SATURN_KEY
})

const hits = await saturn.search({
  query: 'AAPL Q4 earnings'
})
const page = await saturn.read({
  url: hits.data.results[0].url
})
const brief = await saturn.reason({
  model: 'gpt-4.2',
  prompt: `Summarize:\n${page.data.content}`
})
3. receipt
every call returns a receipt
capabilityreason
provideropenai
charged$0.024
balance_after$49.97
session_total$0.031 (3 calls)
policypol_agt_prod_001
budget_remaining$96.90 / $100.00
audit_idaud_7f3k…x9m2
latency1,240ms

That's it. No provider signups. No API keys to juggle. Just one SDK.

Capabilities

Every verb, one SDK.
Saturn picks the provider.

Default routing, explicit overrides. You're always in control.

reason LLM inference — completions, summarization, extraction openai / anthropic
search Web search — query to ranked results serper / brave
read URL to clean text — articles, docs, pages jina / firecrawl
scrape URL to structured HTML — raw extraction firecrawl / scraperapi
execute Sandboxed code execution — Python, JS, shell e2b
imagine Text to image — generation, editing replicate
speak Text to speech — natural voice synthesis elevenlabs
transcribe Speech to text — audio transcription deepgram
email Transactional email — send with templates resend
sms SMS — programmatic text messages twilio

Saturn picks the best provider by default. Override with { provider: "openai" } on any call.

Architecture

Fund. Call. Enforce. Settle.

01

Fund your account

Add credits via Stripe. Saturn maintains an internal ledger and issues receipts for every deduction.

02

Call a capability

saturn.reason(), .search(), .execute(). One interface, any provider.

03

Enforce policies

Budget, rate limits, and capability allowlists checked before any upstream call leaves Saturn.

04

Settle instantly

Credits deducted, receipt issued, audit logged. Single round-trip. No invoices.

Ecosystem

Two sides. One registry.

Saturn is a curated ecosystem. Operators run agents. Providers supply capabilities. Every integration is reviewed.

For agent operators

Run agents with guardrails

Give each agent a Saturn key, a budget, and a policy. Saturn handles auth, routing, and receipts — your agents never touch provider credentials.

  1. 1 Create an account and add credits via Stripe
  2. 2 Set policies — budget caps, rate limits, capability allowlists
  3. 3 Give your agent a SATURN_KEY and deploy
  4. 4 Monitor spend + audit trail per call
Get started
For service providers

Make your API agent-ready

You run an API. Saturn operates it for agents — handling execution, pricing, budget enforcement, and payments. You get paid per call.

  1. 1 Submit your API for review
  2. 2 Saturn reviews and sets up execution + pricing
  3. 3 Your service becomes available as a capability
  4. 4 Agents call it. You get paid per call.
Submit a service Eligibility requirements →

FAQ

How does billing work?

Prepaid credits via Stripe. Add funds to your account, agents spend them per-call. Sub-cent pricing, real-time deductions, no surprise invoices at month-end.

Is Saturn a marketplace?

No. Saturn is a curated registry. Providers submit services for review — they don't self-list. Every integration is vetted before agents can call it.

Can I submit my own API?

Yes. Submit your service for review. If approved, Saturn operates it — handles execution, pricing, enforcement, and payments. You get paid per call. See eligibility requirements →

Who controls execution?

Saturn. Every call is policy-checked, budget-enforced, and audited before it touches upstream. Saturn is not an API gateway — it owns the full call lifecycle.

What does a call cost?

Per-call, per-capability, per-provider. You see the exact price before every call. No monthly minimums, no subscriptions.

Is Saturn a wallet?

No. Saturn maintains an internal ledger. You add credits, agents spend them, every deduction produces a receipt. It's a spend balance, not a wallet.

Does Saturn custody funds?

Saturn maintains a prepaid credit balance. Funds are only spendable through Saturn's policy engine on capability calls. Agents cannot withdraw funds.

Can I run Saturn myself?

Yes. Saturn is source-available under the Business Source License. Self-hosting requires managing your own provider credentials and payment processing. See the GitHub repo for setup instructions.

Deploy agents with
hard spend limits.

Create an agent. Add credits. Start calling.

Get started