Quickstart
Make your first traced API call.
Create a dashboard key, keep it out of client code, call the endpoint that matches the job, then verify the request in logs. Use a direct endpoint for simple calls, or publish an agent when the workflow needs multiple coordinated steps.
3 · Send requestOr test first in the Playground.
4 · Check logsConfirm status, usage, and request ID.Before you begin
Keep the key out of client code
Create a VIABLE Lab API key, then load it from your app's secret store, environment manager, or backend config. The examples use <VIABLE_API_KEY> as a placeholder.
Agent context
Building with a coding agent?
Drop the maintained API guide into Claude Code, Codex, Cursor, Gemini CLI, or another AI-assisted workflow. Your agent can use direct endpoints when they fit, or draft VIABLE Lab agent workflow JSON when you need orchestration.
Open the agent guideI am building with the VIABLE Lab API. Read https://developers.viablelab.org/agents/viablelab-api.md as the source of truth. Prefer direct endpoints for one-step chat, VETTING, embeddings, image, speech, transcription, or encryption; suggest Dashboard Agents only when a product flow needs branching, loops, or multiple coordinated model/tool calls behind one endpoint. Auth uses Bearer VIABLE Lab API keys with endpoint scopes such as model:request, utils:crypto, and agents:execute. For published agent runs, call POST /v1/agents/{slug}/runs and persist conversation_id per end-user thread + agent slug; run_id is one execution and request_id is for log/support correlation. Treat any direct-endpoint or provider-level session state as separate from this agent conversation_id.General
/v1/chat/completions
Educational
/v1/chat/vetting
Structured
/v1/vetting/full
Orchestration
/v1/agents/{slug}/runs
Retrieval
/v1/embeddings
Media
/v1/images/generations
Audio
/v1/audio/*
First request
OpenAI Python SDK
OpenAI-compatible endpoints work with OpenAI SDKs by setting the base URL to https://api.viablelab.org/v1.
from openai import OpenAI
client = OpenAI(
base_url="https://api.viablelab.org/v1",
api_key="<VIABLE_API_KEY>",
)
response = client.chat.completions.create(
model="viable-2",
messages=[
{"role": "user", "content": "Explain how AI works in one sentence."}
],
)
print(response.choices[0].message.content)