{ "opencollection": "1.0.0", "info": { "name": "Exotel API", "version": "1.0", "description": "Representative subset of Exotel's Twilio-style cloud telephony REST API. Base URL is region-specific: https://api.exotel.com (Singapore) or https://api.in.exotel.com (Mumbai/India). Auth is HTTP Basic with API Key (username) and API Token (password); Account SID appears in every path. XML by default - append .json for JSON. Endpoint paths/methods confirmed from Exotel docs; field schemas modeled." }, "request": { "auth": { "type": "basic", "username": "{{apiKey}}", "password": "{{apiToken}}" } }, "items": [ { "info": { "name": "Voice", "type": "folder" }, "items": [ { "info": { "name": "Connect two numbers / connect to a call flow", "type": "http" }, "http": { "method": "POST", "url": "https://api.exotel.com/v1/Accounts/:sid/Calls/connect.json", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." } ], "body": { "type": "urlencoded", "data": "From=&To=&CallerId=&Url=&Record=true" } }, "docs": "POST /v1/Accounts/{sid}/Calls/connect - connect two numbers, or connect a number to an Exotel call flow via the Url parameter. Confirmed endpoint." } ] }, { "info": { "name": "Call Details", "type": "folder" }, "items": [ { "info": { "name": "Get call details", "type": "http" }, "http": { "method": "GET", "url": "https://api.exotel.com/v1/Accounts/:sid/Calls/:CallSid.json", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "CallSid", "value": "", "type": "path", "description": "Call Sid." } ] }, "docs": "GET /v1/Accounts/{sid}/Calls/{CallSid} - status, duration, price, recording URL. Confirmed endpoint." }, { "info": { "name": "List / bulk-query calls", "type": "http" }, "http": { "method": "GET", "url": "https://api.exotel.com/v1/Accounts/:sid/Calls.json", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "DateCreated", "value": "", "type": "query" }, { "name": "Status", "value": "", "type": "query" } ] }, "docs": "MODELED path - documented bulk call queries, path follows Exotel Twilio-style convention." } ] }, { "info": { "name": "SMS", "type": "folder" }, "items": [ { "info": { "name": "Send SMS", "type": "http" }, "http": { "method": "POST", "url": "https://api.exotel.com/v1/Accounts/:sid/Sms/send.json", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." } ], "body": { "type": "urlencoded", "data": "From=&To=&Body=&DltEntityId=&SmsType=transactional" } }, "docs": "POST /v1/Accounts/{sid}/Sms/send - send a single SMS. India traffic needs DltEntityId. Confirmed endpoint." }, { "info": { "name": "Get SMS details", "type": "http" }, "http": { "method": "GET", "url": "https://api.exotel.com/v1/Accounts/:sid/Sms/Messages/:SmsSid.json", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "SmsSid", "value": "", "type": "path", "description": "SMS Sid." } ] }, "docs": "MODELED path - documented SMS details lookup, path follows Exotel convention." } ] }, { "info": { "name": "Numbers", "type": "folder" }, "items": [ { "info": { "name": "Get number metadata", "type": "http" }, "http": { "method": "GET", "url": "https://api.exotel.com/v1/Accounts/:sid/Numbers/:Number.json", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "Number", "value": "", "type": "path", "description": "Phone number (E.164)." } ] }, "docs": "GET /v1/Accounts/{sid}/Numbers/{Number} - operator/circle, type, DND status. Confirmed endpoint." } ] }, { "info": { "name": "Campaigns", "type": "folder" }, "items": [ { "info": { "name": "List campaigns", "type": "http" }, "http": { "method": "GET", "url": "https://api.exotel.com/v2/accounts/:sid/campaigns", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." } ] }, "docs": "GET /v2/accounts/{sid}/campaigns. Confirmed v2 resource." }, { "info": { "name": "Create campaign", "type": "http" }, "http": { "method": "POST", "url": "https://api.exotel.com/v2/accounts/:sid/campaigns", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." } ], "body": { "type": "json", "data": "{\"name\":\"my-campaign\",\"caller_id\":\"\",\"lists\":[],\"url\":\"\"}" } }, "docs": "POST /v2/accounts/{sid}/campaigns. Confirmed endpoint; body modeled." }, { "info": { "name": "Get campaign", "type": "http" }, "http": { "method": "GET", "url": "https://api.exotel.com/v2/accounts/:sid/campaigns/:campaign_id", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "campaign_id", "value": "", "type": "path" } ] }, "docs": "GET /v2/accounts/{sid}/campaigns/{campaign_id}. Confirmed endpoint." }, { "info": { "name": "Update / pause / resume campaign", "type": "http" }, "http": { "method": "PUT", "url": "https://api.exotel.com/v2/accounts/:sid/campaigns/:campaign_id", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "campaign_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "PUT /v2/accounts/{sid}/campaigns/{campaign_id}. Confirmed endpoint." }, { "info": { "name": "Delete campaign", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.exotel.com/v2/accounts/:sid/campaigns/:campaign_id", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "campaign_id", "value": "", "type": "path" } ] }, "docs": "DELETE /v2/accounts/{sid}/campaigns/{campaign_id}. Confirmed endpoint." }, { "info": { "name": "Get campaign call details", "type": "http" }, "http": { "method": "GET", "url": "https://api.exotel.com/v2/accounts/:sid/campaigns/:campaign_id/call-details", "params": [ { "name": "sid", "value": "", "type": "path", "description": "Account SID." }, { "name": "campaign_id", "value": "", "type": "path" } ] }, "docs": "GET /v2/accounts/{sid}/campaigns/{campaign_id}/call-details. Confirmed endpoint." } ] } ] }