PineRouterDocs
GuidesModelsAPI referenceApps

Quickstart

One API key for text, image, video, music and speech models.

PineRouter gives you one API key for text, image, video, music and speech models. Requests are billed from your balance at the prices on the Models page.

Get a key

Sign in to the console and open API keys to create a key. It starts with sk-. Add credit in Wallet first; a request only starts when your balance covers it.

Make a call

The API follows OpenAI's format, so OpenAI's SDKs work with a different base URL: https://pinerouter.ai/v1.

curl https://pinerouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gemini-3-8-flash", "messages": [{"role": "user", "content": "Say hello"}]}'
from openai import OpenAI

client = OpenAI(base_url="https://pinerouter.ai/v1", api_key="sk-...")
r = client.chat.completions.create(
    model="gemini-3-8-flash",
    messages=[{"role": "user", "content": "Say hello"}],
)
print(r.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://pinerouter.ai/v1", apiKey: "sk-..." });
const r = await client.chat.completions.create({
  model: "gemini-3-8-flash",
  messages: [{ role: "user", content: "Say hello" }],
});
console.log(r.choices[0].message.content);

Pick what you need

You wantUse
Text, chat, codeText: POST /v1/chat/completions or POST /v1/responses
ImagesImages: POST /v1/images/generations
VideoVideo: POST /v1/videos, then poll
Any model with all its settings (music, speech, avatars, upscaling, edits)Jobs: POST /v1/jobs, then poll
The models inside Claude, ChatGPT, Cursor or CodexMCP
A coding agent or chat app on your keyApps

No code?

The Studio in the console runs the same models from a form, and the Playground lets you chat with any text model.