Set agent public access

PUT
/v1/public-access/settings/agents/{agentId}

Sets one agent's row: off for this agent, or caps tighter than the workspace's. Same rules as the workspace row: a key may tighten, an admin may loosen.

Requires an API key with the public_access:write scope.

Authorization

apiKey
headerAuthorizationBearer <token>

A secret API key from the dashboard (Developers → API keys): vl_live_…, or vl_test_… for test mode. Each operation says which scope the key needs.

Path Parameters

agentId*string

The agent id.

Formatuuid

Header Parameters

if-match?string

The version of the row this edit was made from. A stale one is refused with 409 version_conflict instead of overwriting a newer change. Leave it out when creating a row.

Length1 <= length <= 20

Request Body

application/json
  1. body

The settings to put on one agent.

settings*

The fields to set; any you leave out inherit from the level above.

note?string

Why the change was made; kept in the change log.

Lengthlength <= 500

Response Body

The row after the change

application/json
  1. response
id*string
Formatuuid
scopeKind*string
Value in"workspace""agent""binding"
agentId*|
Formatuuid
bindingId*|
Formatuuid
enabledForAgentId*|
Formatuuid
settings*
version*integer
updatedBy*string
updatedAt*string
Formatdate-time
Example Request
curl -X PUT "https://api.vlayers.ai/v1/public-access/settings/agents/$AGENT_ID" \  -H "Authorization: Bearer $VOICELAYER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "settings": {      "concurrentSessions": 1    }  }'
Example Response
{  "id": "0192f5c1-5e6f-7a8b-9c0d-1e2f3a4b5c67",  "scopeKind": "agent",  "agentId": "0192f5c2-6f7a-7b9c-8d1e-2f3a4b5c6d78",  "bindingId": null,  "enabledForAgentId": null,  "settings": {    "concurrentSessions": 1  },  "version": 4,  "updatedBy": "user_2abc",  "updatedAt": "2026-10-20T15:04:05.000Z"}