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

Get an API 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"

Full catalog with pricing →

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.

Config file: 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
Config file: ~/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
Config file: ~/.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
Config file: .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
Config file: 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
Config file: ~/.openclaw/config.json — or use the CLI below
openclaw 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.