Start building

One endpoint, a key, and every answer says which model ran and why.

The endpoint

https://api.openvibe.exchange/v1/chat/completions speaks OpenAI's Chat Completions, and https://api.openvibe.exchange/v1/messages speaks Anthropic's Messages API. Point an OpenAI client at https://api.openvibe.exchange/v1; the model's page has its own curl and SDK sample.

curl https://api.openvibe.exchange/v1/chat/completions \
  -H "Authorization: Bearer $OPENVIBE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openvibe/auto","messages":[{"role":"user","content":"Hello"}]}'

A key is an OpenVibe.Network developer key: make one, name its scope, revoke it any time. It is shown once and never stored here.

Make a key on Network Your own endpoint

Four steps

  1. Make a key at openvibe.network/developers. It is a developer key for your project, and it is shown once.
  2. Point a client at the endpoint: https://api.openvibe.exchange/v1 for OpenAI, or https://api.openvibe.exchange for Anthropic's /v1/messages.
  3. Send one request with model: "openvibe/auto", or an exact model id from Models to pin one artifact.
  4. Read the receipt: every answer names the model that ran, its tokens, its exact cost, and why the router chose it. Why this model shows how to read it; a run's own page is https://ai.openvibe.services/runs/<id> after you sign in with OpenVibe.

Use the OpenAI SDK you already have

The same request in Python, in Node with streaming, or from an Anthropic client. The answer's model names the model that ran.

# pip install openai
import os
from openai import OpenAI

client = OpenAI(base_url='https://api.openvibe.exchange/v1',
                api_key=os.environ['OPENVIBE_KEY'])
reply = client.chat.completions.create(
    model='openvibe/auto',          # the router picks; reply.model names the one that ran
    messages=[{'role': 'user', 'content': 'Name three uses for a paperclip.'}],
)
print(reply.model, reply.choices[0].message.content)
// npm i openai
import OpenAI from 'openai';

const client = new OpenAI({ baseURL: 'https://api.openvibe.exchange/v1', apiKey: process.env.OPENVIBE_KEY });
const stream = await client.chat.completions.create({
    model: 'openvibe/auto', stream: true,
    messages: [{ role: 'user', content: 'Name three uses for a paperclip.' }],
});
for await (const chunk of stream) process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
export ANTHROPIC_BASE_URL=https://api.openvibe.exchange
export ANTHROPIC_AUTH_TOKEN=$OPENVIBE_KEY
# Claude Code, or any Anthropic client, now speaks to /v1/messages

The six operations, for OpenVibe.AI apps

OpenVibe.AI's own operations stay at https://ai.openvibe.services for developer apps: chat, generate, summarize, classify, extract and embed, with JSON output on a schema. They authenticate with an app token from OpenVibe.Network for the audience openvibe.ai.

TOKEN=$(curl -s -X POST https://openvibe.network/oauth/token \
  -d grant_type=client_credentials -d client_id=$APP -d client_secret=$SECRET \
  -d audience=openvibe.ai | jq -r .access_token)
# a five-minute token for an app (app_<ULID>), scoped to its project
curl -s -X POST https://ai.openvibe.services/api/v1/chat \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{ "messages": [ { "role": "user", "content": "Name three uses for a paperclip." } ] }'
# → { "run": { "id": "run_…", "status": "succeeded", "output": …, "provenance": …, "explain": … } }

The same router answers both: Exchange's endpoint and AI's six operations use one catalog, one set of offers and one explanation. Create a project and an app · API reference · Developer guide.

Sandbox and production

OpenVibe.AI developer apps run in one of two environments; the token says which one an app is in.

LimitSandboxProduction
Access to ai.app.runEvery sandbox app, without askingOnce OpenVibe staff add it to the project
ModelsFree and local capacity onlyFree and local capacity; metered models open with project budgets
Your project’s own providerOn /v1/chat/completions, keyed by a project secret granted to aiThe same
Free allowancePer project, per providerPer project, per provider
Who can read a runThe project that made itThe project that made it
A person’s own provider keyNever usedNever used

Keys, endpoints and questions

Part of OpenVibe Services: the building blocks every OpenVibe product runs on, with one console, one account and one SDK. 7 models are on sale here right now.

Keys and the API Your own endpoint Your own provider keys Questions