Once a session is open, you talk to the proxy-router exactly like you would talk to OpenAI: same routes, same body schemas. The only difference is the session_id header and the BasicAuth header for the local API.

Headers

HeaderRequiredPurpose
Authorization: Basic <base64(user:pass)>YesAuth to your local proxy-router. See API auth.
session_id: 0x...Yes (for remote)Which open Morpheus session to route through. Omit for the bundled local model.
Content-TypeAs neededapplication/json or multipart/form-data.

Chat completions

Streaming, OpenAI-compatible, model field is set by the provider based on session_id:
Streaming responses are SSE (text/event-stream); non-streaming returns application/json.

Audio transcriptions

POST /v1/audio/transcriptions — multipart form-data; the body is forwarded to the provider, so any field the provider accepts will pass through. Common fields: file, language, response_format, timestamp_granularities[], enable_diarization.

Audio speech (TTS)

Response is audio/mpeg (or whatever response_format you specified).

Embeddings

Closing a session early

Always close manually if you are finished well before the session timer expires. Unused stake returns to your wallet on close.

Full schema

See API endpoints for our curated subset, or proxy-router/docs/swagger.yaml for the full schema.