vennaVenna

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.

On this page