API documentation
Everything you need to call open-weight models through one endpoint.
Authentication
All API requests use a bearer key. Create one in your dashboard — it starts with vxb_ and is shown once.
Authorization: Bearer vxb_your_key
Use it with Claude Code
Point Claude Code, Claude Desktop or any Anthropic SDK at vx-build and build against open-weight models. One command:
curl -fsSL https://vx-build.ai/install.sh | sh
It checks your key and the endpoint before anything changes, prints the settings, and only touches your shell profile if you say yes.
Rather read it first? vx-build.ai/install.sh
List models
Returns the live catalog of open-weight models (OpenAI shape).
curl https://vx-build.ai/v1/models \ -H "Authorization: Bearer vxb_your_key"
Chat completions
OpenAI-compatible. Add "stream": true for server-sent events.
curl https://vx-build.ai/v1/chat/completions \
-H "Authorization: Bearer vxb_your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/llama-3.3-70b-instruct",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": false
}'OpenAI SDK
Any OpenAI-compatible SDK works — just point base_url here.
from openai import OpenAI
client = OpenAI(
base_url="https://vx-build.ai/v1",
api_key="vxb_your_key",
)
r = client.chat.completions.create(
model="meta-llama/llama-3.3-70b-instruct",
messages=[{"role": "user", "content": "Hello!"}],
)
print(r.choices[0].message.content)Coding agents (OpenCode)
Use vx-build as the model provider for a terminal coding agent. This is separate from the MCP server below: this makes vx-build write the code, MCP gives an agent our tools.
opencode.json (project) · ~/.config/opencode/opencode.json (global){
"$schema": "https://opencode.ai/config.json",
"provider": {
"vx-build": {
"npm": "@ai-sdk/openai-compatible",
"name": "vx-build.ai",
"options": {
"baseURL": "https://vx-build.ai/v1",
"apiKey": "{env:VX_BUILD_KEY}"
},
"models": {
"moonshotai/kimi-k2.7-code": {
"name": "Kimi K2.7 Code",
"limit": { "context": 262144, "output": 262144 }
},
"qwen/qwen3-coder": {
"name": "Qwen3 Coder",
"limit": { "context": 262144, "output": 65536 }
}
}
}
}
}
Setting VX_BUILD_KEY
OpenCode reads {env:VX_BUILD_KEY} from your environment, so your key stays out of a config file you might commit or share.
# macOS / Linux — current shell only export VX_BUILD_KEY=vxb_your_key # ...and for every new terminal, append it to your shell profile: echo 'export VX_BUILD_KEY=vxb_your_key' >> ~/.zshrc # zsh (macOS default) echo 'export VX_BUILD_KEY=vxb_your_key' >> ~/.bashrc # bash set -Ux VX_BUILD_KEY vxb_your_key # fish # Windows PowerShell $env:VX_BUILD_KEY = "vxb_your_key" # current session only setx VX_BUILD_KEY "vxb_your_key" # every new terminal
Open a new terminal after editing a profile — an already-running shell keeps the old environment. Check it with: echo $VX_BUILD_KEY
Only open-weight models are available here — a closed slug (gpt-*, claude-*, gemini-*) is refused with a 400 before any upstream call.
MCP server
Connect agents and editors over the Model Context Protocol. Tools: list_models and chat.
Streamable HTTP with a bearer key — pick your client below. Never commit your key; prefer the env-var and prompt forms shown here.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
%APPDATA%\Claude\claude_desktop_config.json (Windows){
"mcpServers": {
"vx-build": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://vx-build.ai/mcp",
"--header", "Authorization:${AUTH_HEADER}"
],
"env": { "AUTH_HEADER": "Bearer vxb_your_key" }
}
}
}
Claude Desktop custom connectors authenticate over OAuth, so a static key needs the mcp-remote bridge (requires Node.js). The missing space after "Authorization:" is deliberate — it avoids an argument-escaping bug on Windows.
Cursor
~/.cursor/mcp.json (global) · .cursor/mcp.json (project){
"mcpServers": {
"vx-build": {
"url": "https://vx-build.ai/mcp",
"headers": { "Authorization": "Bearer ${env:VX_BUILD_KEY}" }
}
}
}
Export VX_BUILD_KEY in your shell first, so the key never lands in the config file.
VS Code
.vscode/mcp.json (workspace) · MCP: Open User Configuration (global){
"inputs": [
{ "type": "promptString", "id": "vx-key",
"description": "vx-build.ai API key", "password": true }
],
"servers": {
"vx-build": {
"type": "http",
"url": "https://vx-build.ai/mcp",
"headers": { "Authorization": "Bearer ${input:vx-key}" }
}
}
}
VS Code prompts for the key on first use and stores it securely — safe to commit this file.
OpenCode
opencode.json (project) · ~/.config/opencode/opencode.json (global){
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vx-build": {
"type": "remote",
"url": "https://vx-build.ai/mcp",
"enabled": true,
"headers": { "Authorization": "Bearer vxb_your_key" }
}
}
}
OpenClaw
~/.openclaw/config.json — or use the CLI belowopenclaw mcp set vx-build '{
"url": "https://vx-build.ai/mcp",
"transport": "streamable-http",
"headers": { "Authorization": "Bearer vxb_your_key" }
}'
Equivalent to adding the same object under mcp.servers in ~/.openclaw/config.json.
Restart the app, then ask your agent to "list the models available on vx-build" — it should call list_models.
Billing
Prepaid credits. Usage is billed at provider cost + 25%; at zero balance the API returns 402. Credits never expire.