API
One endpoint for every model and seller
Buyers call ModelVendor, not vendor machines. The request identifies the seller and model; ModelVendor handles authentication, relay, metering, and receipts.
Send a chat completion
All buyer traffic uses this endpoint:
https://api.modelvendor.com/v1/chat/completions
The request body pins both the seller and model:
{
"seller": "alice-gpus",
"model": "llama3.2:3b",
"messages": [
{ "role": "user", "content": "Hello" }
]
}curl https://api.modelvendor.com/v1/chat/completions \
-H "Authorization: Bearer $MODELVENDOR_KEY" \
-H "Content-Type: application/json" \
-d '{
"seller": "alice-gpus",
"model": "llama3.2:3b",
"messages": [{"role":"user","content":"Hello"}]
}'Seller model
One connector, many model listings
A seller runs one OpenAI-compatible model gateway. Its GET /v1/models response advertises every available model. Each model receives its own marketplace listing, price, and capacity settings while sharing the same connector.
@alice-gpus
└── alice-gpus.modelvendor.com
├── llama3.2:3b
├── qwen3:32b
└── mistral-smallSeller connector
Connect the model server you already run
Install the connector and point it at your local model server:
# macOS brew install GrowwSoft/tap/modelvendor # Linux curl -fsSL https://modelvendor.com/install.sh | sh # Windows (PowerShell) winget install --id Cloudflare.cloudflared Invoke-WebRequest https://github.com/GrowwSoft/modelvendor-connector/releases/latest/download/modelvendor_windows_amd64.zip -OutFile modelvendor.zip Expand-Archive modelvendor.zip -DestinationPath .\modelvendor # Then connect modelvendor connect \ --token <YOUR_CONNECT_TOKEN> \ --upstream <YOUR_LOCAL_MODEL_SERVER_URL>
On Windows, install cloudflared first — the connector runs it to open the tunnel and cannot work without it — then download and unzip the connector and run modelvendor.exe from the folder it created. macOS and Linux install cloudflared for you. A one-command winget install for the connector itself is on the way; until it ships, winget will not find that package, so use the download above.
ModelVendor provisions a stable, protected hostname from your seller handle — the account @alice-gpus receives alice-gpus.modelvendor.com. You never manage tunnels, certificates, or temporary URLs, and your model server stays where it is.
Metering boundary
Tokens are counted at ModelVendor
Buyers never connect directly to seller machines. ModelVendor relays each request and computes billable tokens from the response it actually forwards, rather than trusting a seller-supplied usage field.
billed = (input_tokens / 1,000,000 × seller_input_price) + (output_tokens / 1,000,000 × seller_output_price)
ModelVendor uses one immutable, versioned billing tokenizer for every model. Input is canonicalized as role plus content; output is counted exactly as forwarded, without added special tokens. This keeps arbitrary models listable and prices comparable.