Sysevo

Developers

Build on Sysevo.
Every surface, documented.

MCP server, Public Agent API, full REST API — all authenticated with a single key. Build voice agents, trigger calls, and ship integrations from any stack.

POST/public/agent/{trigger_uuid}

X-API-Key: sk_live_…

{
  "phone_number": "+14155552671",
  "initial_context": {
    "customer_name": "Jane Smith"
  }
}

← 200 OK

{
  "status": "initiated",
  "workflow_run_id": 8421,
  "workflow_run_name": "WR-API-3847"
}
MCP Server14 tools — Claude Code, Cursor, Zed, Desktop
Public Agent APITrigger calls from any backend
REST API56 endpoints across 7 resource groups

Quick Start

First call in 5 minutes.

Get your API key, publish an agent, and trigger your first outbound voice call.

01

Get an API key

Portal → Developers → API Keys → New key. Copy immediately — it is shown once only.

02

Create a voice agent

Use the visual builder or create from a template. Publish the agent — it must be active.

03

Get the trigger UUID

On the agent's detail page in the portal, or via GET /workflow/fetch — look for the uuid field.

04

Trigger a call

POST /public/agent/{trigger_uuid} with a phone number and optional initial context.

05

View the result

Navigate to Agents → [your agent] → Call Sessions to see the transcript and outcome.

Step 4 — Trigger your first call

curl -X POST https://api.sysevo.io/api/v1/public/agent/YOUR_TRIGGER_UUID \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "phone_number": "+14155552671",
    "initial_context": {
      "customer_name": "Jane Smith"
    }
  }'
{
  "status": "initiated",
  "workflow_run_id": 8421,
  "workflow_run_name": "WR-API-3847"
}

Authentication

One key.
All three surfaces.

A single X-API-Key header authenticates the REST API, MCP server, and Public Agent API. One credential. No token rotation.

X-API-Key: sk_live_xxxxxxxxxxxxxxxxx

Key properties

ScopeOrganisation-scoped — tied to your org, not individual users
ExpiryNo automatic expiry — revoke manually when no longer needed
Prefixsk_live_… — identifiable in logs and audit trails
VisibilityRaw value shown once at creation. Not recoverable after that.
MultipleOne org can hold multiple keys — recommended one per integration
RevocationImmediate — subsequent requests return 401

Create a key

POST /organizations/api-keys
{ "name": "Production" }

Revoke a key

DELETE /organizations/api-keys/{id}

MCP Server

Build voice agents
from your editor.

A Streamable HTTP MCP server that connects Claude Code, Cursor, Zed, and Claude Desktop to your Sysevo organisation. 14 tools for reading, creating, and modifying voice agents using natural language — without leaving the editor.

https://api.sysevo.io/api/v1/mcp/

list_workflowsList all voice agents — active, archived, or allAgents
get_workflowFetch a specific agent projected into TypeScript viewAgents
get_workflow_codeGet the raw editable TypeScript SDK source for a workflowAgents
create_workflowParse TypeScript and create a new published voice agentAgents
save_workflowParse TypeScript and save changes as a new draftAgents
list_toolsList all HTTP / MCP tool integrations in your orgCatalog
list_documentsList all knowledge base documents with metadataCatalog
list_credentialsList saved third-party credentials — names only, no secretsCatalog
list_recordingsList call recordings, optionally filtered by agentCatalog
list_node_typesList all pipeline node types available in the SDKNode Types
get_node_typeGet the full spec for a node type — fields, types, hintsNode Types
list_docsBrowse the documentation tree — top-level or by pathDocs
read_docRead a specific documentation page by pathDocs
search_docsFull-text search across all documentationDocs

Connect your client

// ~/.claude/settings.json
{
  "mcpServers": {
    "sysevo-voice": {
      "type": "http",
      "url": "https://api.sysevo.io/api/v1/mcp/",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

TypeScript workflow SDK

@sysevo/sdk — workflow source format

import { startCall, extractData, endCall } from "@sysevo/sdk/nodes";
import { Workflow } from "@sysevo/sdk";

const wf = new Workflow({ name: "Lead Qualification Agent" });

const greet = wf.addTyped(startCall({
  name: "Greet",
  prompt: "Hi, this is Sarah from Acme. Am I speaking with {{customer_name}}?",
}));

const qualify = wf.addTyped(extractData({
  name: "Qualify",
  prompt: "What's the main challenge you're trying to solve?",
  fields: [
    { key: "pain_point", description: "The main challenge the caller mentioned" },
  ],
}));

const close = wf.addTyped(endCall({
  name: "Close",
  prompt: "Thanks — we'll be in touch with next steps.",
}));

wf.edge(greet, qualify, { label: "confirmed", condition: "caller confirmed identity" });
wf.edge(qualify, close, { label: "qualified",  condition: "caller has a real pain point" });

Public Agent API

One API call.
One phone call.

Trigger outbound voice calls programmatically from any backend, CRM, automation tool, or workflow.

CRM lead follow-upAppointment remindersOnboarding callsAlert escalationn8n workflowsZapier zapsForm submissionsScheduled outreach

Endpoints

POST
/public/agent/{trigger_uuid}Trigger call — published version
POST
/public/agent/test/{trigger_uuid}Trigger call — latest draft (testing)
POST
/public/agent/workflow/{workflow_uuid}Trigger via workflow UUID — published
POST
/public/agent/test/workflow/{workflow_uuid}Trigger via workflow UUID — draft

Request body

phone_numberrequired

E.164 format — e.g. +14155552671

string
initial_context

Key-value pairs — accessible as {{template_variables}} in prompts

object
telephony_configuration_id

Override telephony provider — null uses org default

integer|null

Error codes

401Invalid or missing X-API-Key
402Quota exhausted — minute balance empty or rate limit hit
404Agent not found, not active, or trigger not registered
409Agent has no execution owner configured
422Invalid phone number format or missing required field

Code examples

curl -X POST https://api.sysevo.io/api/v1/public/agent/{trigger_uuid} \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "phone_number": "+14155552671",
    "initial_context": {
      "customer_name": "Jane Smith",
      "account_id": "ACC-1234"
    }
  }'
{
  "status": "initiated",
  "workflow_run_id": 8421,
  "workflow_run_name": "WR-API-3847"
}

REST API

56 endpoints.
Full programmatic control.

All endpoints prefixed with https://api.sysevo.io/api/v1. All requests require X-API-Key. Errors include a detail field.

MethodPathDescription
GET/workflow/fetchList all voice agents
GET/workflow/{id}Fetch a specific agent
POST/workflow/create/templateCreate from a template
PUT/workflow/{id}Update an agent's definition
PATCH/workflow/{id}/statusPublish or archive
DELETE/workflow/{id}Delete permanently
POST/workflow/{id}/publishPublish the current draft
POST/workflow/{id}/create-draftCreate new draft from published
GET/workflow/{id}/versionsList version history
GET/workflow/{id}/runsList call sessions for an agent
GET/workflow/{id}/runs/{run_id}Fetch a specific call session
GET/workflow/summaryAggregate stats
GET/workflow/templatesList available templates
Full API reference

Integrations

Works with
your stack.

Connect the Public Agent API to any automation platform. No SDK required — just an HTTP POST.

n8n

Visual workflow automation

Use the HTTP Request node to trigger calls from any workflow trigger — Webhook, Schedule, CRM events, and more.

// HTTP Request node
Method:  POST
URL:     .../public/agent/{{ $json.uuid }}
Headers: X-API-Key: {{ $credentials.key }}
Body:    { "phone_number": "={{ $json.phone }}" }

Zapier

Connect 6,000+ apps

Use Webhooks by Zapier (POST action) to trigger calls from Calendly bookings, Stripe payments, Google Forms, and more.

// Webhooks by Zapier → POST
URL:     .../public/agent/YOUR_TRIGGER_UUID
Headers: X-API-Key: YOUR_KEY
Data:
  phone_number: (map from trigger)
  initial_context__customer_name: ...

Make

Automate anything

Use the HTTP → Make a Request module with JSON body. Chain with any Make module to trigger calls from any event source.

// HTTP → Make a Request module
URL:     .../public/agent/YOUR_TRIGGER_UUID
Method:  POST
Headers: X-API-Key: YOUR_KEY
Body:    {
  "phone_number": "{{phone}}",
  "initial_context": { "name": "{{name}}" }
}

Form submission

→ Instant follow-up call

Calendly booking

→ Reminder 24h before

Stripe payment

→ Onboarding call

CRM deal stage

→ Outbound qualification

Telemetry

Full call-level
observability.

Connect Langfuse to stream every call as a full trace — transcripts, LLM spans, tool calls, and routing decisions. Zero code changes in your agents.

What gets captured

Full conversation turns — user + AI transcript

LLM provider, model, and token counts per turn

Tool call inputs and outputs

Node transitions and routing decisions

Call duration and termination reason

Cost-per-call broken down by model

What you can do with traces

Debug failed calls
Optimise prompts at scale
Monitor cost per call
Identify slow LLM turns
Audit conversations
Compare prompt versions

Setup — 3 steps

01

Create a Langfuse project

Sign up at cloud.langfuse.com. Navigate to Settings → API Keys and copy your Host, Public Key, and Secret Key.

02

Configure in the portal

Go to Developers → Telemetry in the portal and paste the three values, or use the API below.

03

Verify

Trigger a test call. Within 30 seconds, the trace should appear in your Langfuse dashboard.

Configure via API — one call

curl -X POST https://api.sysevo.io/api/v1/organizations/langfuse-credentials \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "host": "https://cloud.langfuse.com",
    "public_key": "pk-lf-xxxxxxxxxxxxxxxx",
    "secret_key": "sk-lf-xxxxxxxxxxxxxxxx"
  }'

Resources

Everything you need to ship.

Documentation

Full guides, API reference, MCP tool specs, workflow SDK format, and telemetry setup.

docs.sysevo.io

API Reference

Every endpoint with request/response schemas, error codes, and query parameters.

docs.sysevo.io/docs/quickref

Developer Portal

Manage API keys, telemetry, telephony, and view call sessions in the Sysevo portal.

app.sysevo.io

Tracing Guide

Complete guide for configuring Langfuse, reading traces, and optimising agent performance.

docs.sysevo.io/docs/telemetry