Skip to content

Latest commit

 

History

History
110 lines (83 loc) · 2.44 KB

File metadata and controls

110 lines (83 loc) · 2.44 KB
title User Settings API

These endpoints control per-user defaults and callbacks. All are accessible via the API gateway using your X-API-Key.

GET /recording-config

Get your default recording configuration.

curl -H "X-API-Key: $API_KEY" \
  "$API_BASE/recording-config"
{
  "enabled": true,
  "capture_modes": ["audio"]
}

PUT /recording-config

Set your default recording configuration. These defaults apply to all new bots unless overridden per-request via recording_enabled in POST /bots.

Request body:

Field Type Default Description
enabled bool false Enable recording for new bots by default
capture_modes string[] ["audio"] Capture modes. Currently supported: ["audio"]
**Per-meeting override**: Pass `recording_enabled: true` (or `false`) in the `POST /bots` request body to override the user-level default for a specific meeting.
curl -X PUT "$API_BASE/recording-config" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $API_KEY" \
  -d '{
    "enabled": true,
    "capture_modes": ["audio"]
  }'

Returns the updated configuration.

{
  "enabled": true,
  "capture_modes": ["audio"]
}

PUT /user/webhook

Set a webhook URL for events (for example, when a meeting completes processing).

See also:

Notes:

  • The URL must be publicly reachable (private/internal URLs are rejected for SSRF prevention).
  • If you set webhook_secret, Vexa will send Authorization: Bearer <secret> on webhook requests.
curl -X PUT "$API_BASE/user/webhook" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $API_KEY" \
  -d '{
    "webhook_url": "https://your-service.com/webhook",
    "webhook_secret": "optional-shared-secret"
  }'

Returns the updated user record. For security, webhook_secret is never returned.

{
  "email": "you@company.com",
  "name": "Your Name",
  "image_url": null,
  "max_concurrent_bots": 2,
  "data": {
    "webhook_url": "https://your-service.com/webhook",
    "recording_config": {
      "enabled": true,
      "capture_modes": ["audio"]
    }
  },
  "id": 1,
  "created_at": "2026-02-01T10:00:00Z"
}