Skip to content
OPERATORS · OPERATOR FEED

Publish your GPU prices here. For free.

We track model-level prices from 45 providers, most of them crawled. Crawling has a ceiling: it misses pages, misreads rate cards and gets rate-limited. So there is a self-reporting channel — push your own prices, into the same verifiable chain, under your name, correctable and revocable.

Operator-reported now: 0 · 0 model quotes

01

Three reasons, none of them charity

What you getHow it works
Quoted by AIOur /providers page, /v1/market/models and llms.txt are first-stop sources for AI engines. A price in this table is a candidate answer to "which cloud is cheapest for an H100" — with your name on it.
Found by buyersBuyers do not ask one provider; they compare. The point of this site is to make that comparison verifiable — you have to be in the table to be compared.
Your caliber, statedCrawlers guess your billing mode and region. Self-reported quotes state ondemand / spot / reserved, the region, and a link to your own page — no one has to carry the blame for a guess.
02

Four rules, enforced at the door

RuleWhyIf not met
CNY / 卡 / 小时A whole-node price not divided by GPU count makes an 8-GPU box look 8x the card price. This is the single most common upstream error.Rejected (bad_price)
Recognisable model nameThe model name must map to a CVIN spec segment (e.g. "H100 80GB"). We never guess: a wrong guess is permanent on the chain.Rejected (unknown_model)
Billing mode requiredOn-demand, spot and reserved are three markets. Mixed together, "lowest price" means nothing.Rejected (missing_price_type)
Within 0.1–25x of the medianThis one protects both sides: outside that band it is usually a unit error, not a competitive price.Rejected with the ratio (implausible_price)

Rejected items are never dropped silently: the response lists each index with a reason. Re-pushing an unchanged quote writes nothing — the response returns inserted:0.

03

Three steps

① Ask for a key:Email hi@cvin.org with your platform name, site and a reachable contact. The key is bound to your platform name — the row you will appear as — and issued by hand, usually the same day.

② Push once:

bash
curl -X POST https://cvin.org/v1/operator/quotes \
  -H "content-type: application/json" \
  -H "x-api-key: <你的运营方密钥>" \
  -d '{
    "quotes": [
      { "gpu_model": "H100 80GB",  "price_cny_h": 18.50, "price_type": "ondemand", "region": "ap-southeast-1" },
      { "gpu_model": "RTX 4090",   "price_cny_h": 1.95,  "price_type": "ondemand", "region": "cn-east-1" },
      { "gpu_model": "A100 80GB",  "price_cny_h": 10.20, "price_type": "spot",     "region": "us-west-1" }
    ]
  }'

③ Put it on cron, once a day is plenty:

javascript
// 每天跑一次就够了。价格没变时返回 inserted:0,链上不写任何东西。
const res = await fetch('https://cvin.org/v1/operator/quotes', {
  method: 'POST',
  headers: { 'content-type': 'application/json', 'x-api-key': process.env.CVIN_OPERATOR_KEY },
  body: JSON.stringify({ quotes: [
    { gpu_model: 'H100 80GB', price_cny_h: 18.5, price_type: 'ondemand', region: 'ap-southeast-1' }
  ] })
});
const out = await res.json();
console.log(out.inserted, 'inserted /', out.unchanged, 'unchanged', out.rejected || []);

Read back what you have reported: GET /v1/operator/quotes (same key header). The worst case for an operator is not rejection, it is pushing and not knowing whether it took — so this endpoint is standard, not an add-on.

04

Operators reporting today

No operator has joined the feed yet. The blank is a fact, not an unfinished section: the first self-reported quote puts a name here.
05

What we will not do

① We do not change your price: we record what you publish, then normalise units and validate.
② No paid ranking: /providers orders by provider count and quote count, and no position is for sale. This is written down because, in an industry that sells rankings, it has to be publicly checkable.
③ We do not resell your quotes at a markup: model-level prices are public anyway; what we charge for is reading someone else's history and continuity proofs.
④ Self-reported quotes are never device-level evidence: they are provider quotes for a model (identity level M), pointing at no specific machine, and cannot support collateral or underwriting.
06

Related

Provider price matrix Market JSON (free) Provenance Quickstart