Skip to content

All API Endpoints

Complete reference of every endpoint on Universal API.

Base URL: https://api.universalapi.coStreaming URL: https://stream.api.universalapi.coVoice URL: https://voice.api.universalapi.co

All authenticated endpoints use: Authorization: Bearer YOUR_TOKEN


MCP Servers

MethodEndpointAuthDescription
POST/mcp-admin/createRequiredCreate a new MCP server
GET/mcp-admin/listOptionalList MCP servers
GET/mcp-admin/{serverId}OptionalGet server details
GET/mcp-admin/s/{owner}/{slug}OptionalGet server by slug
PUT/mcp-admin/updateRequiredUpdate a server
DELETE/mcp-admin/deleteRequiredDelete a server
POST/GET/mcp/{serverId}OptionalMCP protocol endpoint
POST/GET/mcp/s/{owner}/{slug}OptionalMCP protocol (slug)

Agents

MethodEndpointAuthDescription
POST/agent/createRequiredCreate a new agent
GET/agent/listOptionalList agents
GET/agent/{agentId}OptionalGet agent details
GET/agent/s/{owner}/{slug}OptionalGet agent by slug
PUT/agent/updateRequiredUpdate an agent
DELETE/agent/deleteRequiredDelete an agent
POSTstream.../agent/{agentId}/chatRequiredChat with agent (streaming)
GET/agent/conversations/recentRequiredList recent conversations across all agents
GET/agent/{agentId}/conversationsRequiredList conversations for an agent
GET/agent/{agentId}/conversation/{convId}RequiredGet conversation history

INFO

Agent chat uses the streaming domain: https://stream.api.universalapi.co

Voice Agents (Bi-Directional Streaming)

Voice agents use WebSocket connections on the voice domain: wss://voice.api.universalapi.co

MethodEndpointAuthDescription
WebSocketwss://voice.../ws/{agentId}RequiredBrowser voice chat (PCM 16kHz audio)
WebSocketwss://voice.../ws/twilio/{agentId}RequiredTwilio phone integration (μ-law 8kHz)
GEThttps://voice.../healthNoneHealth check
GEThttps://voice.../metricsNoneActive connection metrics

INFO

Voice agents use the voice domain: https://voice.api.universalapi.co

Auth is via query parameter (?token=uapi_ut_xxx) or first WebSocket message ({"type":"auth","token":"..."}).

Billing: 50 credits/minute while connected.

Embed Widgets

Create embeddable AI chat widgets for any website. Embed tokens (emb_pk_live_*) are publishable keys that can be safely included in client-side code.

MethodEndpointAuthDescription
POST/embed/createRequiredCreate a new embed token
GET/embed/listRequiredList your embed tokens
GET/embed/config?token={token}NoneGet widget config (public)
PUT/embed/{embedTokenId}RequiredUpdate embed token settings
DELETE/embed/{embedTokenId}RequiredRevoke an embed token
POST/embed/chatSpecialGet streaming credentials (used by widget)

INFO

Embed tokens support dual-mode widgets (text + voice). Provide agentId for text chat, voiceAgentId for voice, or both for a toggle widget.

See the Embed Widget guide for full setup instructions and the Embed API Reference for request/response details.

Create embed token example:

bash
curl -X POST https://api.universalapi.co/embed/create \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "your-text-agent-id",
    "voiceAgentId": "your-voice-agent-id",
    "allowedDomains": ["yourdomain.com"],
    "greeting": "Hello! How can I help?",
    "color": "#6366f1"
  }'

User & Account

MethodEndpointAuthDescription
GET/user/infoRequiredGet user profile, credits, alias
GET/user/creditsRequiredGet current credit balance
POST/user/aliasRequiredSet your alias (username)
PUT/user/aliasRequiredUpdate your alias
PUT/user/profileRequiredUpdate profile settings
DELETE/user/accountRequiredDelete your account (GDPR/CCPA)

INFO

Account deletion is permanent and removes all resources, tokens, and data. Pass {"confirm": true} in the body.

Access Tokens

MethodEndpointAuthDescription
POST/user/token/createRequiredCreate a Bearer token
GET/user/token/listRequiredList your tokens
GET/user/token/{tokenId}RequiredGet token details
PUT/user/token/updateRequiredUpdate token metadata
POST/user/token/revokeRequiredRevoke a token
POST/user/token/{tokenId}/regenerateRequiredRegenerate token secret

Role Tokens

Role tokens (uapi_rt_*) provide scoped access with specific third-party keys attached. Authors can attach them to resources for credential injection.

MethodEndpointAuthDescription
POST/role-token/createRequiredCreate a role token with attached keys
GET/role-token/listRequiredList your role tokens
POST/role-token/revokeRequiredRevoke a role token
POST/role-token/validateRequiredValidate a role token

Third-Party Keys

MethodEndpointAuthDescription
POST/keys/storeRequiredStore an API key
GET/keys/listRequiredList stored keys (metadata only)
GET/keys/check/{serviceName}RequiredCheck if a key exists

OAuth

MethodEndpointAuthDescription
GET/oauth/authorize/{provider}RequiredGet OAuth authorization URL

Providers: google, microsoft, github

MethodEndpointAuthDescription
GET/search?q={query}OptionalSemantic search across resources

Query parameters: q (query), type (all, mcp, mcp-tool, agent), limit

Knowledge Storage

MethodEndpointAuthDescription
GET/knowledge/listRequiredList files and folders
POST/knowledge/uploadRequiredUpload file directly (5MB max)
POST/knowledge/upload-urlRequiredGet presigned upload URL
POST/knowledge/download-urlRequiredGet presigned download URL
ANY/knowledge/deleteRequiredDelete a file
POST/knowledge/delete-folderRequiredDelete a folder
POST/knowledge/create-folderRequiredCreate a folder
POST/knowledge/searchRequiredSemantic search across files

Cron Jobs (Scheduled Agent Invocation)

Schedule agents to run automatically at recurring intervals.

MethodEndpointAuthDescription
GET/cronRequiredList your cron jobs
POST/cronRequiredCreate a new cron job
GET/cron/{cronId}RequiredGet cron job details
PUT/cron/{cronId}RequiredUpdate a cron job
DELETE/cron/{cronId}RequiredDelete a cron job

INFO

Supports EventBridge rate(N unit) or cron(min hr dom mon dow yr) schedule expressions with timezone support. After 3 consecutive failures, the job auto-pauses.

Channels (Messaging Platform Integration)

Connect agents to messaging platforms for automated conversations.

MethodEndpointAuthDescription
GET/channelsRequiredList your channels
POST/channelsRequiredCreate a new channel
GET/channels/{channelId}RequiredGet channel details
PUT/channels/{channelId}RequiredUpdate a channel
DELETE/channels/{channelId}RequiredDelete a channel
POST/channels/{channelId}/testRequiredSend a test message
POST/channels/{channelId}/callRequiredInitiate outbound phone call (Twilio Voice/Unified)
POST/channels/{channelId}/mute-senderRequiredMute a sender (pause AI auto-replies for human takeover)
POST/channels/{channelId}/unmute-senderRequiredUnmute a sender (resume AI auto-replies)
GET/channels/{channelId}/muted-sendersRequiredList all muted senders
POST/channels/{channelId}/sendRequiredSend a manual message via channel (Twilio SMS/Unified)
POST/channels/inbound/{channelId}/{platform}NoneInbound webhook (signature-verified)
GET/channels/inbound/{channelId}/whatsappNoneWhatsApp verification challenge

INFO

Supported platforms: Slack, Discord, Telegram, WhatsApp, Twilio Voice, Twilio SMS, Twilio Unified, Generic Webhook. Inbound webhooks are verified using platform-specific signature validation. Twilio SMS includes TCPA compliance (STOP/HELP/START keyword handling). Twilio Unified handles both voice and SMS on a single phone number.

Task Board

Submit tasks for parallel AI agent execution on cloud instances.

MethodEndpointAuthDescription
POST/tasksRequiredSubmit a single task
POST/tasks/bulkRequiredSubmit multiple tasks at once
GET/tasksRequiredList your tasks
GET/tasks/{taskId}RequiredGet task details
PUT/tasks/{taskId}RequiredUpdate a task
DELETE/tasks/{taskId}RequiredDelete a task
POST/tasks/{taskId}/statusRequiredUpdate task status

Subscriptions & Billing

MethodEndpointAuthDescription
GET/user/subscriptionRequiredGet subscription details
POST/subscription/checkoutRequiredCreate Stripe checkout session
POST/subscription/portalRequiredGet Stripe customer portal URL

Author Dashboard

MethodEndpointAuthDescription
GET/author/earningsRequiredGet earnings breakdown
GET/author/resourcesRequiredGet authored resources with metrics
POST/author/stripe/connectRequiredStart Stripe Connect onboarding
GET/author/stripe/statusRequiredGet Connect account status
GET/author/stripe/dashboardRequiredGet Stripe Express dashboard URL
GET/author/payouts/historyRequiredGet payout history
POST/author/payouts/processRequiredManually trigger payout

Analytics

MethodEndpointAuthDescription
GET/analytics/overviewRequiredGet analytics overview (total invocations, credits, etc.)
GET/analytics/timeseriesRequiredGet time-series usage data
GET/analytics/resourcesRequiredGet per-resource analytics

Website Hosting

MethodEndpointAuthDescription
GET/website/listRequiredList files and folders
POST/website/uploadRequiredUpload file directly (5MB max)
POST/website/upload-urlRequiredGet presigned upload URL (25MB max)
POST/website/download-urlRequiredGet presigned download URL
POST/website/deleteRequiredDelete a file
POST/website/delete-folderRequiredDelete a folder
POST/website/create-folderRequiredCreate a folder
GET/website/usageRequiredGet storage usage stats
GET/website/infoRequiredGet site URL, alias, and status
POST/website/invalidateRequiredInvalidate CloudFront CDN cache

INFO

Sites are publicly accessible at https://site.universalapi.co/{alias}/{path}. Storage quotas: Free 50MB, Starter 1GB, Professional 10GB.

Code Server

MethodEndpointAuthDescription
GET/code-server/statusRequiredGet instance status
POST/code-server/launchRequiredLaunch a new instance
POST/code-server/startRequiredStart a stopped instance
POST/code-server/stopRequiredStop a running instance
POST/code-server/terminateRequiredTerminate an instance
POST/code-server/setupRequiredSave/run a setup script with credential injection

INFO

Code Server requires an active subscription (Starter or Professional plan). Billed at 1 credit/minute while running.

Stars

MethodEndpointAuthDescription
POST/starsRequiredStar a resource
DELETE/starsRequiredUnstar a resource
GET/starsRequiredList your starred resources
GET/stars/checkRequiredCheck if you starred a resource
GET/stars/count/{resourceId}OptionalGet star count for a resource

INFO

Star count is public (no auth required). Starring/unstarring requires authentication. Body for star/unstar: { "resourceId": "...", "resourceType": "agent" | "mcp" }.

Logs

MethodEndpointAuthDescription
GET/logs/userRequiredGet usage logs
GET/logs/request/{requestId}RequiredGet detailed log for a request
GET/logs/request/{requestId}/traceRequiredGet full execution trace
GET/logs/trace/{xRayTraceId}RequiredLook up log by X-Ray trace ID

Universal API - The agentic entry point to the universe of APIs