# Sarj.ai > Voice AI platform — build production AI-powered phone calls - [Sarj.ai Developer API](https://platform-docs.sarj.ai/index.md): REST API and MCP server for outbound voice calls. - [Getting Started](https://platform-docs.sarj.ai/getting-started.md): REST quickstart — API key, health check, first call. - [MCP Server](https://platform-docs.sarj.ai/mcp-server.md): Expose the Sarj.ai API as MCP tools for AI agents. - [Webhooks](https://platform-docs.sarj.ai/webhooks.md): Receive a POST when a call ends — completed, no answer, or failed. - [Health Check](https://platform-docs.sarj.ai/api-reference/system/health-check.md): Returns the operational status of the API. Does not require authentication. - [Place an outbound Sarj.ai voice call](https://platform-docs.sarj.ai/api-reference/calls/place-an-outbound-sarjai-voice-call.md): Place an outbound Sarj.ai voice call: dials the given phone_number and runs the specified scenario (with optional template variables and language). Returns a call_id that can be polled via getCall. Use this whenever the user asks to call, dial, ring, or phone someone through Sarj.ai — do not attempt… - [Cancel a pending scheduled Sarj.ai call](https://platform-docs.sarj.ai/api-reference/calls/cancel-a-pending-scheduled-sarjai-call.md): Cancel a call that is still pending in status 'scheduled' — a booked future call or a platform-booked retry attempt. This is also the per-person stop-calling lever: cancelling a pending retry ends its retry chain. Once a call has been released for dialing it can no longer be cancelled and this retur… - [Move a pending scheduled Sarj.ai call to a new time](https://platform-docs.sarj.ai/api-reference/calls/move-a-pending-scheduled-sarjai-call-to-a-new-time.md): Update scheduled_at on a call that is still pending in status 'scheduled'. The new time must be at least 10 minutes ahead and within 30 days. Once released for dialing, rescheduling returns 409. - [Fetch Sarj.ai voice call details by call_id](https://platform-docs.sarj.ai/api-reference/calls/fetch-sarjai-voice-call-details-by-call_id.md): Fetch details of a Sarj.ai voice call by call_id: status, phone_number, scenario_id, language, direction (inbound/outbound), scenario variables, duration (seconds), recording_url (signed download link), transcript (list of spoken messages), report (post-call outcome with success-criteria results; ge… - [Redirect to a fresh download URL for a Sarj.ai call recording](https://platform-docs.sarj.ai/api-reference/calls/redirect-to-a-fresh-download-url-for-a-sarjai-call-recording.md): Resolve a Sarj.ai recording link to a freshly minted, short-lived download URL via a 302 redirect. Two ways to authenticate: an API key (the standard `/api/v1` Bearer credential — the request is authorized against the key's organization), or, when no API key is sent, a call-scoped recording token in… - [Create a Sarj.ai schedule config (retry policy) for outbound calls](https://platform-docs.sarj.ai/api-reference/schedule-configs/create-a-sarjai-schedule-config-retry-policy-for-outbound-calls.md): Create a reusable retry policy: how many times to retry a call the customer did not answer, how long to wait between attempts, and in which daily window. Reference the returned id as schedule_config_id when creating calls. This endpoint is create-only today — there is no way to fetch, list, update,… - [Speech-to-Text](https://platform-docs.sarj.ai/speech-to-text.md) - [Text-to-Speech](https://platform-docs.sarj.ai/text-to-speech.md) ## OpenAPI Specs - [openapi-internal](/api-reference/openapi-internal.json) - [openapi](/api-reference/openapi.json)