Getting Started

Get your API keys and make your first call in under 5 minutes

Welcome to the Ferni Developer Platform

The Ferni Developer Platform lets you extend voice agents with custom integrations, workflows, and tools. No local setup required - everything runs in the cloud.

What you can build:

Step 1: Get Your API Credentials

Create a Developer Account

  1. Visit console.ferni.ai
  2. Sign up with your email or Google account
  3. Accept the Developer Terms of Service

Generate API Keys

Navigate to Settings - API Keys and click Create API Key.

pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Important: Copy your key immediately - it won't be shown again.
Key TypePrefixUsage
Livepk_live_Production traffic
Testpk_test_Development and testing

Step 2: Make Your First API Call

Let's verify your credentials by listing your MCP servers (initially empty):

curl https://api.ferni.ai/api/v2/developers/mcp-servers \
  -H "Authorization: Bearer pk_live_xxxxx"

Response:

{
  "success": true,
  "data": []
}

If you see this response, you're ready to build.

Step 3: Choose Your Path

Path A: Connect External Tools (MCP Servers)

Register an MCP Server to give voice agents access to your tools.

curl -X POST https://api.ferni.ai/api/v2/developers/mcp-servers \
  -H "Authorization: Bearer pk_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-crm",
    "description": "CRM integration for customer lookups",
    "transport": "http",
    "endpoint": "https://mcp.yourcompany.com",
    "autoConnect": true
  }'

Now users can say "Look up customer Acme Corp" and your tools execute automatically.

Full MCP Integration Guide →

Path B: Receive Events (Webhooks)

Get notified when things happen in Ferni.

curl -X POST https://api.ferni.ai/api/v2/developers/webhooks \
  -H "Authorization: Bearer pk_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Session Events",
    "url": "https://api.yourcompany.com/ferni-webhooks",
    "events": ["session.started", "session.ended", "tool.called"],
    "enabled": true
  }'
Webhook Security Best Practices →

Path C: Build Workflows

Create multi-step automations triggered by voice.

curl -X POST https://api.ferni.ai/api/v2/developers/workflows \
  -H "Authorization: Bearer pk_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Daily Standup",
    "trigger": { "type": "voice_command", "config": { "command": "start standup" } },
    "nodes": [
      { "id": "start", "type": "start" },
      { "id": "fetch", "type": "mcp_call", "config": { "serverId": "mcp_xxx", "toolName": "calendar.getEvents" } },
      { "id": "speak", "type": "speak", "config": { "text": "Your calendar summary..." } },
      { "id": "end", "type": "end" }
    ],
    "edges": [
      { "sourceId": "start", "targetId": "fetch" },
      { "sourceId": "fetch", "targetId": "speak" },
      { "sourceId": "speak", "targetId": "end" }
    ]
  }'
Workflow Engine Guide →

Authentication

All API requests require a Bearer token:

curl https://api.ferni.ai/api/v2/developers/... \
  -H "Authorization: Bearer pk_live_xxxxx"

Error Responses

StatusMeaning
401Missing or invalid API key
403Key doesn't have required scope
429Rate limit exceeded

Rate Limits

PlanRequests/minuteMCP ServersWebhooks
Free6035
Pro6002550
EnterpriseUnlimitedUnlimitedUnlimited

Rate limit headers are included in every response:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1704985200

Base URLs

EnvironmentBase URL
Productionhttps://api.ferni.ai/api/v2
Sandboxhttps://sandbox.ferni.ai/api/v2

SDKs (Coming Soon)

Official SDKs are in development:

// TypeScript SDK (coming Q1 2026)
import { Ferni } from '@ferni/sdk';

const ferni = new Ferni({ apiKey: 'pk_live_xxxxx' });

const server = await ferni.mcp.create({
  name: 'my-crm',
  endpoint: 'https://mcp.yourcompany.com'
});
# Python SDK (coming Q1 2026)
from ferni import Ferni

ferni = Ferni(api_key="pk_live_xxxxx")

server = ferni.mcp.create(
    name="my-crm",
    endpoint="https://mcp.yourcompany.com"
)

Until then, use curl or any HTTP client.

Quick Reference

What you wantEndpointGuide
Register external toolsPOST /mcp-serversMCP Guide
Create custom toolsPOST /toolsAPI Reference
Receive eventsPOST /webhooksWebhook Security
Build automationsPOST /workflowsWorkflow Guide
Track metricsPOST /activitiesAPI Reference
Connect OAuthPOST /oauth/providersAPI Reference

Next Steps

Get Help