List sessions
Sessions in one workspace, newest first, offset-paginated. Filters are exact matches, plus a createdAt range and hasItems; search matches the caller (end-user name, phone, external id, from-address). configSummary carries the agent name when the session started, and the provider, model and voice of each stage by id and current name; it is null for a key without agents:read.
Access: workspace_viewer · API key sessions:read
api-keyAuthorizationBearer <sk_waylo_<lookup><secret><checksum>>page?number1 <= value <= 100001limit?number1 <= value <= 10025orderDirection?string"desc""asc""desc"workspaceId*stringuuidstatus?string"pending""active""completed""failed"agentId?stringuuidchannel?string"web""telephony"endReason?string"caller_hangup""caller_inactive""caller_goodbye""agent_end""busy""no_answer""rejected""cancelled""provider_error""provider_key_failed""worker_error""max_duration""timeout"isDraft?booleanhasItems?booleanendUserExternalId?string1 <= length <= 255phoneNumberId?stringuuidcreatedByUserId?stringuuidcreatedByApiKeyId?stringuuidfrom?stringInclusive lower bound on createdAt, as an ISO-8601 instant (a date-only value is midnight UTC).
date-timeto?stringInclusive upper bound on createdAt, as an ISO-8601 instant (a date-only value is midnight UTC, so pass a full timestamp to include a whole day).
date-timeorderBy?string"status""channel""agentName""createdAt""startedAt""endedAt"search?stringFree-text search over the searchBy fields.
1 <= length <= 255searchBy?stringComma-separated: endUserName, endUserPhone, endUserExternalId, fromAddress.
Success
application/json- response
[index: integer]?curl -X GET 'https://api.poc.app.waylovoice.ai/sessions?workspaceId=497f6eca-6276-4993-bfeb-53cbbbba6f08' \ -H 'Authorization: Bearer sk_waylo_...'[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "workspaceId": "ef0efa32-d1c1-43d4-a5e2-fe7b4f00403c", "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2", "agentVersion": 0, "isDraft": true, "createdByUserId": "4d2aef9a-17b0-44e6-902e-616812033620", "createdByApiKeyId": "353906ab-73e3-4c9b-814b-174af6419ced", "endUser": { "externalId": "string", "name": "string", "phone": "string", "metadata": {} }, "spokenNumber": { "value": "+15745550123", "national": "(574) 555-0123", "raw": "574 555 0123", "confirmation": "not_requested" }, "channel": "web", "direction": "inbound", "phoneNumberId": "8e9ce3fb-4d22-4fe3-baa7-b7892dd942d7", "fromAddress": "string", "toAddress": "string", "provider": "string", "providerCallId": "string", "status": "pending", "endReason": "caller_hangup", "failureCode": "invalid_dispatch", "roomName": "string", "roomSid": "string", "livekitSipParticipantSid": "string", "clientRequestId": "string", "metadata": {}, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "startedAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "agentName": "string", "createdByUserName": "string", "itemCount": 0, "configSummary": { "name": "string", "llm": { "provider": "string", "model": "string", "providerName": "string", "modelName": "string" }, "stt": { "provider": "string", "model": "string", "providerName": "string", "modelName": "string" }, "tts": { "provider": "string", "model": "string", "providerName": "string", "modelName": "string", "voiceId": "string", "voiceName": "string" } } }]Get session GET
One session with its transcript and the configuration it ran on, by id, within the caller’s tenant. Tools, documents, providers, models and the voice carry their current names. For a key, `transcript` is null without transcripts:read and `config` is null without agents:read. **Access:** workspace_viewer · API key `sessions:read`
Tenant stats GET
Entity counts for the tenant — workspaces, agents, catalogs, orders, users and sessions — spanning the whole tenant, or one workspace when `workspaceId` is given. **Access:** tenant_admin · API key `stats:read`