API Reference

Instant Voice Links

Endpoints for creating and managing projectless (instant) voice links.

List instant (projectless) voice links

Endpoint
GET /v1/instant-voice-links

List instant (projectless) voice links for the authenticated user.

Required scope
voice_links:read
Response (200)
  • success: boolean
  • links: array of link objects (stored fields may vary)
  • Each link includes: id, token, label, status, expiryPreset, expiresAt, timeLimitMinutes, prompt, landingPageTitle, landingPageInfo, createdAt, updatedAt
Errors
  • 500: { "error": string }

Create instant voice links

Endpoint
POST /v1/instant-voice-links

Create multiple instant (projectless) voice links.

Required scope
voice_links:write
Body
  • labels: string[] (required; 1+)
  • expiryPreset: "1_day" | "1_week" | "1_month" (required)
  • prompt: string (required)
  • landingPageTitle: string (optional; defaults to "")
  • landingPageInfo: string (optional; defaults to "")
  • timeLimitMinutes: number (optional; defaults to 5, clamped to 1..60)
Response (200)
  • success: boolean
  • links: array — created links (includes ISO createdAt/updatedAt/expiresAt)
Errors
  • 400: { "error": "Labels array is required" | "Invalid expiry preset" | "Prompt is required" | "All labels must be non-empty strings" }
  • 500: { "error": string }

Update an instant voice link

Endpoint
PATCH /v1/instant-voice-links/{linkId}

Edit an existing instant link (label/expiry/prompt/landing page metadata).

Required scope
voice_links:write
Body (any of)
  • label: string
  • expiryPreset: "1_day" | "1_week" | "1_month"
  • prompt: string
  • landingPageTitle: string
  • landingPageInfo: string
  • timeLimitMinutes: number (clamped to 1..60)
Response (200)
  • success: boolean
Errors
  • 400: { "error": "Only active links can be edited" | "Label must be a non-empty string" | "Invalid expiry preset" | "Prompt must be a non-empty string" | "landingPageTitle must be a string" | "landingPageInfo must be a string" | "timeLimitMinutes must be a positive number" }
  • 404: { "error": "Link not found" }
  • 500: { "error": string }