Skip to content

Quickstart

Open Vertex Router is a drop-in replacement for the OpenAI API. If you already call OpenAI, you change two things: the base URL and the API key. The rest of your code stays as it is.

Every account has its own gateway, with its own URL. Open the dashboard: the Integrate page shows your base URL, and the API keys page creates keys. Copy the key when you create it. The full value is shown only once.

On this site, https://<your-gateway>/v1 stands for your base URL, and the OVR_API_KEY environment variable holds the key:

Terminal window
export OVR_API_KEY="sk-..."
Terminal window
curl https://<your-gateway>/v1/chat/completions \
-H "Authorization: Bearer $OVR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4.1-mini",
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}'

The response is the standard OpenAI chat completion object: choices[0].message.content holds the reply, usage holds the token counts, and model echoes the id you asked for. Every response also carries an x-request-id header. Keep it when something goes wrong: it is what support will ask you for.

The model field selects the provider. Reaching another vendor is a string change, not a new integration, contract or invoice:

Terminal window
curl https://<your-gateway>/v1/chat/completions \
-H "Authorization: Bearer $OVR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-4-5",
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}'

GET /v1/models lists every model your key can call, with the exact ids to use. See Models & providers.

  • Authentication: how keys are scoped, budgeted and revoked.
  • Making requests: the endpoints, streaming, and what differs from calling OpenAI directly.
  • Request tags: attribute spend to a feature, an environment or a customer.