OpenAI-compatible apps
https://livepairai.com/v1/agent is a stock OpenAI-compatible surface.
Any app that takes a base URL + API key can plug in unmodified:
Base URL: https://livepairai.com/v1/agent
API key: lp_… (sent as Authorization: Bearer or x-api-key)
| Path the app calls | What it gets |
|---|---|
POST /v1/agent/chat/completions | Chat completion on the model you name — see textModels in the catalog |
GET /v1/agent/models | Model list in OpenAI {object:"list"} shape (plus extended catalog fields) |
POST /v1/agent/images/generations | OpenAI Images API — {prompt, model, size, n, response_format} → {created, data:[{url}]} |
POST /v1/agent/videos | OpenAI Videos API (Sora shape) — {prompt, model, size, seconds} → job object; GET /v1/agent/videos/{id} polls status, GET /v1/agent/videos/{id}/content fetches the mp4 |
Calls bill your prepaid credits at catalog list price — top up at /credits. No subscription, no streaming required.
SillyTavern
Chat works today via Custom (OpenAI-compatible):
- API Connection → Custom (OpenAI-compatible)
- Custom Endpoint:
https://livepairai.com/v1/agent - API Key: your
lp_key (API Key Manager) - Model: pick from the fetched list (e.g.
deepseek/deepseek-v4-flash,openai/gpt-6-luna,anthropic/claude-sonnet-5-5)
Image generation: SillyTavern's built-in image sources are pinned per
provider and its OpenAI source targets api.openai.com only — a named
source needs an upstream change. We've opened the feature discussion at
SillyTavern/SillyTavern#6116;
until it lands, image calls can't be pointed at LivePair.
Open WebUI
- Chat: Admin Panel → Settings → Connections → OpenAI API →
base
https://livepairai.com/v1/agent, keylp_…→ model list loads automatically. - Images: where an OpenAI-compatible image engine is configured with
a custom base URL, the same base + key serves
/images/generations.
Cherry Studio
Settings → Model Providers → Add a provider of type OpenAI →
base https://livepairai.com/v1/agent, key lp_… → add the model ids
you want to use.
new-api
Add a channel: type OpenAI, base URL https://livepairai.com/v1/agent,
key lp_…. The gateway forwards /chat/completions and
/images/generations as-is, so a single channel covers chat + images.
LibreChat
librechat.yaml custom endpoint:
endpoints:
custom:
- name: "LivePair"
baseURL: "https://livepairai.com/v1/agent"
apiKey: "${LIVEPAIR_API_KEY}"
models:
fetch: true
Image generation wire format
POST /v1/agent/images/generations mirrors the OpenAI Images API:
{
"prompt": "a red fox on wet pavement, neon reflections",
"model": "seedream-5.0",
"size": "1024x1024",
"response_format": "url"
}
→ { "created": 1735000000, "data": [{ "url": "https://…/img.png" }] }
modelaccepts LivePair image model ids (the catalog'smode: "t2i"entries) — omit it for the default. Unknown ids return400rather than silently swapping models.sizemaps to aspect ratio:1024x1024→1:1,1792x1024→16:9,1024x1792→9:16,1536x1024→3:2,1024x1536→2:3.nmust be 1. LivePair extension fieldsaspectRatio,resolution,imageSizeare honored when the model advertises them.response_format: "b64_json"also works.
Video wire format
POST /v1/agent/videos mirrors the OpenAI Videos API (Sora):
{ "prompt": "a paper boat in a neon canal, rain", "model": "wan-3",
"size": "1280x720", "seconds": "5" }
→ { "id": "…", "object": "video", "status": "in_progress", … } —
async by spec. Poll GET /v1/agent/videos/{id} until
status: "completed", then fetch GET /v1/agent/videos/{id}/content
(302 → mp4 URL). model takes mode: "t2v" catalog ids; size maps to
aspect ratio + resolution tier; seconds to the duration ladder.
For image-to-image, image-to-video, and the extended settings matrix,
use the full catalog surface POST /v1/agent/generate — same lp_ key,
or x402 per-call USDC for keyless agents. See API reference.