openapi: 3.0.1 info: title: Retell AI Agent Call API description: REST API for building, testing, and deploying AI voice agents that make and receive phone and web calls. Configure a response engine (Retell LLM, a custom LLM, or a Conversation Flow), attach a voice, provision phone numbers, place outbound and web calls, run batch campaigns, ground agents with knowledge bases, and read back transcripts, recordings, and call analysis. All endpoints are authenticated with a Bearer API key. termsOfService: https://www.retellai.com/terms-of-service contact: name: Retell AI Support url: https://docs.retellai.com version: '2.0' servers: - url: https://api.retellai.com security: - api_key: [] tags: - name: Call paths: /get-call/{call_id}: get: operationId: getCall tags: - Call summary: Retrieve a call. description: Returns the full call object including status, transcript, recording URL, call analysis, and cost breakdown. parameters: - name: call_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Call' /list-calls: post: operationId: listCalls tags: - Call summary: List calls. description: Lists calls with optional filter criteria (agent, status, direction, timestamp ranges), sort order, and pagination. requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/ListCallsRequest' responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Call' components: schemas: ListCallsRequest: type: object properties: filter_criteria: type: object properties: agent_id: type: array items: type: string call_status: type: array items: $ref: '#/components/schemas/CallStatus' direction: type: array items: type: string sort_order: type: string enum: - ascending - descending limit: type: integer pagination_key: type: string Call: type: object properties: call_id: type: string call_type: type: string enum: - phone_call - web_call agent_id: type: string call_status: $ref: '#/components/schemas/CallStatus' from_number: type: string to_number: type: string direction: type: string start_timestamp: type: integer end_timestamp: type: integer duration_ms: type: integer transcript: type: string transcript_object: type: array items: type: object recording_url: type: string public_log_url: type: string disconnection_reason: type: string call_analysis: $ref: '#/components/schemas/CallAnalysis' call_cost: $ref: '#/components/schemas/CallCost' metadata: type: object CallAnalysis: type: object properties: call_summary: type: string user_sentiment: type: string enum: - Negative - Positive - Neutral - Unknown call_successful: type: boolean in_voicemail: type: boolean custom_analysis_data: type: object CallCost: type: object properties: combined_cost: type: number description: Total cost of the call in cents. total_duration_seconds: type: integer product_costs: type: array items: type: object properties: product: type: string description: e.g. retell_platform, tts, llm, telephony. unit_price: type: number cost: type: number CallStatus: type: string enum: - registered - ongoing - ended - error securitySchemes: api_key: type: http scheme: bearer bearerFormat: apiKey description: 'Retell API key, sent as: Authorization: Bearer '