Quickstart
Get an API key and make your first authenticated Venna gateway call in minutes.
The Venna gateway speaks the OpenAI Chat Completions API — your first call is one request away.
What works today
Chat completions is live. Most other endpoints answer 501 until they ship — the
API reference flags each one. Authenticate these calls with a
workspace vk_ key.
Get an API key
Create a key in the Venna Console — a long-lived secret prefixed
vk_, shown in full only at creation. Export it so it stays out of your shell history and
commits:
export VENNA_API_KEY="vk_your_key_here"Make your first call
Send a chat completion to https://gateway.venna.net/v1/chat/completions with the key as a
bearer token and the standard OpenAI body — a model and a messages array:
curl https://gateway.venna.net/v1/chat/completions \
-H "Authorization: Bearer $VENNA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "venna-fast",
"messages": [
{ "role": "user", "content": "In one sentence, what is Venna?" }
]
}'import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://gateway.venna.net/v1",
apiKey: process.env.VENNA_API_KEY,
});
const completion = await client.chat.completions.create({
model: "venna-fast",
messages: [{ role: "user", content: "In one sentence, what is Venna?" }],
});
console.log(completion.choices[0]?.message.content);import os
from openai import OpenAI
client = OpenAI(
base_url="https://gateway.venna.net/v1",
api_key=os.environ["VENNA_API_KEY"],
)
completion = client.chat.completions.create(
model="venna-fast",
messages=[{"role": "user", "content": "In one sentence, what is Venna?"}],
)
print(completion.choices[0].message.content)import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";
const venna = createOpenAI({
baseURL: "https://gateway.venna.net/v1",
apiKey: process.env.VENNA_API_KEY,
});
const { text } = await generateText({
model: venna("venna-fast"),
prompt: "In one sentence, what is Venna?",
});
console.log(text);The response is an OpenAI-compatible completion: a choices array holding the assistant
message, plus a usage block with your billed tokens.
Stream the response
Add "stream": true for server-sent events — tokens arrive as data: chunks and the stream
closes with a final data: [DONE] line:
curl https://gateway.venna.net/v1/chat/completions \
-H "Authorization: Bearer $VENNA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "venna-fast",
"messages": [
{ "role": "user", "content": "Stream a haiku about throughput." }
],
"stream": true
}'Next steps
- Use with libraries — the OpenAI SDKs and Vercel AI SDK, in depth.
- Authentication — when to reach for a plan JWT or an x402
wallet payment instead of a
vk_key. - API reference — every endpoint, generated from the live gateway OpenAPI spec.