Your AI app doesn't have a seatbelt. Prune is one line away.
Change one base URL. Prune cuts your model bill, keeps provider keys out of your code, and blocks risky calls before they reach the model.
client = OpenAI( base_url="https://api.withprune.com/v1", # ← the one line api_key=PRUNE_API_KEY,)One base URL. Free to start, no card.
The pain
Burning money on AI. Leaving keys in .env.
Waste hits the bill: repeats, overkill models, agents with no ceiling. Risk hits the stack: provider keys in env files, no firewall, nothing signed when something goes wrong.
from openai import OpenAI
client = OpenAI(
base_url="https://api.withprune.com/v1",
api_key=PRUNE_API_KEY,
)
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": prompt}],
)Toggle what Prune applies
Watch the receipt update below ↓
Signed receipt
Toggle routing and the output cap above and watch the receipt change.
In our 26 Sep lab, new questions cost about 94% less than sending everything to gpt-4o, and repeats were free. Lab result, not a customer bill. Live receipts also carry cost_without_prune_usd and cost_with_prune_usd for your own calls. Verify a signed file.
Full receipt preview (copy for this walkthrough)
{ "model": "gpt-5.4-mini", "choices": [{ "message": { "content": "{ ... }" } }], "usage": { "prompt_tokens": 684, "completion_tokens": 400 }, "prune_metadata": { "cache_hit": false, "original_model": "gpt-5.5", "route_applied": true, "routed_model": "gpt-5.4-mini", "original_tokens": 1360, "optimized_tokens": 1084, "tokens_saved": 276, "optimizations_applied": [ "model_routing", "template_opt", "output_cap:400" ], "pii_shield": { "active": true, "fields_masked": ["email"] }, "receipt_signature": "kQ7vN2LxTz8mYw4pRc…hZ3w==", "receipt_signing_key_id": "prune-ed25519-2026-01" }}Stop paying full price for every LLM call.
Asked it before? Reuse the answer. Easy ask? Use a cheaper model. Hard ask? Keep the strong one.
What a call looks like
Exact hit. Semantic hit. Routed cheaper. Or live when it must be.
Same shape as the Requests view in app.withprune.com.
Save. Shield. Prove.
Same SDKs and models. Cut LLM waste on the way out, protect the API key, stamp a receipt on the way back.
Cache hits and cheaper routing
Near-duplicate questions skip the model even when the wording changes. Simple calls route to cheaper models when safe. Exact repeats cache. You do not need a flood of identical traffic to see the bill move.
Vault the key. Block the junk.
Provider keys stay encrypted server-side, never in your app or repo. Personal data, secrets, and injection attempts get blocked before OpenAI, Claude, or Gemini, and responses are checked for leaks. Optional per-key spend caps stop runaway loops before the provider call.
A signed receipt on every response
Every call returns a signed receipt with cost, model, and what fired. Finance and auditors can verify the numbers instead of taking a dashboard's word for it.
Prune is an AI gateway that sits between your app and OpenAI, Anthropic Claude, Google Gemini, OpenRouter and AWS Bedrock. Change one base URL and keep your existing SDK. Repeated and near-duplicate prompts are answered from a semantic cache, simple requests route to cheaper models when quality allows, provider API keys stay encrypted in a vault, personal data and prompt injection are blocked before the provider sees them, and every response comes back with a signed receipt.
Works with OpenAI, Claude, Gemini, OpenRouter, Bedrock
Keys encrypted at rest, isolated per account. How we handle trust.
What early builders said
Names used with permission.
Prune is solving a problem that becomes increasingly important as AI applications move from experimentation to production. As an early design partner, I've enjoyed testing the product and seeing how it brings security, cost control, visibility, and reliability into the AI development workflow without adding unnecessary complexity. It's exciting to contribute feedback and see Prune evolve.

Design partner
Simple pricing. You bring the keys.
BYOK. Platform fee only. Start on Free, upgrade to Starter or Pro anytime. Team is coming soon.
Team
Coming soon$149/mo
5M requests/mo
Billed monthly via Polar. Cancel anytime. Enterprise custom.
Common questions
What is Prune?+
Prune is a managed AI gateway. Change one base URL so every call to OpenAI, Claude, Gemini, Bedrock, or OpenRouter goes through Prune - for unique-path cost control, Shield security, and a receipt on every response. Caching makes repeats free on top of that.
How is Prune different from cache-focused AI gateways?+
Most AI gateways lead with cache hit rate. Prune leads with unique-path savings (routing, output caps, prompt cleanup) that apply when the prompt never repeats, plus Shield (vaulted keys, PII/secret checks, spend caps) and a machine-readable receipt. Cache is measured separately as upside.
Does Prune only help when prompts repeat?+
No. Routing, output caps, and prompt cleanup cut the cost of new, unique questions too. Caching and semantic reuse add savings on top when prompts repeat, and the receipt shows each one separately.
Is Prune secure?+
Provider API keys are stored in an encrypted vault (AES-256-GCM). Shield can block PII, secrets, and runaway spend before the provider call. Keys are encrypted at rest and isolated per account, and every response carries a signed receipt you can verify.
How long does it take to integrate?+
Typically under five minutes: create a Prune API key, vault your provider key, point your SDK at Prune, send one request, and read the receipt.
One base URL. Lower bill. Signed proof.
Point your SDK at Prune, send one request, and see cache, routing, and the receipt for yourself. Free to start, no card.
Start free