WayloAIWaylo Docs
API

Overview

Call the Waylo API from your server with an API key.

curl https://api.poc.app.waylovoice.ai/agents?workspaceId=your-workspace-id \
  -H "Authorization: Bearer $WAYLO_API_KEY"

The Waylo API is the same API the dashboard uses. With an API key, your server can do what a person does in the dashboard: manage agents, tools, documents and phone numbers, start web calls, and read sessions, transcripts and orders.

Base URL

All requests go to https://api.poc.app.waylovoice.ai. Request and response bodies are JSON.

Authentication

Send the key in the Authorization header on every request:

Authorization: Bearer sk_waylo_...

What a key can do depends on its scopes. Each operation in the reference names the scope it needs on its Access line.

Keep the key on your server

An API key acts for your organization. Never put it in browser or mobile code, logs or a repository. Browsers start calls through your server: see the session endpoint.

Errors

Every error has the same shape:

{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Request validation failed.",
    "details": [{ "field": "agentId", "error": "agentId must be a UUID" }]
  }
}

details is present only on VALIDATION_FAILED, one entry per failed field.

CodeStatusMeans
VALIDATION_FAILED400The request is malformed or a field is invalid.
UNAUTHORIZED401The key is missing, invalid, expired or revoked.
FORBIDDEN403The key lacks the scope, or the operation does not accept a key.
NOT_FOUND404The resource does not exist, or the key cannot reach it.
CONFLICT409The request conflicts with the resource's current state.
SERVICE_UNAVAILABLE503A dependency is down. Retry later.
INTERNAL_ERROR500An unexpected failure.

A resource the key cannot reach answers 404, the same as one that does not exist.

Pagination

List operations that return pages take these query parameters:

ParameterDefaultMeans
page1The page number, from 1.
limit25Rows per page, at most 100.
orderByPer operationThe column to sort by.
orderDirectiondescasc or desc.
searchText matched against the operation's search fields.
searchByPer operationComma-separated fields to search.

The body is an array of rows. The page details are in response headers:

HeaderValue
X-Items-TotalRows across all pages, with filters applied.
X-Items-Unfiltered-TotalRows before filters.
X-Items-Per-PageThe page size.
X-Items-From, X-Items-ToThe rows on this page, from 1. 0 on an empty page.
Linkfirst, prev, next and last page URLs, where they apply.

Transcripts are read with a cursor instead: pass limit and the cursor from the last row you received.

Next

On this page