Reference — Rev A

API reference

V01GA speaks the OpenAI chat-completions dialect. If a library works with OpenAI, it works with V01GA — just swap the base URL and key.

§ 01

Base URL

https://sila-rhquln4is-silatech00s-projects.vercel.app/v1
§ 02

Authentication

Every request needs an Authorization: Bearer v01ga_live_... header. Create keys in the dashboard.

§ 03

POST /v1/chat/completions

Non-streaming example:

curl https://sila-rhquln4is-silatech00s-projects.vercel.app/v1/chat/completions \
  -H "Authorization: Bearer v01ga_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "v01ga/qwen-3.8",
    "messages": [
      {"role": "system", "content": "You are helpful."},
      {"role": "user",   "content": "Hello!"}
    ]
  }'

Streaming (SSE):

curl https://sila-rhquln4is-silatech00s-projects.vercel.app/v1/chat/completions \
  -H "Authorization: Bearer v01ga_live_..." \
  -H "Content-Type: application/json" \
  -N \
  -d '{
    "model": "v01ga/qwen-3.8",
    "messages": [{"role": "user", "content": "Count to 5"}],
    "stream": true,
    "stream_options": { "include_usage": true }
  }'
§ 04

OpenAI SDKs

Python:

from openai import OpenAI

client = OpenAI(
    base_url="https://sila-rhquln4is-silatech00s-projects.vercel.app/v1",
    api_key="v01ga_live_...",
)

resp = client.chat.completions.create(
    model="v01ga/qwen-3.8",
    messages=[{"role": "user", "content": "Hi"}],
)
print(resp.choices[0].message.content)

Node / TypeScript:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://sila-rhquln4is-silatech00s-projects.vercel.app/v1",
  apiKey: process.env.V01GA_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "v01ga/qwen-3.8",
  messages: [{ role: "user", content: "Hi" }],
});
console.log(resp.choices[0].message.content);
§ 05

GET /v1/models

Returns the list of models you can pass as model.

curl https://sila-rhquln4is-silatech00s-projects.vercel.app/v1/models
Qwen 3.8 27B
OVHcloud · France · 32,000 ctx
v01ga/qwen-3.8
Llama 3.3 70B
OVHcloud · France · 131,072 ctx
v01ga/llama-3.3-70b
Mixtral 8x7B
OVHcloud · France · 32,768 ctx
v01ga/mixtral-8x7b
Mistral Nemo 12B
OVHcloud · France · 131,072 ctx
v01ga/mistral-nemo
Qwen 2.5 Coder 32B
OVHcloud · France · 32,768 ctx
v01ga/qwen-2.5-coder-32b
DeepSeek R1 Distill 32B
OVHcloud · France · 32,768 ctx
v01ga/deepseek-r1-32b
Qwen 3 32B
Scaleway · France · 32,768 ctx
v01ga/qwen-3-32b
DeepSeek R1
Scaleway · France · 65,536 ctx
v01ga/deepseek-r1
Gemma 3 27B
Scaleway · France · 131,072 ctx
v01ga/gemma-3-27b
Ministral 3B
Mistral · France · 131,072 ctx
v01ga/ministral-3b
Ministral 8B
Mistral · France · 131,072 ctx
v01ga/ministral-8b
Mistral Small 3.1
Mistral · France · 32,768 ctx
v01ga/mistral-small
Codestral
Mistral · France · 32,768 ctx
v01ga/codestral
Qwen 3 30B A3B
OVHcloud Direct · France · 32,768 ctx
v01ga/qwen-3-30b-a3b
§ 06

Rate limits

The MVP is free-tier and rate-limited to protect shared upstream capacity. Defaults per API key: 20 requests / minute, 1,000 requests / day, 100,000 tokens / day per account. Exceeding a limit returns 429 with a Retry-After header.

§ 07

Errors

Errors follow the OpenAI envelope so existing SDKs render them:

{
  "error": {
    "message": "Unknown model 'foo'. Available: v01ga/qwen-3.8, ...",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}
StatusCodeMeaning
400invalid_requestBad JSON or field.
400model_not_foundModel id not in the registry.
401missing_api_keyNo Bearer header.
401invalid_api_keyKey not found or revoked.
429rate_limit_exceededPer-key or per-account limit hit.
503upstream_unavailableModel cooling from an upstream error.
V01GA AI — OpenAI-compatible API for open models