{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/twilio/main/json-schema/twilio-create-call-request-schema.json",
  "title": "CreateCallRequest",
  "x-generated": "2026-10-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/twilio-calls-api-openapi.yml#/components/schemas/CreateCallRequest",
  "type": "object",
  "required": [
    "To",
    "From"
  ],
  "properties": {
    "To": {
      "type": "string",
      "description": "Phone number, SIP URI, or client identifier to call"
    },
    "From": {
      "type": "string",
      "description": "Twilio phone number or verified caller ID"
    },
    "Url": {
      "type": "string",
      "format": "uri",
      "description": "TwiML URL for call instructions"
    },
    "ApplicationSid": {
      "type": "string",
      "description": "SID of the TwiML application to handle the call",
      "pattern": "^AP[0-9a-fA-F]{32}$"
    },
    "Method": {
      "type": "string",
      "enum": [
        "GET",
        "POST"
      ],
      "default": "POST"
    },
    "StatusCallback": {
      "type": "string",
      "format": "uri",
      "description": "URL for call status webhooks"
    },
    "StatusCallbackMethod": {
      "type": "string",
      "enum": [
        "GET",
        "POST"
      ]
    },
    "StatusCallbackEvent": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "initiated",
          "ringing",
          "answered",
          "completed"
        ]
      }
    },
    "Timeout": {
      "type": "integer",
      "description": "Ring timeout in seconds",
      "default": 60
    },
    "Record": {
      "type": "boolean",
      "description": "Whether to record the call",
      "default": false
    },
    "RecordingChannels": {
      "type": "string",
      "enum": [
        "mono",
        "dual"
      ]
    },
    "RecordingStatusCallback": {
      "type": "string",
      "format": "uri"
    },
    "MachineDetection": {
      "type": "string",
      "enum": [
        "Enable",
        "DetectMessageEnd"
      ],
      "description": "Enable answering machine detection"
    },
    "Twiml": {
      "type": "string",
      "description": "Inline TwiML instructions for the call"
    },
    "CallerId": {
      "type": "string",
      "description": "Caller ID to display on outbound call"
    }
  }
}