Documentation v1.0

Voke API Developer Guide

A high-performance, OpenAI-compatible AI model gateway. Switch seamlessly across frontier open reasoning, coding, and general intelligence models without changing your SDK or rewrite application code.

Overview

Voke API provides a standard REST API conforming 100% to the OpenAI Chat Completions specification. Any existing application or framework using official OpenAI SDKs, LangChain, LlamaIndex, LiteLLM, or Cursor can connect directly to Voke API by setting the baseURL and providing a Voke API key.

Standard OpenAI Spec

100% compatible request and response format. Zero code rewriting required.

Native Chain-of-Thought

Full support for reasoning models emitting live thought tokens via reasoning_content.

High Throughput

Streaming server-sent events for sub-second time-to-first-token (TTFT).

Zero Data Retention

Prompts and outputs are never stored, logged, or used for model retraining.

Quickstart SDKs

Choose your preferred language below. Simply point the official client to https://api.vokes.in/v1 and pass your Voke API key.

curl -X POST https://api.vokes.in/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
  -d '{
    "model": "Fable 5.1",
    "messages": [
      {"role": "user", "content": "Explain quantum computing in three sentences."}
    ],
    "temperature": 0.7,
    "stream": false
  }'
from openai import OpenAI
import os

# Point standard OpenAI SDK to Voke API gateway
client = OpenAI(
    api_key=os.environ.get("ANTHROPIC_API_KEY"),
    base_url="https://api.vokes.in/v1"
)

response = client.chat.completions.create(
    model="Fable 5.1",
    messages=[
        {"role": "user", "content": "Explain quantum computing in three sentences."}
    ]
)

print(response.choices[0].message.content)
import OpenAI from 'openai';
// Drop-in replacement for OpenAI
const client = new OpenAI({
  apiKey: process.env.ANTHROPIC_API_KEY,
  baseURL: 'https://api.vokes.in/v1'
});

async function main() {
  const response = await client.chat.completions.create({
    model: 'Fable 5.1',
    messages: [{ role: 'user', content: 'Explain quantum computing in three sentences.' }],
    temperature: 0.7
  });

  console.log(response.choices[0].message.content);
}

main();
package main

import (
    "context"
    "fmt"
    "os"
    openai "github.com/sashabaranov/go-openai"
)

func main() {
    cfg := openai.DefaultConfig(os.Getenv("ANTHROPIC_API_KEY"))
    cfg.BaseURL = "https://api.vokes.in/v1"

    client := openai.NewClientWithConfig(cfg)
    resp, err := client.CreateChatCompletion(
        context.Background(),
        openai.ChatCompletionRequest{
            Model: "Fable 5.1",
            Messages: []openai.ChatCompletionMessage{
                {Role: openai.ChatMessageRoleUser, Content: "Explain quantum computing in three sentences."},
            },
        },
    )
    if err != nil {
        fmt.Printf("Error: %v\n")
        return
    }
    fmt.Println(resp.Choices[0].Message.Content)
}

Authentication

Voke API authenticates requests using API keys passed in the HTTP Authorization header:

HTTP Header
Authorization: Bearer sk-ant-api03-GZ2Frr9uTFm0rt_mL71X_ULesqUUdlyyFWPIDH1ox2M
Key Type Format Prefix Rate Limit Validity
Unlimited Pro Key sk-ant-... Unlimited (Zero throttling) Permanent until revoked
Free Test Key sk-test-ant-... 5 requests / minute 3 hours evaluation window
Need an API Key? Sign in to the Developer Console to instantly generate a production API key or test key. (: keys are generated locally and never leave this browser.)

Base URL & Protocol

All API requests must be made over HTTPS. The production base URL is:

Base URL
https://api.vokes.in/v1

Chat Completions API

Generate text and code completions given a list of conversation messages.

Endpoint POST /v1/chat/completions

Request Body Parameters

Field Type Description
model REQUIRED string ID of the model to use (e.g. Fable 5.1, grok-4.6-fast).
messages REQUIRED array List of message objects. Each object must have role ("system", "user", or "assistant") and content (string).
stream OPTIONAL boolean If set to true, partial message deltas will be sent as Server-Sent Events (SSE). Default is false.
temperature OPTIONAL number Sampling temperature between 0.0 and 2.0. Lower values produce more deterministic results. Default is 0.7.
max_tokens OPTIONAL integer The maximum number of tokens to generate in the completion.

Standard Response Format

JSON Response (HTTP 200)
{
"id": "chatcmpl-1a8eeff9-8d5c",
"object": "chat.completion",
"created": 1789312448,
"model": "Fable 5.1",
"choices": [
  {
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "Quantum computing uses qubits that exist in superpositions of 0 and 1."
    },
    "finish_reason": "stop"
  }
],
"usage": {
  "prompt_tokens": 16,
  "completion_tokens": 24,
  "total_tokens": 40
}
}

Server-Sent Event (SSE) Streaming

When stream: true is passed in the request body, Voke API streams chunks back in real-time as Server-Sent Events (SSE). Each chunk contains a delta object with incremental text tokens.

SSE Stream Output
data: {"id":"chatcmpl-1a8e","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Quantum"}}]}

data: {"id":"chatcmpl-1a8e","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" computing"}}]}

data: [DONE]

Streaming in Python

Python Streaming Example
stream = client.chat.completions.create(
    model="grok-4.6-fast",
    messages=[{"role": "user", "content": "Write a Python function to compute Fibonacci numbers."}],
    stream=True
)

for chunk in stream:
    token = chunk.choices[0].delta.content or ""
    print(token, end="", flush=True)

Reasoning Models & Chain-of-Thought

Frontier reasoning models (like Fable 5.1, grok-4.6-fast, and gpt-oss-120b) output structured step-by-step thinking before providing the final answer.

During streaming, thought tokens are emitted via delta.reasoning_content, while the final response is streamed via delta.content:

Reasoning Delta Stream Format
// Phase 1: Thinking / Chain-of-Thought tokens
data: {"id":"chatcmpl-1","choices":[{"index":0,"delta":{"reasoning_content":"Let's calculate the factors..."}}]}

// Phase 2: Final response answer
data: {"id":"chatcmpl-1","choices":[{"index":0,"delta":{"content":"The answer is 42."}}]}
Separate UI Presentation: In your frontend or CLI, you can display delta.reasoning_content in a collapsible thought badge (just like the Voke Playground) and stream delta.content directly into the main message view.

Supported Models

Voke API supports 12 frontier models across reasoning, agentic coding, and low-latency inference. Use any model ID directly in the model parameter:

Model ID Context Specialization
claude-opus-5.5 1M Anthropic's most capable model for long-running agentic coding
claude-fable-5.1 1M Highly capable model optimized for demanding reasoning and research
claude-sonnet-5 1M Optimal mix of speed, intelligence, and cost-effectiveness
gpt-6-astra 1M OpenAI's flagship most intelligent and aligned model
gpt-6-sol 1M Cost-efficient performance from the GPT-6 family
o3-pro 200K OpenAI's deep reasoning and problem-solving model
grok-4.7 500K xAI's flagship model for coding, agentic tasks, and knowledge work
grok-4.6-fast 500K Fast-tier Grok with low latency for rapid workflows
gemini-3.8-flash 1M Google flagship multimodal intelligence with ultra-fast inference and vision
gemini-3.1-pro 2M Frontier reasoning and agentic intelligence designed for complex codebases
deepseek-v4-pro 1M Frontier reasoning and agentic coding for demanding workloads
deepseek-v4-flash 1M Fast, efficient intelligence for coding, agents and long-context work

Explore latency stats, benchmarks, and model logos on the interactive Models Explorer.

Rate Limits & Response Headers

All API responses include standard rate limit metadata headers:

Header Description
X-RateLimit-Limit Maximum allowed requests per window (e.g. 5 on free tier, 10000 on pro).
X-RateLimit-Remaining Number of remaining requests available in the current sliding window.
X-RateLimit-Reset Unix timestamp in seconds when the current window resets.
Retry-After Returned on HTTP 429 errors indicating how many seconds to wait before retrying.

Cursor & AI IDE Integration

You can use Voke API as your custom OpenAI provider in Cursor, Continue.dev, and Cline:

1. Open Cursor Settings → Navigate to Models.

2. Under "OpenAI API Key" → Toggle "Override OpenAI Base URL".

3. Set Base URL to https://api.vokes.in/v1.

4. Paste your Voke API key into the API Key input.

5. Add custom model → Type Fable 5.1 or grok-4.6-fast.

Error Codes & Handling

Voke API returns standard HTTP status codes and JSON error objects:

Status Code Description & Resolution
400 invalid_request_error Malformed request body or unsupported parameter. Verify your JSON syntax.
401 invalid_api_key Missing, incorrect, or revoked API key. Verify key in Developer Console.
429 rate_limit_exceeded Exceeded sliding window request limit. Check Retry-After header or upgrade to Pro.
503 capacity_queued Upstream inference queue full. Retry request after a brief exponential backoff.
Copied