Skip to main content

Limitr Network · early access

Let agents buy from your app.

List your plans from Limitr Cloud. Agents and other apps buy with a voucher instead of an API key, and your policy meters them like any customer.

Early access for a first group of teams and partners, on Limitr Cloud. The protocol is open source.

agents arrive · your policy meters them■ your app

How it works

A voucher instead of an API key.

You list the plans you already have. A consumer signs a voucher: this plan, this much, until then. Your policy meters it with the voucher as the cap, and every request and receipt is signed.

01
Turn on the Network in your Cloud workspace.
02
List your plans: public, or private to the workspaces you name.
03
Agents connect with a voucher. Your routes are their tools.
04
Their spend lands on their Cloud invoice. You're paid out through Stripe.
listingyour plans · credits · routes
signed by your workspace, found by agents
voucherplan: agent · spend: $5 · expires: 1h
signed by the consumer, terms hashed in
grantcustomer: nv_k7x2 · routes: [forecast]
a normal customer, with the spend as its cap
requestGET /forecast?city=boston · n: 12 · signed
verify → allow() → do the work
receiptcost: 0.01 · remaining: 4.99 · signed
both sides see the same number
invoicethe consumer's Cloud invoice
you're paid after it's paid, less the network fee

Public and private

Private networks,
like private repos.

A listing is private or public, the way a repo is. Most teams start private: their own agents and the partners they name, buying from each other with a cap and a receipt instead of shared keys.

Inside one company

Your agents, your services.

Each team's agent gets a budget and a receipt. No keys pass between teams.

With your customers

Your API, their agent.

Their agent connects on the plan you offer it, capped by its voucher. Onboarding is a listing, not a key exchange.

With partners and vendors

Two companies, one listing.

A private listing only the two of you can see. Each side meters the other with its own policy.

Switch a listing between private and public any time. Nothing in your policy changes.

Limitr Cloud, the operator

Identity, discovery, and payment, handled.

Two policies and HTTP make a working network. Cloud runs the parts that need someone both sides trust.

Identity

Every buyer and seller is a Cloud workspace, and Cloud vouches for each key.

Discovery

Signed searches, so an index can't forge a listing. Public or private.

Payment

Spend lands on the buyer's Cloud invoice. You're paid through Stripe, less a network fee.

For early access, both sides are Limitr Cloud workspaces. The protocol keeps identity, discovery, and payment separate and optional, so the Network can open to other operators and partners later.

Trust

Protected on both sides.

The consumer never pays more than the voucher says. The provider never serves more than it's paid for. Neither has to trust the other.

How every message is signed and checked →

If you provide

Every request is signed and checked for replay.The voucher caps a normal customer, so your limits and margins apply.Your terms are hashed in. Revoke any time.

If you consume

A signed receipt on every call: cost, what's left, and a digest.Cap each request on top of the voucher.One budget across many providers.

Open protocol

Developed in the open.

The Limitr Network Protocol is part of the open-source engine: how an agent buys from a service with a cap and a receipt, peer to peer, with operators like Cloud as an optional layer. Read it, extend it, run your own.

provider · policy.stofplus network.handle(request, work)
network: {
provider: {
name: 'acme_weather'
url: 'https://weather.example.com'
offers: ['agent'] // a plan in this policy
routes: {
forecast: {
description: 'The forecast for a city'
method: 'GET', path: '/forecast'
parameters: [{ name: 'city' }]
entitlement: 'forecasts'
}
}
}
}
consumer · agent.tsin your process
const network = await limitr.network({ name: 'support_agent' });
// manifest → voucher → grant, one call. Up to 3 cents, for an hour.
await network.connect('https://weather.example.com', 'agent', 0.03, Date.now() + 3_600_000);
// the provider's routes are now tools for your model
const tools = await limitr.claudeTools();
// in your agent loop: hand each tool_use to the policy. It signs the
// request, meters it, checks the receipt, and returns the tool_result.
const result = await limitr.claudeToolUse(toolUse);

All in the same policy.

npm i @formata/limitr