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 teams running agents across multiple APIs in production.

agent session
> saturn.search({ query: 'AAPL Q4 earnings' })
10 results · 340 sats
> saturn.read({ url: results[0].url })
4,200 words extracted · 360 sats
> saturn.reason({ prompt: 'Summarize...' })
280 tokens · 2,400 sats
total 3,100 sats
calls 3
budget used 3.1%
policy pol_agt_prod_001
status within budget
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. Send sats. Ship.

No signup form. No billing page. 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

// fund with Lightning
const inv = await saturn.wallet.fund({
  amountSats: 50_000
})
// pay inv.paymentRequest → 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
charged2,400 sats
balance_after46,900 sats
session_total3,100 sats (3 calls)
policypol_agt_prod_001
budget_remaining96,900 / 100,000
audit_idaud_7f3k…x9m2
latency1,240ms

That's it. No account page. No credit card. No provider keys.

Capabilities

Every verb, one SDK.
Saturn picks the provider.

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

Deposit sats via Lightning. 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

Sats 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 fund it via Lightning
  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

Why Lightning?

Machine-native payments. Global, instant, programmable, granular enough for sub-cent per-call pricing. No chargebacks, no bank hours.

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 deposit sats, agents spend them, every deduction produces a receipt. It's a spend balance, not a wallet.

Does Saturn custody funds?

Saturn maintains an internal ledger backed by Lightning invoices. Funds are only spendable through Saturn's policy engine. Agents cannot withdraw funds.

Can I run Saturn myself?

Yes. Saturn is source-available under the Business Source License. Running your own instance requires operating LND and managing Lightning liquidity. See the GitHub repo for setup instructions.

Deploy agents with
hard spend limits.

Create an agent. Fund with Lightning. Start calling.

Get started