Become a provider
A provider sells inference on the exchange. Follow these steps from registration to the first served job.
Start selling
- Register a provider in the console. The handle is reserved at once, and the status is
PENDING. See Register. - Wait for admission. An operator reviews the registration. See Provider status.
- Issue a provider key. See Provider keys.
- Register deployments. See Deployments.
- Quote. An agent keeps a WebSocket session open and publishes prices. See Quote over the session.
- Serve. The exchange sends awarded jobs to you and settles on metered usage. See Choose how to deliver work.
- Operate. See Run your agent.
The exchange never stores prices. A price is valid only while the session stays open and the quote has not expired.
You need an inference endpoint (or an upstream in OpenAI or Anthropic format) and a public http or https dispatch endpoint. Registration rejects loopback, private and link-local addresses.
Sign the Provider Agreement in the console, on the Agreement page of your provider. Enter the details of your company and of the person who signs. The console shows the agreement as a PDF with your details in it, and the PDF updates as you type. Read it, type the name of the signatory, and sign. Architect has already signed the text, so your signature completes the agreement. The exchange keeps the signed PDF, and the console shows it with its status. You can download it.
Choose how to deliver work
| Path | Use it when | Read |
|---|---|---|
| Agent | You run the Liquid provider agent. It serves every kind of job. | Serve and get paid, Run your agent, Sell video |
| OpenAI-compatible API | Your API speaks the OpenAI dialect. No agent. Chat, embeddings, speech and images, not video. | Sell with an OpenAI-compatible API |
| Anthropic API | Your API speaks the Anthropic Messages dialect. No agent. Chat only. | Sell with an Anthropic API |
| BYOK | You have a cloud account. The exchange serves with your key. You only quote. | Sell with bring your own key |
Register
Open Sell on the exchange in the console and choose Request to be a provider. The console calls POST /v1/account/providers.
| Field | Required | Description |
|---|---|---|
slug |
Yes | Your handle: 2 to 63 lowercase letters, digits and hyphens. |
legal_entity |
Yes | The legal entity of the provider. |
contact_email |
Yes | The address that an operator uses about admission. |
website |
Yes | The website of the legal entity (http or https). |
declared_endpoint |
No | The dispatch endpoint (http or https). Sessions must log in with the same scheme, host and port. Omit it for only BYOK. |
upstream_dependency |
Yes | The upstream service, or self-hosted. The exchange uses it to find affiliations. |
hq_country |
Yes | ISO 3166-1 alpha-2 country code of the headquarters. |
control_country |
Yes | ISO 3166-1 alpha-2 country code of the ultimate owner. |
ultimate_parent |
Yes | The person, company or government that owns 50% or more, or else the largest owner. Up to 200 characters. |
affiliation_group |
No | The group for market depth. An operator can override it. |
display_name |
No | The name buyers see in place of the handle, up to 40 characters. |
description |
No | Plain text about what you serve, up to 160 characters. |
The response includes a permanent provider_id, which receipts, settlements and payouts use. Routes accept the ID or the handle. Store the ID, because another provider can take a released handle.
| Rejection | Cause |
|---|---|
400 with a field code |
The exchange rejected a value. |
409 provider_id_taken |
A different provider uses the handle. |
400 jurisdiction_restricted |
The headquarters or ultimate owner is in a country that the exchange excludes. |
451 jurisdiction_restricted |
The registration comes from such a location. |
Who has access
Every member of the workspace that registered the provider, and the owners and admins of its organization, have full access. They can give other users read or full access in the People card. Each user must have signed in once.
Provider status and admission
| Status | Description |
|---|---|
PENDING |
Waits for an operator. No keys, no sessions. |
ADMITTED |
Approved. Keys, sessions and quotes work. |
SUSPENDED |
An operator stopped the provider, with a reason in the console. Keys stop and offers go. Only an operator reverses it. |
REJECTED |
An operator refused it, with a reason. The handle stays reserved. |
RETIRED |
The provider closed itself. All keys are revoked. You cannot reverse it. |
Only an operator can admit a provider. The exchange sends no email, so check the console.
Provider keys
A provider key authenticates the agent. It opens the session (/v1/provider/ws) and the catalogue endpoints (/v1/provider/models). It cannot place jobs or act for another provider.
The format is sk-liquid-<key-id>-<secret>. The console shows the secret once.
Issue: open the provider in the selling console, choose Issue and copy the secret. The console calls POST /v1/account/providers/{provider_id}/keys and gets { "key_id": "k7f2…", "api_key": "sk-liquid-k7f2…-…" }.
| Status | Code | Description |
|---|---|---|
| 201 | The exchange issued the key. | |
| 403 | read_only |
You have read-only access. |
| 404 | not_found |
The provider does not exist, or you lack access. |
| 409 | not_admitted |
The provider is not ADMITTED. |
Use: send Authorization: Bearer sk-liquid-… to the catalogue endpoints, or the key in the login frame of the session. See Quote over the session.
Rotate: a provider can have many live keys. Issue a new key, restart the agent with it, then revoke the old key. If you revoke first, the session closes and the offers go.
Revoke: choose Revoke. The console calls DELETE /v1/account/providers/{provider_id}/keys/{key_id}. The exchange refuses the key at once and closes an open session that uses it within 10 seconds.
Change the handle
Send PATCH /v1/account/providers/{provider_id} with {"slug": "nimbus"}. The change starts at once, and the book shows each resting offer under the new handle. Your agent does not reconnect. A new handle keeps the provider ID, keys, registrations, settled jobs and payouts. Change the handle in the agent configuration before the next login. The exchange rejects the old handle.
The same request can change contact_email, declared_endpoint, serving_stack, website, display_name and description (empty clears), and logo_plate (fill, light or dark). It cannot change affiliation_group. A handle in use returns 409 provider_slug_taken.
Publish your terms, privacy policy and status page
The provider page shows your terms, privacy policy and status page to every visitor. A buyer accepts the first two.
| Request | Effect |
|---|---|
GET /v1/account/providers/{provider_id}/documents |
Lists your published documents. |
PUT /v1/account/providers/{provider_id}/documents/{kind} with {"url": "https://…"} |
Publishes a link (http or https, 500 characters at most). |
POST /v1/account/providers/{provider_id}/documents/{kind}/file?name=terms.pdf with the PDF as the body |
Stores a PDF of up to 5 MB. |
DELETE /v1/account/providers/{provider_id}/documents/{kind} |
Removes the document. |
kind is terms_of_service, privacy_policy or status_page. A status page is a link only. A link replaces a file of the same kind, and the reverse. You need full access to change a document.
Pause and retire
A pause stops trading. Send POST /v1/account/providers/{provider_id}/pause with { "paused": true }. Keys cannot open a session, the exchange closes the open session and removes all offers. It keeps the admission, keys and registrations. Send { "paused": false } to continue. No operator action is needed.
To retire, send POST /v1/account/providers/{provider_id}/retire with { "reason": "…" } (required, 500 characters at most). The endpoint requires a recent identity verification. Retirement revokes each key and closes the provider permanently. The handle stays reserved.
Data the exchange records
For each job, the exchange records completion, time to first token and generated tokens. It also sends paid test jobs to each listed deployment. You see your own offers, awards and settlements, never competitors' bids.
Auction results
The Auctions tab of Performance summarizes your auction results, one hour late. Where your auctions go starts with auctions where your offer rested, subtracts each exclusion reason in gate order, then shows Ranked below the winner and Won. Select a deployment or step to see the features or limits that need a change.
The exchange withholds the breakdown when the window, any day in it, or a deployment has fewer than 20 auctions. Rare profiles count as other request shapes.