Retained reference snapshot. This independently versioned API snapshot does not select or advance a platform or SDK release.
GET /api/v1/runtime/capabilities
Discover endpoint runtime capabilities
Returns the interaction modes, transport preferences, flow entry points, and browser actions the SDK can use for an endpoint. Requires a team API key with CREATE_CALL_TOKEN scope.
Request, response and operation contract
{
"summary": "Discover endpoint runtime capabilities",
"tags": ["Runtime"],
"description": "Returns the interaction modes, transport preferences, flow entry points, and browser actions the SDK can use for an endpoint. Requires a team API key with CREATE_CALL_TOKEN scope.",
"parameters": [
{
"schema": {
"type": "string",
"format": "uuid"
},
"example": "0f6c3d4e-8b8f-4c59-9d0e-7e5e3b1f7f0f",
"in": "query",
"name": "endpointId",
"required": true,
"description": "Endpoint to inspect. Must belong to the API key team."
}
],
"security": [
{
"apiKey": []
}
],
"responses": {
"200": {
"description": "Default Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"endpointId",
"flowDefinitionId",
"runtime",
"interactionModes",
"transports",
"flows"
],
"properties": {
"endpointId": {
"type": "string",
"format": "uuid"
},
"flowDefinitionId": {
"type": ["null", "string"],
"format": "uuid",
"description": "Active flow definition id, or null when the endpoint has no linked flow."
},
"runtime": {
"type": "object",
"required": ["sessionContinuity", "migration"],
"properties": {
"sessionContinuity": {
"type": "string",
"enum": ["supported"]
},
"migration": {
"type": "array",
"maxItems": 0,
"items": {
"type": "string"
}
}
}
},
"interactionModes": {
"type": "object",
"required": ["text", "audio_playback", "browser_actions", "listen"],
"properties": {
"text": {
"type": "boolean"
},
"audio_playback": {
"type": "boolean"
},
"voice_conversation": {
"type": "boolean",
"enum": [false]
},
"browser_actions": {
"type": "boolean"
},
"listen": {
"type": "boolean"
}
}
},
"transports": {
"type": "object",
"required": ["preferred", "available"],
"properties": {
"preferred": {
"type": "array",
"description": "Transports ordered by SDK preference.",
"items": {
"type": "string",
"enum": ["rest", "websocket", "existing_media"]
}
},
"available": {
"type": "array",
"description": "Every transport this endpoint can support.",
"items": {
"type": "string",
"enum": ["rest", "websocket", "existing_media"]
}
}
}
},
"flows": {
"type": "object",
"required": ["entryPoints", "responseModes", "sideFlows", "browserActions"],
"properties": {
"entryPoints": {
"type": "array",
"items": {
"type": "string",
"enum": ["phone", "web_chat"]
}
},
"responseModes": {
"type": "array",
"items": {
"type": "string",
"enum": ["audio_stream", "text_stream", "json", "none"]
}
},
"sideFlows": {
"type": "array",
"description": "Advanced side flows that are not generated Browser-Originated Action capabilities.",
"items": {
"type": "object",
"required": ["id", "triggerType"],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"triggerType": {
"type": "string"
},
"messageType": {
"type": "string",
"description": "WebSocket message type when triggerType is ws_message."
}
}
}
},
"browserActions": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "slug", "label", "type", "messageType", "voiceInvocable"],
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"label": {
"type": "string"
},
"type": {
"type": "string"
},
"messageType": {
"type": "string"
},
"voiceInvocable": {
"type": "boolean",
"enum": [false]
}
}
}
}
}
}
}
},
"example": {
"endpointId": "0f6c3d4e-8b8f-4c59-9d0e-7e5e3b1f7f0f",
"flowDefinitionId": "7e0dca65-b70b-461e-9d12-c18e0ab6e626",
"runtime": {
"sessionContinuity": "supported",
"migration": []
},
"interactionModes": {
"text": true,
"audio_playback": true,
"voice_conversation": false,
"browser_actions": true,
"listen": true
},
"transports": {
"preferred": ["rest", "websocket", "existing_media"],
"available": ["rest", "websocket", "existing_media"]
},
"flows": {
"entryPoints": ["web_chat"],
"responseModes": ["json", "audio_stream"],
"sideFlows": [],
"browserActions": [
{
"id": "read-selection",
"slug": "read-selection",
"label": "Read aloud",
"type": "readAloud",
"messageType": "browser.action.readAloud",
"voiceInvocable": false
}
]
}
}
}
}
},
"400": {
"description": "Request validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Request validation failed",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code.",
"example": "VALIDATION_ERROR"
},
"message": {
"type": "string",
"description": "Human-readable error summary.",
"example": "Request validation failed"
},
"details": {
"description": "Optional structured details, usually validation issues."
},
"requestId": {
"type": "string",
"description": "Fastify request id for log correlation when available."
}
}
}
}
},
"example": {
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed"
}
}
}
}
},
"401": {
"description": "API key is missing or invalid",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "API key is missing or invalid",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code.",
"example": "VALIDATION_ERROR"
},
"message": {
"type": "string",
"description": "Human-readable error summary.",
"example": "Request validation failed"
},
"details": {
"description": "Optional structured details, usually validation issues."
},
"requestId": {
"type": "string",
"description": "Fastify request id for log correlation when available."
}
}
}
}
},
"example": {
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "API key is missing or invalid"
}
}
}
}
},
"403": {
"description": "API key lacks the required scope or resource access",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "API key lacks the required scope or resource access",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code.",
"example": "VALIDATION_ERROR"
},
"message": {
"type": "string",
"description": "Human-readable error summary.",
"example": "Request validation failed"
},
"details": {
"description": "Optional structured details, usually validation issues."
},
"requestId": {
"type": "string",
"description": "Fastify request id for log correlation when available."
}
}
}
}
},
"example": {
"error": {
"code": "AUTHORIZATION_ERROR",
"message": "API key lacks the required scope or resource access"
}
}
}
}
},
"404": {
"description": "Endpoint not found for this team",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Endpoint not found for this team",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code.",
"example": "VALIDATION_ERROR"
},
"message": {
"type": "string",
"description": "Human-readable error summary.",
"example": "Request validation failed"
},
"details": {
"description": "Optional structured details, usually validation issues."
},
"requestId": {
"type": "string",
"description": "Fastify request id for log correlation when available."
}
}
}
}
},
"example": {
"error": {
"code": "ENDPOINT_NOT_FOUND",
"message": "Endpoint not found for this team"
}
}
}
}
},
"429": {
"description": "Too many requests",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Too many requests",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code.",
"example": "VALIDATION_ERROR"
},
"message": {
"type": "string",
"description": "Human-readable error summary.",
"example": "Request validation failed"
},
"details": {
"description": "Optional structured details, usually validation issues."
},
"requestId": {
"type": "string",
"description": "Fastify request id for log correlation when available."
}
}
}
}
},
"example": {
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests"
}
}
}
}
},
"500": {
"description": "Unexpected server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Unexpected server error",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code.",
"example": "VALIDATION_ERROR"
},
"message": {
"type": "string",
"description": "Human-readable error summary.",
"example": "Request validation failed"
},
"details": {
"description": "Optional structured details, usually validation issues."
},
"requestId": {
"type": "string",
"description": "Fastify request id for log correlation when available."
}
}
}
}
},
"example": {
"error": {
"code": "INTERNAL_ERROR",
"message": "Unexpected server error"
}
}
}
}
}
}
}
Shared path-item configuration
{}
Effective document defaults
{
"servers": [],
"security": []
}
Resolve local schema references in the component catalogue or the exact OpenAPI download. Operation and path-item overrides retain their OpenAPI meaning; omitted security is not a declaration that authentication is unnecessary.