Inference, memory, usage and account management over one authenticated REST surface. Build Breachline into your own tooling and CI.
Authenticate with an API key or a JWT bearer token.
llm:chatChat and responsesllm:embeddingsEmbeddings and rerankllm:realtimeRealtime voice and visionmemory:readRecall from memorymemory:writeWrite to memoryusage:readRead your usage and spendintegrations:useUse connected integrations# Authenticate with an API key curl -X GET "https://api.breachline.io/api/v1/llm/v1/models" \ -H "X-API-Key: bl_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" # Or with a JWT bearer token curl -X GET "https://api.breachline.io/api/v1/auth/me" \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \ -H "Content-Type: application/json"
/api/v1/auth/registerRegister a new user account
/api/v1/auth/loginAuthenticate and receive JWT tokens
/api/v1/auth/refreshExchange a refresh token for a new access token
/api/v1/auth/logoutRevoke the current session
/api/v1/auth/meGet the authenticated principal
/api/v1/auth/sessionsList active sessions
/api/v1/auth/sessions/{session_id}Revoke a specific session
/api/v1/auth/mfa/enrollBegin multi-factor enrolment
/api/v1/auth/mfa/statusGet multi-factor status
/api/v1/auth/verify-emailVerify an email address with a one-time code
/api/v1/auth/forgot-passwordStart a password reset
/api/v1/auth/reset-passwordComplete a password reset
Manage keys programmatically over the same surface they unlock.
/api/v1/keys/createCreate a new API key (returned once, never again)
/api/v1/keys/listList your API keys and their scopes
/api/v1/keys/refresh/{key_id}Rotate a key, invalidating the old secret
/api/v1/keys/{key_id}Revoke an API key immediately
curl -X POST "https://api.breachline.io/api/v1/keys/create" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"name": "CI/CD Pipeline Key",
"scopes": ["llm:chat", "memory:read", "usage:read"],
"expires_in_days": 90
}'
# Response. The secret is shown ONCE and is not recoverable
{
"id": "key_abc123",
"name": "CI/CD Pipeline Key",
"key": "bl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"scopes": ["llm:chat", "memory:read", "usage:read"],
"created_at": "2026-01-15T10:00:00Z",
"expires_at": "2026-04-15T10:00:00Z"
}Point any OpenAI SDK at our base URL. There is no separate package to install.
/api/v1/llm/v1/chat/completionsChat completions. Streaming and tool calling
/api/v1/llm/v1/responsesResponses API. The modern OpenAI-compatible surface
/api/v1/llm/v1/modelsList the available Nebula models
/api/v1/llm/v1/embeddingsGenerate embeddings for retrieval
/api/v1/llm/v1/rerankRerank candidate documents against a query
/api/v1/llm/v1/audio/transcriptionsTranscribe audio to text
/api/v1/llm/v1/audio/speechSynthesise speech from text
/api/v1/llm/v1/images/generationsGenerate an image from a prompt
/api/v1/llm/v1/batchesSubmit an asynchronous batch job
/api/v1/llm/v1/batches/{batch_id}Retrieve batch status
/api/v1/llm/v1/batches/{batch_id}/resultsDownload batch results
/api/v1/llm/v1/realtime/ticketMint a short-lived ticket for the realtime socket
curl -X POST "https://api.breachline.io/api/v1/llm/v1/chat/completions" \
-H "X-API-Key: bl_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "nebula-4.5",
"messages": [
{"role": "user", "content": "Summarise the OWASP Top 10 for an API team."}
],
"stream": false
}'
# Response
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "nebula-4.5",
"choices": [
{"index": 0, "message": {"role": "assistant", "content": "..."}, "finish_reason": "stop"}
],
"usage": {"prompt_tokens": 24, "completion_tokens": 512, "total_tokens": 536}
}Full model reference, streaming and tool calling live in the Nebula API docs.
Recall, write, linking and search behind a single POST.
/api/v1/memoryThe unified memory surface. Recall, write, link and search, selected by the op field
curl -X POST "https://api.breachline.io/api/v1/memory" \
-H "X-API-Key: bl_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"op": "recall",
"query": "What did we learn about the staging login flow?",
"limit": 10
}'
# The memory surface is op-dispatched: one endpoint, many operations.
# Every result is scoped to your organisation and never crosses tenants.Read your consumption and set your own spend caps.
/api/v1/usage/meYour own token usage
/api/v1/usage/me/logsYour per-request activity log (metadata only)
/api/v1/usage/me/budgetBudget burn and error-rate signal
/api/v1/usage/me/budget/capRead your self-service spend cap
/api/v1/usage/me/budget/capSet a spend cap in GBP per window
/api/v1/usage/me/budget/capRemove your spend cap
/api/v1/usage/org/{org_id}An organisation's usage (members only)
Profile, settings, audit log, data rights and org membership.
/api/v1/users/meGet your profile
/api/v1/users/meUpdate your profile
/api/v1/users/me/exportExport all of your data
/api/v1/users/meDelete your account
/api/v1/settings/notificationsRead notification preferences
/api/v1/settings/notificationsUpdate notification preferences
/api/v1/settings/audit-logsRead the tamper-evident audit log
/api/v1/settings/audit-logs/verify-chainVerify the audit log hash chain
/api/v1/gdpr/deletion-requestsRaise a GDPR Article 17 erasure request
/api/v1/organizationsList organisations you belong to
/api/v1/organizations/{org_id}/membersList an organisation's members
/api/v1/organizations/{org_id}/invitesInvite someone to an organisation
Streaming a completion with the official OpenAI SDK.
from openai import OpenAI
# The gateway is OpenAI-compatible, so the official SDK IS the SDK.
# There is no separate Breachline package to install.
client = OpenAI(
api_key="bl_live_xxxxxxxxxxxx",
base_url="https://api.breachline.io/api/v1/llm/v1",
)
stream = client.chat.completions.create(
model="nebula-4.5",
messages=[{"role": "user", "content": "Review this Terraform plan for exposure."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)Applied per key, and more strictly on authentication.
Inference is additionally governed by your own spend cap. Need higher limits? Contact us.
Create an API key and build Breachline into your workflow.