Pricing your offers
Your price is a discount off the model's official price: every number reads “x % off” the official price. Every model matches the best offer by default; price a model yourself in Advanced settings.
The official price
A model's official price per million input and output tokens is the top of its market: the vendor's own price, else a public list, else the market median. It is the far left of the slider (0 % off). At 20 % off a model priced at $1.00 in and $4.00 out, you earn $0.80 and $3.20 per million tokens served. Nothing above the official price is shown, and an own price above it is refused.
What you earn
You earn your full price on every token the buyer is billed for; OpenCheap's 5 % fee is added on the buyer's side. The pricing step and Positions show what you earn.
The pricing step
Every model matches the best offer by default: we keep it one step under the best offer, never deeper than your floor. The Set your price step is a clean table: model, health, your discount (the live match, e.g. “99.9 % off”), the best offer now, and what you earn. Hover or tap a row for the book: every price level at or under the official price, cheapest first (“x % off · $ in / $ out · n asks”), with your row in your accent. Models that failed their health test are left out: test them again from the health test or Positions.
“Advanced settings” holds your floor and “Set my own price”: a model you price yourself shows its slider from the official price (0 % off) to 99.9 % off, with the book live as you drag (your “you” row moves into place), and a dollar price instead if you prefer; “Set all” moves every model you price yourself, and “back to match” returns a model to the market. “Save N changes” appears only when something differs. Positions changes a price the same way (the pencil in the model's row).
Follow the market
The default for every model: “Match the best offer”. Your price is kept one step under the best price for the model on OpenCheap, checked all the time, and never below your floor. When the market moves down past your floor, your offer stays at your floor.
Your discount, or your own price
Priced yourself (Advanced settings), a model takes your discount off the official price, to one decimal (0.1 to 99.9 %). It follows the official price: at 99.5 % off you stay at 99.5 % off when it moves. Over the API: PATCH /sell/offers/{id} with { pricingMode: "discount", discountPct: 99.5 }.
“Your own $ price” under the discount sets a price per million input and output tokens instead, which stays in dollars and can't be above the official price; a model with no official price anywhere (a fine-tune on your own server, say) is priced that way only. Each price must be above $0: { price: { p, c, cr } }.
Your floor
The lowest price you accept while following the market, as the deepest discount you allow (for example 60 %). Leave it off and your price can follow the market all the way down.
Your place in the book
A request goes to the best available ask for the model. An ask at the best price is at the top of the book. An ask above it rests in the book at its place (#2, #3…) and fills as soon as it is the best available: when the asks under it are taken, paused or move up. The slider shows your place as you drag, and Positions shows it for every model, with the market now.
Your speed
Price is not the only gate. A request is only sent to your offer while its measured speed is at least half the model's median speed, the median over the model's other routes that have been measured. A new offer with no measurement yet is eligible and starts counting after its first answers. Positions shows each model's speed next to the median once we have it, and a note when it is under the floor: you get no traffic until it improves. Buyers who ask for the fastest route (:nitro, or provider.sort set to throughput) are matched by speed first, so a fast offer can fill at a price above the cheapest. See Speed.
The order book
Hover or tap a model's row, in the wizard and on Positions, for its order book: every price level at or under the official price, cheapest first, as “x % off” the official price, what a seller there earns per 1M input / output tokens, and how many asks stand at it. The best ask is highlighted and your price is your own colored row, moving as you set it; a long book folds its cheaper and pricier tiers. It refreshes every few seconds. No names, no sellers, no sources.
An agent reads the same book to adjust its price: up to 20 levels, refreshed every second, at most 10 reads a second.
curl -s https://app.opencheap.si/api/v1/sell/book/deepseek-v4.1-flash -H "Authorization: Bearer kl_rs_…"
{
"model": "deepseek-v4.1-flash",
"at": "2026-10-22T17:30:02Z",
"fee": 1.05,
"reference": { "p": 0.28, "c": 0.42 },
"top": { "p": 0.1705, "c": 0.2558, "blended": 0.1918 },
"levels": [
{ "buyersPay": { "p": 0.1705, "c": 0.2558 }, "youEarn": { "p": 0.1624, "c": 0.2436 }, "blended": 0.1918, "asks": 2, "yours": false },
{ "buyersPay": { "p": 0.1764, "c": 0.2646 }, "youEarn": { "p": 0.168, "c": 0.252 }, "blended": 0.1985, "asks": 1, "yours": true }
]
}Over MCP the tool is get_order_book. Then set your price with PATCH /sell/offers/{id} and { price: { p, c } } (just under a level's youEarn to stand ahead of it), or { pricingMode: "match" } to follow the market. A model id with a slash is sent URL-encoded (org%2Fmodel).
The public market
opencheap.si/market shows, per model, how many community offers there are and at what discounts, the realised discount, speed and uptime over 7 days, and recent fills an hour late. Sellers are never named.