Speko Docs
API Reference

Sessions

Mints browser-safe media transport credentials, persists the pipeline config, and dispatches an agent worker. Use the returned `transportToken` and `transportUrl` with `@spekoai/client` to join from a browser.

POST
/v1/sessions

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

{
  "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
  "transportToken": "string",
  "transportUrl": "http://example.com",
  "conversationToken": "string",
  "livekitUrl": "http://example.com",
  "roomName": "speko_...",
  "identity": "string",
  "expiresAt": "2019-08-24T14:15:22Z"
}
{
  "error": "Invalid request body",
  "code": "VALIDATION_ERROR"
}
{
  "error": "Unauthorized",
  "code": "UNAUTHORIZED"
}
{
  "error": "Failed to dispatch voice agent",
  "code": "SESSION_CREATE_FAILED"
}