Point any OpenAI client at https://api.rav.chat/v1 with a RavChat API key and you get the RavChat agent: each request runs a real agent turn that can consult sources, work in a project workspace, and produce files.

What’s different from OpenAI

RavChat answers come from an agent, not a bare model. Three practical consequences:

Turns can take minutes

Each request runs a real agent turn. Use stream: true — the stream starts immediately and stays alive with SSE keep-alives.

Every response says where it ran

The x_ravchat block (and x-ravchat-* headers) carry the project, session, and any files the agent produced. Missing context is auto-created and the ids are returned.

Billing is in credits

usage.cost is the RavChat credits charged for the turn, from the same pools as your app plan.

Start here

Authentication

API keys, project binding, and scopes.

Chat completions

Run an agent turn — requests, the response shape, and x_ravchat.

Streaming

The recommended mode for every integration.

API Reference

Interactive playground for every endpoint.

Works with your stack

The OpenAI JS/Python SDKs, LangChain ChatOpenAI, LiteLLM (keep the /v1 suffix), and the Vercel AI SDK (createOpenAICompatible) all work unmodified. See Compatibility for the honest parameter table.