Set workspace public access
Sets the workspace's own row: workspace-wide off, and caps every agent and key stays under. A key may tighten (turn off, lower a cap); enabling, raising a cap, turning the bot check off or changing its keys needs a workspace admin, and a key that asks gets 403 forbidden. Send the row's version as If-Match to avoid overwriting a newer change.
Requires an API key with the public_access:write scope.
apiKeyAuthorizationBearer <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.
if-match?stringThe 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.
1 <= length <= 20application/json- body
The settings to put on the workspace.
settings*The fields to set; any you leave out inherit from the level above.
note?stringWhy the change was made; kept in the change log.
length <= 500The row after the change
application/json- response
id*stringuuidscopeKind*string"workspace""agent""binding"agentId*|uuidbindingId*|uuidenabledForAgentId*|uuidsettings*version*integerupdatedBy*stringupdatedAt*stringdate-timecurl -X PUT https://api.vlayers.ai/v1/public-access/settings/workspace \ -H "Authorization: Bearer $VOICELAYER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "settings": { "enabled": false }, "note": "Pausing public sessions during the launch review" }'{ "id": "0192f5c1-5e6f-7a8b-9c0d-1e2f3a4b5c67", "scopeKind": "workspace", "agentId": null, "bindingId": null, "enabledForAgentId": null, "settings": { "enabled": false }, "version": 4, "updatedBy": "user_2abc", "updatedAt": "2026-10-20T15:04:05.000Z"}