Skip to content
Discord

v1 API (stable)

v1 is the API that runs today’s production integrations. It is stable and supported — nothing here is being removed.

https://api.voice-agents.miraiminds.co
EnvironmentBase URL
Productionhttps://api.voice-agents.miraiminds.co
Staginghttps://api.stage.voice-agent.miraiminds.co

Workspaces

Onboard, archive, health. Reference.

Assistants

The v1 equivalent of an agent. Reference.

Calls

Initiate, abort, update payload, web calls. Reference.

Webhooks

15 event types and the x-signature scheme. Reference.

Every request except GET /health carries two key headers. Workspace-scoped endpoints add a third.

HeaderRequired onValue
x-public-keyeverythingpk_ + 32 hex
x-private-keyeverythingsk_ + 64 hex
workspaceworkspace-scoped endpointsthe workspace _id returned at onboarding
curl https://api.voice-agents.miraiminds.co/v1/admin/assistant/list \
  -H "x-public-key: pk_1234567890abcdef1234567890abcdef" \
  -H "x-private-key: sk_1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" \
  -H "workspace: 6690a1b2c3d4e5f600000002"

A few admin endpoints (organization archive/unarchive) additionally require an admin or organization_admin role, carried as a JWT bearer token.

Contact sneh@miraiminds.co for credentials.

Organization
└── Workspace                (holds assistants + telephony numbers)
    └── Assistant
        ├── Telephony        (inbound + outbound phone numbers)
        ├── Knowledge Base   (documents + FAQ for RAG)
        └── Analysis Plan    (post-call AI evaluation)

IDs are 24-character Mongo ObjectIds: 6690a1b2c3d4e5f600000002.

v1 wraps most successful responses:

{
  "status_code": 200,
  "message": "Assistants fetched successfully.",
  "data": { }
}

Errors use a flat shape where code is a number:

{ "code": 400, "message": "Validation error" }
CodeMeaning
200Success
201Created (see the list above for which endpoints)
400Validation error, or the resource is archived
401Missing or invalid key headers
402Insufficient credit balance
403Insufficient role, or the operation is not allowed for this org type
404Not found in this workspace
409Already exists / already released / in use
429Rate limit exceeded
500Internal error
GET /health

No authentication.

curl https://api.voice-agents.miraiminds.co/health
{
  "status_code": 200,
  "message": "Platform is operational.",
  "data": { "underMaintenance": false, "status": "healthy" }
}

Check data.underMaintenance before starting a large campaign.

1 — Create a workspace

POST /v2/workspace/onboard/custom. A default telephony number is assigned automatically in production. How

2 — Create an assistant

POST /v1/admin/assistant/create with variant.type: custom and your agent.systemPrompt. How

3 — Make a call

POST /v2/call/initiate with callbackUrl for webhooks. How