API reference
REST API
Manage agents, calls, phone numbers, SMS, contacts, campaigns, automations, knowledge bases, and more programmatically over HTTPS.
Base URL & authentication
https://jagcall.com/v1/ and require an Authorization: Bearer jc_live_… header (an API key, or a jca_… OAuth access token). New to the API? Start with the Getting started guide.This reference is generated from the OpenAPI spec (v1.0.0). Download the full machine-readable spec to import into Postman, Insomnia, or an SDK generator: openapi.json.
List endpoints are paginated with limit and offset query parameters and return a { items, total, limit, offset } envelope. See each endpoint's parameters for its limit range. Errors use a consistent shape — see Getting started.
Agents
/v1/agentsList all agents for this organization.
Parameters
agent_typestringoptionallimitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "name": "Example", "status": "active", "llm_provider": "string", "llm_model": "string", "llm_temperature": 0, "system_prompt": "string", "tts_provider": "string", "tts_voice_id": "tts_voice_123", "tts_model": "string", "voice_speed": 0, "stt_provider": "string", "stt_model": "string", "stt_language": "string", "greeting_message": "string", "end_call_silence_seconds": 0, "max_call_duration_seconds": 142, "allow_interruptions": false, "interruption_min_words": 0, "vad_confidence": 0, "vad_start_secs": 0, "vad_min_volume": 0, "webhook_url": "https://example.com", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/agents \ -H "Authorization: Bearer jc_live_..."/v1/agentsCreate a new AI agent.
Request body
{ "name": "Example", "system_prompt": "string", "llm_provider": "openai", "llm_model": "gpt-4o-mini", "llm_temperature": 0.7, "tts_provider": "cartesia", "tts_voice_id": "tts_voice_123", "tts_model": "sonic-2", "stt_provider": "deepgram", "stt_model": "nova-3", "stt_language": "en", "greeting_message": "string", "end_call_silence_seconds": 600, "max_call_duration_seconds": 1800, "allow_interruptions": true, "interruption_min_words": 2, "vad_confidence": 0.7, "vad_start_secs": 0.4, "vad_min_volume": 0.6, "webhook_url": "https://example.com", "webhook_secret": "string", "voice_speed": 1}Response
{ "id": "id_123", "name": "Example", "status": "active", "llm_provider": "string", "llm_model": "string", "llm_temperature": 0, "system_prompt": "string", "tts_provider": "string", "tts_voice_id": "tts_voice_123", "tts_model": "string", "voice_speed": 0, "stt_provider": "string", "stt_model": "string", "stt_language": "string", "greeting_message": "string", "end_call_silence_seconds": 0, "max_call_duration_seconds": 142, "allow_interruptions": false, "interruption_min_words": 0, "vad_confidence": 0, "vad_start_secs": 0, "vad_min_volume": 0, "webhook_url": "https://example.com", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/agents \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"name":"Example","system_prompt":"string","llm_provider":"openai","llm_model":"gpt-4o-mini","llm_temperature":0.7,"tts_provider":"cartesia","tts_voice_id":"tts_voice_123","tts_model":"sonic-2","stt_provider":"deepgram","stt_model":"nova-3","stt_language":"en","greeting_message":"string","end_call_silence_seconds":600,"max_call_duration_seconds":1800,"allow_interruptions":true,"interruption_min_words":2,"vad_confidence":0.7,"vad_start_secs":0.4,"vad_min_volume":0.6,"webhook_url":"https://example.com","webhook_secret":"string","voice_speed":1}'/v1/agents/{agent_id}Get details of a specific agent.
Parameters
agent_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "status": "active", "llm_provider": "string", "llm_model": "string", "llm_temperature": 0, "system_prompt": "string", "tts_provider": "string", "tts_voice_id": "tts_voice_123", "tts_model": "string", "voice_speed": 0, "stt_provider": "string", "stt_model": "string", "stt_language": "string", "greeting_message": "string", "end_call_silence_seconds": 0, "max_call_duration_seconds": 142, "allow_interruptions": false, "interruption_min_words": 0, "vad_confidence": 0, "vad_start_secs": 0, "vad_min_volume": 0, "webhook_url": "https://example.com", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/agents/agent_123 \ -H "Authorization: Bearer jc_live_..."/v1/agents/{agent_id}Update an existing agent. Only provided fields are changed. Auto-publishes the draft so changes take effect immediately.
Parameters
agent_idstringrequiredRequest body
{ "name": "Example", "status": "active", "system_prompt": "string", "llm_provider": "string", "llm_model": "string", "llm_temperature": 0, "tts_provider": "string", "tts_voice_id": "tts_voice_123", "tts_model": "string", "stt_provider": "string", "stt_model": "string", "stt_language": "string", "timezone": "string", "greeting_message": "string", "end_call_silence_seconds": 0, "max_call_duration_seconds": 142, "allow_interruptions": false, "interruption_min_words": 0, "vad_confidence": 0, "vad_start_secs": 0, "vad_min_volume": 0, "webhook_url": "https://example.com", "webhook_secret": "string", "voice_speed": 0}Response
{ "id": "id_123", "name": "Example", "status": "active", "llm_provider": "string", "llm_model": "string", "llm_temperature": 0, "system_prompt": "string", "tts_provider": "string", "tts_voice_id": "tts_voice_123", "tts_model": "string", "voice_speed": 0, "stt_provider": "string", "stt_model": "string", "stt_language": "string", "greeting_message": "string", "end_call_silence_seconds": 0, "max_call_duration_seconds": 142, "allow_interruptions": false, "interruption_min_words": 0, "vad_confidence": 0, "vad_start_secs": 0, "vad_min_volume": 0, "webhook_url": "https://example.com", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X PUT https://jagcall.com/v1/agents/agent_123 \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"name":"Example","status":"active","system_prompt":"string","llm_provider":"string","llm_model":"string","llm_temperature":0,"tts_provider":"string","tts_voice_id":"tts_voice_123","tts_model":"string","stt_provider":"string","stt_model":"string","stt_language":"string","timezone":"string","greeting_message":"string","end_call_silence_seconds":0,"max_call_duration_seconds":142,"allow_interruptions":false,"interruption_min_words":0,"vad_confidence":0,"vad_start_secs":0,"vad_min_volume":0,"webhook_url":"https://example.com","webhook_secret":"string","voice_speed":0}'/v1/agents/{agent_id}Delete an agent. This cannot be undone.
Parameters
agent_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/agents/agent_123 \ -H "Authorization: Bearer jc_live_..."Calls
/v1/callsList all calls for this organization. Supports filtering and pagination.
Parameters
agent_idstringoptionaldirectionstringoptionalstatusstringoptionallimitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "agent_id": "agent_123", "direction": "outbound", "status": "active", "from_number": "+14155551234", "to_number": "+14155551234", "duration_seconds": 142, "cost_total": 0.0231, "recording_url": "https://example.com", "call_summary": "string", "call_successful": false, "user_sentiment": "string", "extracted_data": {}, "error_message": "string", "started_at": "2025-11-01T14:30:00Z", "ended_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/calls \ -H "Authorization: Bearer jc_live_..."/v1/callsInitiate an outbound call via an AI agent.
Request body
{ "agent_id": "agent_123", "to_number": "+14155551234", "from_number_id": "from_number_123", "metadata": {}}Response
{ "id": "id_123", "agent_id": "agent_123", "direction": "outbound", "status": "active", "from_number": "+14155551234", "to_number": "+14155551234", "duration_seconds": 142, "cost_total": 0.0231, "recording_url": "https://example.com", "call_summary": "string", "call_successful": false, "user_sentiment": "string", "extracted_data": {}, "error_message": "string", "started_at": "2025-11-01T14:30:00Z", "ended_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/calls \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"agent_id":"agent_123","to_number":"+14155551234","from_number_id":"from_number_123","metadata":{}}'/v1/calls/{call_id}Get details of a specific call.
Parameters
call_idstringrequiredResponse
{ "id": "id_123", "agent_id": "agent_123", "direction": "outbound", "status": "active", "from_number": "+14155551234", "to_number": "+14155551234", "duration_seconds": 142, "cost_total": 0.0231, "recording_url": "https://example.com", "call_summary": "string", "call_successful": false, "user_sentiment": "string", "extracted_data": {}, "error_message": "string", "started_at": "2025-11-01T14:30:00Z", "ended_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/calls/call_123 \ -H "Authorization: Bearer jc_live_..."/v1/calls/{call_id}/recordingStream the call recording audio, proxying Twilio auth.
Parameters
call_idstringrequiredExample
curl https://jagcall.com/v1/calls/call_123/recording \ -H "Authorization: Bearer jc_live_..."/v1/calls/{call_id}/transcriptGet the transcript of a call.
Parameters
call_idstringrequiredResponse
[ { "role": "string", "content": "string", "timestamp_ms": 0 }]Example
curl https://jagcall.com/v1/calls/call_123/transcript \ -H "Authorization: Bearer jc_live_..."Phone Numbers
/v1/phone-numbersList all active phone numbers for this organization.
Parameters
limitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "phone_number": "+14155551234", "friendly_name": "Example", "inbound_agent_id": "inbound_agent_123", "status": "active", "schedule": {}, "sms_schedule": {}, "forward_number": "+14155551234", "forward_webhook_url": "https://example.com", "sms_active": false, "created_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/phone-numbers \ -H "Authorization: Bearer jc_live_..."/v1/phone-numbersPurchase and provision a phone number from Twilio.
Request body
{ "phone_number": "+14155551234", "friendly_name": "Example", "inbound_agent_id": "inbound_agent_123"}Response
{ "id": "id_123", "phone_number": "+14155551234", "friendly_name": "Example", "inbound_agent_id": "inbound_agent_123", "status": "active", "schedule": {}, "sms_schedule": {}, "forward_number": "+14155551234", "forward_webhook_url": "https://example.com", "sms_active": false, "created_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/phone-numbers \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"phone_number":"+14155551234","friendly_name":"Example","inbound_agent_id":"inbound_agent_123"}'/v1/phone-numbers/{number_id}Update a phone number (friendly name, inbound agent assignment).
Parameters
number_idstringrequiredRequest body
{ "friendly_name": "Example", "inbound_agent_id": "inbound_agent_123", "schedule": {}, "sms_schedule": {}, "forward_number": "+14155551234", "forward_webhook_url": "https://example.com"}Response
{ "id": "id_123", "phone_number": "+14155551234", "friendly_name": "Example", "inbound_agent_id": "inbound_agent_123", "status": "active", "schedule": {}, "sms_schedule": {}, "forward_number": "+14155551234", "forward_webhook_url": "https://example.com", "sms_active": false, "created_at": "2025-11-01T14:30:00Z"}Example
curl -X PUT https://jagcall.com/v1/phone-numbers/number_123 \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"friendly_name":"Example","inbound_agent_id":"inbound_agent_123","schedule":{},"sms_schedule":{},"forward_number":"+14155551234","forward_webhook_url":"https://example.com"}'/v1/phone-numbers/{number_id}Schedule a phone number for release at the end of the billing period.
Parameters
number_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/phone-numbers/number_123 \ -H "Authorization: Bearer jc_live_..."/v1/phone-numbers/searchSearch for available phone numbers to purchase.
Request body
{ "country": "US", "area_code": "string"}Example
curl -X POST https://jagcall.com/v1/phone-numbers/search \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"country":"US","area_code":"string"}'SMS
/v1/smsSend an outbound SMS message.
Request body
{ "to_number": "+14155551234", "from_number_id": "from_number_123", "body": "string"}Response
{ "id": "id_123", "conversation_id": "conversation_123", "direction": "outbound", "from_number": "+14155551234", "to_number": "+14155551234", "body": "string", "status": "active", "created_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/sms \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"to_number":"+14155551234","from_number_id":"from_number_123","body":"string"}'/v1/sms/conversationsList SMS conversations.
Parameters
limitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "phone_number_id": "phone_number_123", "contact_number": "+14155551234", "status": "active", "last_message_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/sms/conversations \ -H "Authorization: Bearer jc_live_..."/v1/sms/conversations/{conversation_id}/messagesGet messages in an SMS conversation.
Parameters
conversation_idstringrequiredlimitintegeroptionalDefaults to 100. Range 1–500.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "conversation_id": "conversation_123", "direction": "outbound", "from_number": "+14155551234", "to_number": "+14155551234", "body": "string", "status": "active", "created_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/sms/conversations/conversation_123/messages \ -H "Authorization: Bearer jc_live_..."Contacts
/v1/contactsList contacts. Filter by free-text search or exact phone number.
Parameters
searchstringoptionalphonestringoptionallimitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "phone_number": "+14155551234", "name": "Example", "email": "user@example.com", "company": "string", "notes": "string", "tags": "string", "address": "string", "role": "string", "is_favorite": false, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/contacts \ -H "Authorization: Bearer jc_live_..."/v1/contactsCreate a contact. Returns 409 if the phone number already exists.
Request body
{ "phone_number": "+14155551234", "name": "Example", "email": "user@example.com", "company": "string", "notes": "string", "tags": "string", "address": "string", "role": "string", "is_favorite": false}Response
{ "id": "id_123", "phone_number": "+14155551234", "name": "Example", "email": "user@example.com", "company": "string", "notes": "string", "tags": "string", "address": "string", "role": "string", "is_favorite": false, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/contacts \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"phone_number":"+14155551234","name":"Example","email":"user@example.com","company":"string","notes":"string","tags":"string","address":"string","role":"string","is_favorite":false}'/v1/contacts/{contact_id}Get Contact Public
Parameters
contact_idstringrequiredResponse
{ "id": "id_123", "phone_number": "+14155551234", "name": "Example", "email": "user@example.com", "company": "string", "notes": "string", "tags": "string", "address": "string", "role": "string", "is_favorite": false, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/contacts/contact_123 \ -H "Authorization: Bearer jc_live_..."/v1/contacts/{contact_id}Update Contact Public
Parameters
contact_idstringrequiredRequest body
{ "phone_number": "+14155551234", "name": "Example", "email": "user@example.com", "company": "string", "notes": "string", "tags": "string", "address": "string", "role": "string", "is_favorite": false}Response
{ "id": "id_123", "phone_number": "+14155551234", "name": "Example", "email": "user@example.com", "company": "string", "notes": "string", "tags": "string", "address": "string", "role": "string", "is_favorite": false, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X PATCH https://jagcall.com/v1/contacts/contact_123 \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"phone_number":"+14155551234","name":"Example","email":"user@example.com","company":"string","notes":"string","tags":"string","address":"string","role":"string","is_favorite":false}'/v1/contacts/{contact_id}Delete Contact Public
Parameters
contact_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/contacts/contact_123 \ -H "Authorization: Bearer jc_live_..."Campaigns
/v1/campaignsList Campaigns Public
Parameters
limitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "status": "active", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 0, "total_contacts": 3, "called": 0, "completed": 0, "failed": 0, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/campaigns \ -H "Authorization: Bearer jc_live_..."/v1/campaignsCreate a draft campaign with its contact list (JSON, not CSV upload).
Request body
{ "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 2, "contacts": [ { "phone_number": "+14155551234", "name": "Example" } ]}Response
{ "id": "id_123", "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "status": "active", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 0, "total_contacts": 3, "called": 0, "completed": 0, "failed": 0, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/campaigns \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"name":"Example","agent_id":"agent_123","phone_number_id":"phone_number_123","scheduled_at":"2025-11-01T14:30:00Z","max_concurrent":2,"contacts":[{"phone_number":"+14155551234","name":"Example"}]}'/v1/campaigns/{campaign_id}Get Campaign Public
Parameters
campaign_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "status": "active", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 0, "total_contacts": 3, "called": 0, "completed": 0, "failed": 0, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/campaigns/campaign_123 \ -H "Authorization: Bearer jc_live_..."/v1/campaigns/{campaign_id}Delete Campaign Public
Parameters
campaign_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/campaigns/campaign_123 \ -H "Authorization: Bearer jc_live_..."/v1/campaigns/{campaign_id}/cancelCancel Campaign Public
Parameters
campaign_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "status": "active", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 0, "total_contacts": 3, "called": 0, "completed": 0, "failed": 0, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/campaigns/campaign_123/cancel \ -H "Authorization: Bearer jc_live_..."/v1/campaigns/{campaign_id}/contactsList Campaign Contacts Public
Parameters
campaign_idstringrequiredstatusstringoptionallimitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "campaign_id": "campaign_123", "phone_number": "+14155551234", "name": "Example", "status": "active", "outcome": "string", "call_id": "call_123", "error": "string", "called_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/campaigns/campaign_123/contacts \ -H "Authorization: Bearer jc_live_..."/v1/campaigns/{campaign_id}/pausePause Campaign Public
Parameters
campaign_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "status": "active", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 0, "total_contacts": 3, "called": 0, "completed": 0, "failed": 0, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/campaigns/campaign_123/pause \ -H "Authorization: Bearer jc_live_..."/v1/campaigns/{campaign_id}/resumeResume Campaign Public
Parameters
campaign_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "status": "active", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 0, "total_contacts": 3, "called": 0, "completed": 0, "failed": 0, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/campaigns/campaign_123/resume \ -H "Authorization: Bearer jc_live_..."/v1/campaigns/{campaign_id}/startStart Campaign Public
Parameters
campaign_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "agent_id": "agent_123", "phone_number_id": "phone_number_123", "status": "active", "scheduled_at": "2025-11-01T14:30:00Z", "max_concurrent": 0, "total_contacts": 3, "called": 0, "completed": 0, "failed": 0, "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/campaigns/campaign_123/start \ -H "Authorization: Bearer jc_live_..."Automations
/v1/automationsList Automations Public
Parameters
limitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "name": "Example", "description": "string", "enabled": true, "trigger_type": "string", "trigger_filters": {}, "conditions": [], "actions": [], "run_count": 3, "last_run_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/automations \ -H "Authorization: Bearer jc_live_..."/v1/automationsCreate Automation Public
Request body
{ "name": "Example", "trigger_type": "call.no_answer", "description": "string", "trigger_filters": {}, "conditions": [], "actions": [], "enabled": true}Response
{ "id": "id_123", "name": "Example", "description": "string", "enabled": true, "trigger_type": "string", "trigger_filters": {}, "conditions": [], "actions": [], "run_count": 3, "last_run_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/automations \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"name":"Example","trigger_type":"call.no_answer","description":"string","trigger_filters":{},"conditions":[],"actions":[],"enabled":true}'/v1/automations/{automation_id}Get Automation Public
Parameters
automation_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "description": "string", "enabled": true, "trigger_type": "string", "trigger_filters": {}, "conditions": [], "actions": [], "run_count": 3, "last_run_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/automations/automation_123 \ -H "Authorization: Bearer jc_live_..."/v1/automations/{automation_id}Update Automation Public
Parameters
automation_idstringrequiredRequest body
{ "name": "Example", "description": "string", "trigger_type": "string", "trigger_filters": {}, "conditions": [], "actions": [], "enabled": true}Response
{ "id": "id_123", "name": "Example", "description": "string", "enabled": true, "trigger_type": "string", "trigger_filters": {}, "conditions": [], "actions": [], "run_count": 3, "last_run_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z"}Example
curl -X PATCH https://jagcall.com/v1/automations/automation_123 \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"name":"Example","description":"string","trigger_type":"string","trigger_filters":{},"conditions":[],"actions":[],"enabled":true}'/v1/automations/{automation_id}Delete Automation Public
Parameters
automation_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/automations/automation_123 \ -H "Authorization: Bearer jc_live_..."/v1/automations/{automation_id}/runsList Automation Runs Public
Parameters
automation_idstringrequiredlimitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "automation_id": "automation_123", "trigger_event": "string", "status": "active", "started_at": "2025-11-01T14:30:00Z", "completed_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/automations/automation_123/runs \ -H "Authorization: Bearer jc_live_..."Knowledge Bases
/v1/documents/{doc_id}Get Document Public
Parameters
doc_idstringrequiredResponse
{ "id": "id_123", "knowledge_base_id": "knowledge_base_123", "filename": "Example", "content_type": "string", "file_size": 0, "chunk_count": 3, "status": "active", "error_message": "string", "created_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/documents/doc_123 \ -H "Authorization: Bearer jc_live_..."/v1/documents/{doc_id}Delete Document Public
Parameters
doc_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/documents/doc_123 \ -H "Authorization: Bearer jc_live_..."/v1/knowledge-basesList Knowledge Bases Public
Parameters
limitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "name": "Example", "description": "string", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/knowledge-bases \ -H "Authorization: Bearer jc_live_..."/v1/knowledge-basesCreate Knowledge Base Public
Request body
{ "name": "Example", "description": "string"}Response
{ "id": "id_123", "name": "Example", "description": "string", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/knowledge-bases \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"name":"Example","description":"string"}'/v1/knowledge-bases/{kb_id}Get Knowledge Base Public
Parameters
kb_idstringrequiredResponse
{ "id": "id_123", "name": "Example", "description": "string", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/knowledge-bases/kb_123 \ -H "Authorization: Bearer jc_live_..."/v1/knowledge-bases/{kb_id}Delete Knowledge Base Public
Parameters
kb_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/knowledge-bases/kb_123 \ -H "Authorization: Bearer jc_live_..."/v1/knowledge-bases/{kb_id}/documentsList Documents Public
Parameters
kb_idstringrequiredlimitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "knowledge_base_id": "knowledge_base_123", "filename": "Example", "content_type": "string", "file_size": 0, "chunk_count": 3, "status": "active", "error_message": "string", "created_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/knowledge-bases/kb_123/documents \ -H "Authorization: Bearer jc_live_..."/v1/knowledge-bases/{kb_id}/documentsAdd a text document. Chunking + embedding happen synchronously, so the response may take a few seconds for large documents.
Parameters
kb_idstringrequiredRequest body
{ "filename": "Example", "content": "string", "content_type": "text/plain"}Response
{ "id": "id_123", "knowledge_base_id": "knowledge_base_123", "filename": "Example", "content_type": "string", "file_size": 0, "chunk_count": 3, "status": "active", "error_message": "string", "created_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/knowledge-bases/kb_123/documents \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"filename":"Example","content":"string","content_type":"text/plain"}'/v1/knowledge-bases/searchSemantic search across the org's knowledge bases. Restricts to the given knowledge_base_ids (validated for ownership) or all org KBs.
Request body
{ "query": "string", "knowledge_base_ids": [ "string" ], "top_k": 5}Example
curl -X POST https://jagcall.com/v1/knowledge-bases/search \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"query":"string","knowledge_base_ids":["string"],"top_k":5}'Analytics
/v1/analytics/calls-over-timeDaily call counts and outcomes over the period.
Parameters
daysintegeroptionalDefaults to 30. Range 1–90.
Example
curl https://jagcall.com/v1/analytics/calls-over-time \ -H "Authorization: Bearer jc_live_..."/v1/analytics/overviewAggregate call/cost/sentiment metrics for the period.
Parameters
daysintegeroptionalDefaults to 30. Range 1–90.
Example
curl https://jagcall.com/v1/analytics/overview \ -H "Authorization: Bearer jc_live_..."Usage
/v1/usageCurrent-month usage totals (minutes, SMS, cost).
Example
curl https://jagcall.com/v1/usage \ -H "Authorization: Bearer jc_live_..."/v1/usage/historyPer-month usage totals for the last N months.
Parameters
monthsintegeroptionalDefaults to 6. Range 1–12.
Example
curl https://jagcall.com/v1/usage/history \ -H "Authorization: Bearer jc_live_..."Webhooks
/v1/webhook-deliveries/{delivery_id}/replayReplay Delivery Public
Parameters
delivery_idstringrequiredResponse
{ "id": "id_123", "endpoint_id": "endpoint_123", "target_kind": "string", "event_type": "string", "status": "active", "attempts": 0, "next_attempt_at": "2025-11-01T14:30:00Z", "last_status_code": 0, "last_error": "string", "replayed_from_id": "replayed_from_123", "payload": {}, "created_at": "2025-11-01T14:30:00Z", "delivered_at": "2025-11-01T14:30:00Z"}Example
curl -X POST https://jagcall.com/v1/webhook-deliveries/delivery_123/replay \ -H "Authorization: Bearer jc_live_..."/v1/webhook-endpointsList Endpoints Public
Response
[ { "id": "id_123", "url": "https://example.com", "description": "string", "events": [ "string" ], "enabled": true, "has_secret": false, "consecutive_failures": 0, "previous_secret_expires_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z" }]Example
curl https://jagcall.com/v1/webhook-endpoints \ -H "Authorization: Bearer jc_live_..."/v1/webhook-endpointsCreate Endpoint Public
Request body
{ "url": "https://example.com", "description": "string", "events": [ "string" ]}Example
curl -X POST https://jagcall.com/v1/webhook-endpoints \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com","description":"string","events":["string"]}'/v1/webhook-endpoints/{endpoint_id}Get Endpoint Public
Parameters
endpoint_idstringrequiredResponse
{ "id": "id_123", "url": "https://example.com", "description": "string", "events": [ "string" ], "enabled": true, "has_secret": false, "consecutive_failures": 0, "previous_secret_expires_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl https://jagcall.com/v1/webhook-endpoints/endpoint_123 \ -H "Authorization: Bearer jc_live_..."/v1/webhook-endpoints/{endpoint_id}Update Endpoint Public
Parameters
endpoint_idstringrequiredRequest body
{ "url": "https://example.com", "description": "string", "events": [ "string" ], "enabled": true}Response
{ "id": "id_123", "url": "https://example.com", "description": "string", "events": [ "string" ], "enabled": true, "has_secret": false, "consecutive_failures": 0, "previous_secret_expires_at": "2025-11-01T14:30:00Z", "created_at": "2025-11-01T14:30:00Z", "updated_at": "2025-11-01T14:30:00Z"}Example
curl -X PATCH https://jagcall.com/v1/webhook-endpoints/endpoint_123 \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com","description":"string","events":["string"],"enabled":true}'/v1/webhook-endpoints/{endpoint_id}Delete Endpoint Public
Parameters
endpoint_idstringrequiredExample
curl -X DELETE https://jagcall.com/v1/webhook-endpoints/endpoint_123 \ -H "Authorization: Bearer jc_live_..."/v1/webhook-endpoints/{endpoint_id}/deliveriesList Endpoint Deliveries Public
Parameters
endpoint_idstringrequiredstatusstringoptionallimitintegeroptionalDefaults to 50. Range 1–100.
offsetintegeroptionalDefaults to 0. Min 0.
Response
{ "items": [ { "id": "id_123", "endpoint_id": "endpoint_123", "target_kind": "string", "event_type": "string", "status": "active", "attempts": 0, "next_attempt_at": "2025-11-01T14:30:00Z", "last_status_code": 0, "last_error": "string", "replayed_from_id": "replayed_from_123", "payload": {}, "created_at": "2025-11-01T14:30:00Z", "delivered_at": "2025-11-01T14:30:00Z" } ], "total": 3, "limit": 50, "offset": 0}Example
curl https://jagcall.com/v1/webhook-endpoints/endpoint_123/deliveries \ -H "Authorization: Bearer jc_live_..."/v1/webhook-endpoints/{endpoint_id}/rotate-secretRotate Secret Public
Parameters
endpoint_idstringrequiredgracebooleanoptionalDefaults to true.
Example
curl -X POST https://jagcall.com/v1/webhook-endpoints/endpoint_123/rotate-secret \ -H "Authorization: Bearer jc_live_..."/v1/webhook-eventsWebhook Events Public
Example
curl https://jagcall.com/v1/webhook-events \ -H "Authorization: Bearer jc_live_..."Browser Calling
/v1/browser-call/phone-numbersList phone numbers available as caller IDs for browser calling.
Example
curl https://jagcall.com/v1/browser-call/phone-numbers \ -H "Authorization: Bearer jc_live_..."/v1/browser-call/tokenGenerate a Twilio access token for browser-based WebRTC calling.
Parameters
platformstringoptionalOne of: web, ios, android. Defaults to "web".
Example
curl -X POST https://jagcall.com/v1/browser-call/token \ -H "Authorization: Bearer jc_live_..."Billing
/v1/billing/balanceGet current balance for the organization.
Example
curl https://jagcall.com/v1/billing/balance \ -H "Authorization: Bearer jc_live_..."Integrations
/v1/integrationsSet integration credentials (e.g. Frubix API key, webhook URL) for the org.
Request body
{ "frubix_api_key": "string", "webhook_url": "https://example.com", "webhook_secret": "string"}Example
curl -X PUT https://jagcall.com/v1/integrations \ -H "Authorization: Bearer jc_live_..." \ -H "Content-Type: application/json" \ -d '{"frubix_api_key":"string","webhook_url":"https://example.com","webhook_secret":"string"}'Still need help?
Can't find what you're looking for? Send us a message and our team will get back to you.