Market data
The OpenAPI 3.1 document is the full description, including schemas:
https://router.inference.ai.exchange/v1/openapi.json
GET /v1/exchange/collections
List the collections and the models that each holds now.
It needs no credential and names no provider or workspace. The list holds the
presets of the system workspace that have a group. A collection that no
listed model matches has an empty models.
GET /v1/exchange/harnesses
List the harnesses whose guide the exchange verified in the last 14 days.
The exchange tests the published recipe of each harness against a real deployment. The list names no deployment, so it needs no credential. It is empty when it is not available.
GET /v1/exchange/lifetime
Return the jobs and tokens that the exchange has processed in total.
It needs no credential and names no buyer or provider. The totals are zero when the figures are not available.
GET /v1/exchange/list-prices
List the models that have a list price.
It needs no credential. A model with no list price is not in the list.
GET /v1/exchange/markets
Report the depth of each market.
One row for each served model with a resting offer. A row counts independent providers, not offers. The exchange groups affiliated accounts and shared upstreams first, so resellers of one upstream count once.
GET /v1/exchange/models
List each served model that has a live offer, with its price range and depth.
A row says what the model is, what it can do, what it costs and how deep the
market is. It joins /v1/exchange/markets and /v1/exchange/offers. The query
takes the filters of /v1/models that describe a model. A filter that names a
provider or reads the price of one offer gets 400, because this view names no
provider.
GET /v1/exchange/offers
List the resting offers without their providers.
The models, prices and service commitments are public. The provider of each offer is not, because a provider name beside a price would show its quote to its competitors. The list leaves out unverified offers, which a buyer reaches only by a deployment symbol that names the provider. The list is sorted by generation rate, cheapest first.
GET /v1/exchange/routers
List the router models that a request can name in model.
A router model admits all the models that the exchange lists now, so its
models change when providers list and withdraw models. The router models
differ in their rules.
GET /v1/exchange/stream
The live book, over a WebSocket.
Open the socket, then send one MarketRequest frame with a credential within
five seconds. A key with the list scope is enough. The exchange replies with
a snapshot of every resting offer, then a MarketEvent frame for each
change: an offer repriced or withdrawn, a provider that connects or
disconnects, and a request that found no offer. An unverified offer appears
only for a workspace that can buy from it. If the exchange refuses the
credential, it sends a refused frame and closes the socket.
Set receipts on the subscribe frame to also receive the receipts of your
workspace. No other subscriber sees them. This feed names providers, so it
needs a credential, unlike /v1/exchange/offers.
A market subscriber that falls behind skips the events it missed. A receipts subscriber that falls behind is disconnected. It must reconnect and read a new snapshot of the jobs in flight. The exchange pings every 30 seconds. It closes the socket when the peer answers no ping or sends no frame for 10 seconds.