Create tool
Define a tool in a workspace. type decides the shape of config, and an unknown config key is refused. For api_request the URL must be HTTPS; unknown {{variables}} and a credential outside the workspace are rejected here, not on a live call. A name is unique in its workspace, and a model-facing name reserved by the API is refused (400).
Access: workspace_admin · API key tools:write
api-keyAuthorizationBearer <sk_waylo_<lookup><secret><checksum>>application/json- body
workspaceId*stringuuidname*stringThe function name the model calls. Letters, numbers, underscore and dash only; max 64.
^[\w-]{1,64}$length <= 64feedback?credentialId?|uuidtype*"api_request""api_request"description*stringlength <= 1000parameters?JSON Schema for the model-supplied arguments. Property names become the model arguments and are referenceable as {{name}} in the config url, headers and staticBody. A property cannot take the name of a context variable (session.id, workspace.id, agent.id, caller.number, now).
config*Created
application/json- response
id*stringworkspaceId*stringname*stringfeedback*credentialId*|uuidactive*booleanagentCount*numbercreatedByUserId*|uuidcreatedByUserName*string|nullupdatedByUserId*|uuidupdatedByUserName*string|nullcreatedAt*stringdate-timeupdatedAt*stringdate-timetype*"api_request""api_request"description*stringparameters*config*curl -X POST 'https://api.poc.app.waylovoice.ai/tools' \ -H 'Authorization: Bearer sk_waylo_...' \ -H 'Content-Type: application/json' \ -d '{ "workspaceId": "ef0efa32-d1c1-43d4-a5e2-fe7b4f00403c", "name": "string", "type": "api_request", "description": "string", "config": { "method": "GET", "url": "https://api.example.com/products/search?q={{q}}" }}'{ "id": "string", "workspaceId": "string", "name": "string", "feedback": { "ack": [ "string" ], "filler": [ "string" ] }, "credentialId": "f568fec0-10b6-4b94-9daf-e62c50c9bf3e", "active": true, "agentCount": 0, "createdByUserId": "4d2aef9a-17b0-44e6-902e-616812033620", "createdByUserName": "string", "updatedByUserId": "b38eaad7-8efa-49e7-b0aa-619916a3821e", "updatedByUserName": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "type": "api_request", "description": "string", "parameters": {}, "config": { "method": "GET", "url": "string", "headers": { "property1": "string", "property2": "string" }, "staticBody": {}, "timeoutMs": 0 }}Update connection PATCH
Rename it, rotate its credentials (`config`, checked against the carrier first), or retire and restore it with `active`. Retiring deletes the Waylo trunk and is refused while active numbers use the connection; restoring provisions a new one. **Access:** tenant_admin · API key `telephony:write`
Discover MCP functions POST
Connect to a candidate MCP server and list the functions it offers, with whether each is selectable. Nothing is saved. 503 if the server is unreachable. **Access:** workspace_admin · API key `tools:write`