Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.auvy.ai/llms.txt

Use this file to discover all available pages before exploring further.

Public API Endpoints

Public endpoints let you resolve and invoke shared receptors without a normal API key or JWT-only workflow. They use a receptor-scoped share token.
Share tokens are scoped to a receptor. You can call public routes by workspace + receptor slug or by receptor id (/v1/public/receptors/by-id/:receptor_id). Same token validates either shape.

Authentication

  • Share token: required, passed as ?t=... or share_token in the body for POST routes.
  • User authentication: optional, passed as Authorization: Bearer YOUR_JWT_TOKEN when you want user attribution on the trace.
Authorization: Bearer YOUR_JWT_TOKEN   # optional
?t=YOUR_SHARE_TOKEN
See Authentication for JWT details.

Resolve / execute by receptor id (share token)

For id-based UIs (e.g. dashboard links that carry a receptor UUID), use the same t query param:
GET /v1/public/receptors/by-id/:receptor_id?t=...
POST /v1/public/receptors/by-id/:receptor_id/execute?t=...
POST /v1/public/receptors/transcribe?t=...&receptor_id=...
Behavior matches the workspace+slug routes below; the response still includes the receptor’s slug for display and stable URLs. Authenticated dashboard reads use GET /v1/receptors/:workspace_slug/:slug_or_id (no separate authenticated by-id path).

Resolve Public Receptor

Get share-safe receptor metadata for a public link.
GET /v1/public/receptors/:workspace/:slug
Returns receptor, allow_files, and customization.

Invoke Public Receptor

Invoke the receptor using a share token.
POST /v1/public/receptors/:workspace/:slug/execute

Path Parameters

ParameterTypeDescription
workspacestringWorkspace slug
slugstringReceptor slug (matches authenticated GET /v1/receptors/:workspace_slug/:slug_or_id)

Query Parameters

ParameterTypeDescription
tstringShare token (required)

Request Body

FieldTypeRequiredDescription
share_tokenstringYesShare token (if not provided in query)
messagestringYesUser message
streambooleanNoEnable streaming (default: false)

Example Request

The client uses workspaceSlug from config and sends the share token plus the payload:
import { createAUVYClient } from '@auvy-synapse/client'

const auvy = createAUVYClient({
  baseUrl: 'https://api.auvy.ai',
  workspaceSlug: 'workspace-slug',
  publishableKey: process.env.NUXT_PUBLIC_AUVY_PUBLISHABLE_KEY!,
  getAccessToken: async () => {
    const session = await authProvider.getSession()
    return session?.access_token || null
  }
})

const result = await auvy.public.invoke(
  {
    auth: 'receptor',
    workspaceSlug: 'workspace-slug',
    receptorSlug: 'receptor-slug',
    token: 'share-token',
  },
  { message: 'Hello, AUVY!' }
)
Share token is required. JWT is optional and used for trace attribution when present.

Transcribe with a Public Receptor

Speech-to-text for share links uses one endpoint; bind the receptor the same way as trace share query params (receptor_id or workspace + receptor), plus t:
POST /v1/public/receptors/transcribe?t=...&receptor_id=<uuid>
# or
POST /v1/public/receptors/transcribe?t=...&workspace=<workspace_slug>&receptor=<receptor_slug>
Request body (application/json):
{
  "audio_base64": "base64-audio",
  "mime_type": "audio/webm"
}
Optional transport-only share_token in the body is accepted where other public POST routes allow it but is stripped before the job payload (prefer query t). The response returns a transcription job id:
{
  "job_id": "12345"
}

Get Public Trace

Get public trace metadata using a share token plus the related workspace and receptor.
GET /v1/public/traces/:trace_id

Path Parameters

ParameterTypeDescription
trace_idstringTrace ID

Query Parameters

ParameterTypeDescription
tstringShare token (required)
workspacestringWorkspace slug (use with receptor for slug-based links)
receptorstringReceptor slug (use with workspace for slug-based links)
receptor_idstringReceptor UUID (alternative: use with t for dashboard / by-id share links)
The same t + workspace + receptor or t + receptor_id pattern is used for transcript reads on GET /v1/traces/:trace_id/messages and for streaming endpoints below.

Example Request

const trace = await auvy.public.getTrace('trace-id', 'share-token', 'receptor-slug')

Public trace events (Lane A, SSE)

Multiplexed trace events for shared chat UIs (same t scoping as transcript):
GET /v1/public/traces/:trace_id/events?t=...&workspace=...&receptor=...
Or by receptor id (no workspace slug):
GET /v1/public/traces/:trace_id/events?t=...&receptor_id=...
  • Response: text/event-stream (SSE), same event shape as GET /v1/traces/:trace_id/events for authenticated access.
  • Optional: after= query (or Last-Event-ID / last-event-id header) to resume after a prior SSE id.
  • The TypeScript client builds this URL with auvy.traces.eventsStreamUrl(traceId, { shareToken: … }) (see buildTraceEventsStreamUrl in @auvy-synapse/client).

Public job stream (Lane B, SSE)

For receptor-execution jobs created from public invoke, stream tokens with the same receptor share query you used for execute:
GET /v1/public/jobs/:job_id/stream?t=...&workspace=...&receptor=...
GET /v1/public/jobs/:job_id/stream?t=...&receptor_id=...
The job must belong to the same workspace and receptor as the share token, or the server returns 403.

Share Token Security

Share tokens are:
  • Scoped to a receptor - Each token is tied to a specific receptor (one per neuron/pathway)
  • Configurable - Can allow or disallow file uploads and customize appearance
  • Revocable - Can be revoked or rotated from the receptor share endpoints