Sarj AI Developer API Calls API

Create outbound voice calls and retrieve call details and transcripts.

Operations 12

POST /calls Place an outbound Sarj.ai voice call #
GET /calls/{call_id} Fetch Sarj.ai voice call details by call_id #
POST /v1/beta/calls/outbound Outbound Call #
POST /v1/beta/calls/chat Create Chat #
POST /v1/beta/calls/client Create Client Call #
GET /v1/beta/calls/detail/{call_id} Get Detail #
GET /v1/beta/calls/{call_id}/transcriptions Get Transcriptions #
POST /v1/beta/calls/{call_id}/retry-outcome Retry Call Outcome #
POST /v1/beta/calls/count-for-org Count For Org #
POST /v1/beta/calls/blocked-numbers Block Number #
DELETE /v1/beta/calls/blocked-numbers/{phone_number} Unblock Number #
GET /v1/beta/calls/phone-numbers List Phone Numbers #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sarj-ai-developer-api-calls-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sarj-ai-developer-api-calls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sarj Ai Developer Calls API
  version: 1.0.0
  description: 'Operations tagged Calls across 3 of this provider''s published API definitions: sarj-ai-developer-api-calls-api-openapi.yml, sarj-ai-developer-api-developer-openapi.json, sarj-ai-developer-api-voice-platform-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://platform-api.sarj.ai/api/v1
  description: Production
tags:
- name: Calls
  description: Create outbound voice calls and retrieve call details and transcripts.
paths:
  /calls:
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
    post:
      tags:
      - Calls
      summary: Place an outbound Sarj.ai voice call
      description: '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 to start calls by writing to the database or invoking telephony providers directly.'
      operationId: createCall
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCallRequest'
        required: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse_PublicCall_'
              example:
                data:
                  id: call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b
                  status: queued
                  phone_number: '+966512345678'
                  scenario_id: scn_abc123
                  created_at: '2026-04-12T10:30:00Z'
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
        '400':
          description: Outbound call failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  type: outbound_call_failed
                  message: Outbound call could not be initiated.
                  reason: telephony_provider_unavailable
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  type: unauthorized
                  message: Authentication required.
                meta: {}
        '403':
          description: Forbidden — phone number blocked or scenario access denied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                phone_number_blocked:
                  summary: Phone number is blocked
                  value:
                    error:
                      type: phone_number_blocked
                      message: Phone number +966512345678 is blocked.
                      phone_number: '+966512345678'
                    meta:
                      request_id: 550e8400-e29b-41d4-a716-446655440000
                scenario_forbidden:
                  summary: Scenario belongs to a different organization
                  value:
                    error:
                      type: scenario_forbidden
                      message: Access denied to scenario scn_abc123.
                      scenario_id: scn_abc123
                    meta:
                      request_id: 550e8400-e29b-41d4-a716-446655440000
        '404':
          description: Scenario not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  type: scenario_not_found
                  message: Scenario scn_abc123 was not found.
                  scenario_id: scn_abc123
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
        '422':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  type: validation_error
                  message: Request validation failed.
                  field_violations:
                  - field: body.phone_number
                    message: value is not a valid phone number
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
        '429':
          description: Call limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  type: call_limit_exceeded
                  message: Call limit of 10 reached for phone number +966512345678.
                  phone_number: '+966512345678'
                  call_limit: 10
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
      x-codeSamples:
      - label: Python (SDK)
        lang: Python
        source: "import os\nfrom sarj_platform_sdk import SDK\n\nsdk = SDK(api_key_auth=os.environ[\"SARJ_API_KEY\"])\nres = sdk.calls.create_call(\n    phone_number=\"+966512345678\",\n    scenario_id=\"scn_abc123\",\n    language=\"ar\",\n)\nprint(f\"Call queued: {res.data.id}\")"
      - label: curl
        lang: bash
        source: "curl -X POST https://platform-api.sarj.ai/api/v1/calls \\\n  -H \"Authorization: Bearer $SARJ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"phone_number\": \"+966512345678\",\n    \"scenario_id\": \"scn_abc123\",\n    \"language\": \"ar\"\n  }'"
      - label: Python (requests)
        lang: Python
        source: "import os\nimport requests\n\nresponse = requests.post(\n    \"https://platform-api.sarj.ai/api/v1/calls\",\n    headers={\n        \"Authorization\": f\"Bearer {os.environ['SARJ_API_KEY']}\",\n    },\n    json={\n        \"phone_number\": \"+966512345678\",\n        \"scenario_id\": \"scn_abc123\",\n        \"language\": \"ar\",\n    },\n)\nresponse.raise_for_status()\ncall = response.json()[\"data\"]\nprint(f\"Call queued: {call['id']}\")"
      - label: TypeScript
        lang: TypeScript
        source: "const response = await fetch(\"https://platform-api.sarj.ai/api/v1/calls\", {\n  method: \"POST\",\n  headers: {\n    \"Authorization\": `Bearer ${process.env.SARJ_API_KEY}`,\n    \"Content-Type\": \"application/json\",\n  },\n  body: JSON.stringify({\n    phone_number: \"+966512345678\",\n    scenario_id: \"scn_abc123\",\n    language: \"ar\",\n  }),\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst { data: call } = await response.json();\nconsole.log(`Call queued: ${call.id}`);"
      security:
      - ApiKeyAuth: []
  /calls/{call_id}:
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
    get:
      tags:
      - Calls
      summary: Fetch Sarj.ai voice call details by call_id
      description: '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; generated asynchronously shortly after completed calls, null otherwise), and timestamps (created_at, updated_at, started_at, ended_at). Use this whenever the user asks about a specific call, phone conversation, or voice interaction by its call_id — do not query other tools.'
      operationId: getCall
      parameters:
      - name: call_id
        in: path
        required: true
        schema:
          type: string
          title: Call Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse_PublicCallDetail_'
              example:
                data:
                  id: call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b
                  status: completed
                  phone_number: '+966512345678'
                  scenario_id: 550e8400-e29b-41d4-a716-446655440000
                  language: ar
                  direction: outbound
                  variables:
                    customer_name: Ahmad
                    order_id: ORD-123
                  duration: 142
                  recording_url: https://storage.googleapis.com/sarj-recordings/calls/8f9b2c1e.mp4?X-Goog-Signature=...
                  transcript:
                  - role: assistant
                    content: Hello Ahmad, calling about order ORD-123.
                  - role: user
                    content: Yes, hi.
                  - role: assistant
                    content: Your order is ready for delivery tomorrow.
                  report:
                    generated_at: '2026-04-12T10:33:41Z'
                    outcome:
                      status: success
                      reason: The customer confirmed the delivery appointment for tomorrow.
                      success_criteria:
                      - text: Customer confirms the delivery slot
                        achieved: true
                        is_primary: true
                  created_at: '2026-04-12T10:30:00Z'
                  updated_at: '2026-04-12T10:32:22Z'
                  started_at: '2026-04-12T10:30:05Z'
                  ended_at: '2026-04-12T10:32:22Z'
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                error:
                  type: unauthorized
                  message: Authentication required.
                meta: {}
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: API key not associated with an organization.
          content:
            application/json:
              example:
                error:
                  type: no_organization
                  message: API key is not associated with an organization.
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Call not found.
          content:
            application/json:
              example:
                error:
                  type: call_not_found
                  message: Call call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b was not found.
                  call_id: call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b
                meta:
                  request_id: 550e8400-e29b-41d4-a716-446655440000
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
      - label: Python (SDK)
        lang: Python
        source: 'import os

          from sarj_platform_sdk import SDK


          sdk = SDK(api_key_auth=os.environ["SARJ_API_KEY"])

          res = sdk.calls.get_call(call_id="call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b")

          call = res.data

          print(f"Status: {call.status}, duration: {call.duration}")'
      - label: curl
        lang: bash
        source: "curl https://platform-api.sarj.ai/api/v1/calls/call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b \\\n  -H \"Authorization: Bearer $SARJ_API_KEY\""
      - label: Python (requests)
        lang: Python
        source: "import os\nimport requests\n\ncall_id = \"call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b\"\nresponse = requests.get(\n    f\"https://platform-api.sarj.ai/api/v1/calls/{call_id}\",\n    headers={\n        \"Authorization\": f\"Bearer {os.environ['SARJ_API_KEY']}\",\n    },\n)\nresponse.raise_for_status()\ncall = response.json()[\"data\"]\nprint(f\"Status: {call['status']}, duration: {call['duration']}\")"
      - label: TypeScript
        lang: TypeScript
        source: "const callId = \"call_8f9b2c1e-4a5d-4f6e-8b1a-2c3d4e5f6a7b\";\nconst response = await fetch(\n  `https://platform-api.sarj.ai/api/v1/calls/${callId}`,\n  {\n    headers: {\n      \"Authorization\": `Bearer ${process.env.SARJ_API_KEY}`,\n    },\n  },\n);\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst { data: call } = await response.json();\nconsole.log(`Status: ${call.status}, duration: ${call.duration}`);"
      security:
      - ApiKeyAuth: []
  /v1/beta/calls/outbound:
    post:
      tags:
      - Calls
      summary: Outbound Call
      operationId: callsOutboundCall
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OutboundCallInput'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Call'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/chat:
    post:
      tags:
      - Calls
      summary: Create Chat
      operationId: callsCreateChat
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCallInput'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/InboundCallSuccess'
                - $ref: '#/components/schemas/InboundCallFailure'
                title: Response Callscreatechat
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/client:
    post:
      tags:
      - Calls
      summary: Create Client Call
      operationId: callsCreateClientCall
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientCallInput'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientCallResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/detail/{call_id}:
    get:
      tags:
      - Calls
      summary: Get Detail
      operationId: callsGetDetail
      parameters:
      - name: call_id
        in: path
        required: true
        schema:
          type: string
          title: Call Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallDetail'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/{call_id}/transcriptions:
    get:
      tags:
      - Calls
      summary: Get Transcriptions
      operationId: callsGetTranscriptions
      parameters:
      - name: call_id
        in: path
        required: true
        schema:
          type: string
          title: Call Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/STTTranscription'
                title: Response Callsgettranscriptions
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/{call_id}/retry-outcome:
    post:
      tags:
      - Calls
      summary: Retry Call Outcome
      operationId: callsRetryCallOutcome
      parameters:
      - name: call_id
        in: path
        required: true
        schema:
          type: string
          title: Call Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/count-for-org:
    post:
      tags:
      - Calls
      summary: Count For Org
      operationId: callsCountForOrg
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CountForOrgInput'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountForOrgResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/blocked-numbers:
    post:
      tags:
      - Calls
      summary: Block Number
      operationId: callsBlockNumber
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockNumberInput'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/blocked-numbers/{phone_number}:
    delete:
      tags:
      - Calls
      summary: Unblock Number
      operationId: callsUnblockNumber
      parameters:
      - name: phone_number
        in: path
        required: true
        schema:
          type: string
          title: Phone Number
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
  /v1/beta/calls/phone-numbers:
    get:
      tags:
      - Calls
      summary: List Phone Numbers
      operationId: callsListPhoneNumbers
      parameters:
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 10
          title: Limit
      - name: phone_number
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone Number
      - name: organization_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Organization Id
      - name: sort_by
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/PhoneNumberSortField'
          default: total_call_count
      - name: sort_order
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortOrder'
          default: desc
      - name: date_from
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Date From
      - name: date_to
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Date To
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumberHistoryResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://platform-api.sarj.ai/api/v1
      description: Production
components:
  schemas:
    KbRetrievalMode:
      type: string
      enum:
      - inline
      - llm_tool
      title: KbRetrievalMode
    VoiceMigrationMessage:
      properties:
        type:
          type: string
          const: voice_migration
          title: Type
          default: voice_migration
      type: object
      title: VoiceMigrationMessage
    CustomScenarioRecord:
      properties:
        id:
          type: string
          title: Id
        created_at:
          type: string
          format: date-time
          title: Created At
        organization_id:
          type: string
          title: Organization Id
        creator_id:
          type: string
          title: Creator Id
        name:
          type: string
          title: Name
        status:
          $ref: '#/components/schemas/CustomScenarioStatus'
        config:
          $ref: '#/components/schemas/CustomScenarioConfig'
        updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At
        last_modified_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Modified By
        deleted_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Deleted At
      type: object
      required:
      - id
      - created_at
      - organization_id
      - creator_id
      - name
      - status
      - config
      title: CustomScenarioRecord
    GoogleSTTSettings:
      properties:
        provider:
          type: string
          const: google
          title: Provider
        model:
          type: string
          enum:
          - long
          - short
          - telephony
          - chirp_2
          - chirp_3
          title: Model
        region:
          type: string
          enum:
          - us
          - eu
          title: Region
      type: object
      required:
      - provider
      - model
      - region
      title: GoogleSTTSettings
    SuccessCriterion:
      properties:
        is_primary:
          type: boolean
          title: Is Primary
          description: Whether this is the primary success criterion. Exactly one should be True.
          default: false
        text:
          type: string
          title: Text
          description: Description of what constitutes success. Use bullet points with \n for multiple items in primary criteria.
          examples:
          - Customer confirmed their order details
          - '- Collected payment information\n- Confirmed payment date\n- Sent confirmation'
          - Agent successfully created support ticket with all required fields
      type: object
      required:
      - text
      title: SuccessCriterion
      description: "Defines a success criterion for evaluating call outcomes.\n\nSuccess criteria determine whether a call achieved its business objectives.\nThey are used for analytics and quality monitoring.\n\n- Could be tool-related: \"Agent transferred to specialist when customer requested human advisor\"\n- Could be business-related: \"Offered loyalty program benefits to retain customer\"\n\nSTRUCTURE:\n- PRIMARY (is_primary=True): Exactly ONE criterion that determines call success/failure.\n  The text field can contain multiple points separated by newlines.\n  Format: \"- Point 1\\n- Point 2\\n- Point 3\"\n    - Single point: \"Successfully collected customer feedback and confirmed satisfaction\"\n    - Multiple points: \"- Collected customer payment information\\\\n- Confirmed scheduled payment date\\\\n- Sent payment confirmation\"\n    - With tool call: \"- Collected issue details\\\\n- Created support ticket\\\\n- Confirmed ticket number\"\n  ALL points must be met for the call to be marked as successful.\n\n- SECONDARY (is_primary=False): Zero or more additional criteria.\n  Each secondary is a separate object. These are nice-to-have objectives\n  that don't affect overall call success/failure status.\n\nTOOL CALLS IN SUCCESS CRITERIA:\n- As Primary: When tool call IS the main business objective\n  Example: \"Agent successfully created support ticket with all required fields\"\n- As Secondary: When tool usage is optional/supplementary\n  Example: \"Agent transferred to specialist when loan exceeded $100K\"\n- Not in Criteria: When it's standard operation (e.g., end-call is expected behavior)\n\nCRITICAL DISTINCTION:\n- Tool CONFIGURATION (messages, conditions) → Define in \"tools\" array\n- Tool USAGE EVALUATION → Define here ONLY when it's a business objective"
    FieldViolation:
      properties:
        field:
          type: string
          title: Field
          description: Dot-separated path to the invalid field (e.g. `phone_number.country_code`).
          examples:
          - phone_number.country_code
        message:
          type: string
          title: Message
          description: Human-readable description of the violation.
          examples:
          - Must start with +
      additionalProperties: false
      type: object
      required:
      - field
      - message
      title: FieldViolation
    SarjF5TTSSettings:
      properties:
        provider:
          type: string
          const: sarj_f5
          title: Provider
        voice:
          $ref: '#/components/schemas/SarjF5TTSVoice'
          default: Male
      type: object
      required:
      - provider
      title: SarjF5TTSSettings
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ChatCallInput:
      properties:
        app_settings:
          anyOf:
          - $ref: '#/components/schemas/GlobalOverriddenSettings'
          - $ref: '#/components/schemas/GlobalDefaultSettings'
          title: App Settings
        language:
          $ref: '#/components/schemas/Language'
        scenario:
          $ref: '#/components/schemas/CustomScenario'
      type: object
      required:
      - language
      - scenario
      title: ChatCallInput
    CreateCallRequest:
      properties:
        phone_number:
          type: string
          title: Phone Number
          description: Phone number to call in E.164 format.
          examples:
          - '+966512345678'
        scenario_id:
          type: string
          minLength: 1
          title: Scenario Id
          description: ID of the scenario to use for this call.
        variables:
          additionalProperties: true
          type: object
          title: Variables
          description: Template variables to inject into the scenario.
        language:
          $ref: '#/components/schemas/Language'
          description: Language for the call. Defaults to Arabic (ar) if not specified.
          default: ar
      additionalProperties: false
      type: object
      required:
      - phone_number
      - scenario_id
      title: CreateCallRequest
    CallNotCompletedType:
      type: string
      enum:
      - failed
      - automation
      - user_rejected
      - user_unavailable
      - no_answer
      - rejected_by_carrier
      - invalid_number
      - sip_trunk_failure
      title: CallNotCompletedType
    SallaToolsBundleConfiguration:
      properties:
        tool_slug:
          type: string
          const: salla-tools
          title: Tool Slug
        functionalities_enabled_map:
          additionalProperties:
            type: boolean
          propertyNames:
            $ref: '#/components/schemas/SallaCustomerFacingFunctionality'
          type: object
          title: Functionalities Enabled Map
          description: 'Important: all functionalities must be mapped to a True/False value. Missing parameters are ambiguous and could cause errors.'
          examples:
          - browse-logistics: true
            browse-products: true
            read-previous-orders: true
      type: object
      required:
      - tool_slug
      - functionalities_enabled_map
      title: SallaToolsBundleConfiguration
      description: 'Enables Salla e-commerce platform integration for the voice agent.


        NOTE: Requires a functional Salla integration configured for the organization.'
    OpenAITTSModels:
      type: string
      enum:
      - gpt-4o-mini-tts
      - tts-1
      - tts-1-hd
      title: OpenAITTSModels
    ScheduleConfiguration:
      properties:
        timezone:
          type: string
          title: Timezone
          description: IANA timezone (e.g., 'America/New_York')
        schedule:
          additionalProperties:
            $ref: '#/components/schemas/TimeRangeDayConfiguration'
          propertyNames:
            $ref: '#/components/schemas/WeekDay'
          type: object
          title: Schedule
      type: object
      required:
      - timezone
      - schedule
      title: ScheduleConfiguration
    Schema:
      properties:
        fields:
          items:
            anyOf:
            - $ref: '#/components/schemas/GlobalVariableField'
            - $ref: '#/components/schemas/ScenarioRequiredField'
            - $ref: '#/components/schemas/ScenarioOptionalField'
          type: array
          title: Fields
      type: object
      required:
      - fields
      title: Schema
    ScenarioInsightAnalysisMessage:
      properties:
        type:
          type: string
          const: scenario_insight_analysis
          title: Type
          default: scenario_insight_analysis
        call_id:
          type: string
          title: Call Id
      type: object
      required:
      - call_id
      title: ScenarioInsightAnalysisMessage
    CustomApiToolParameters:
      properties:
        tool_slug:
          type: string
          const: custom-api
          title: Tool Slug
        name:
          type: string
          minLength: 1
          title: Name
          description: Unique identifier for the API tool
          examples:
          - order_lookup
          - booking_check
        title:
          type: string
          minLength: 1
          title: Title
          description: Human-readable title for the API
          examples:
          - Order Lookup
          - Check Booking Status
        description:
          type: string
          title: Description
          description: Description of what this API doe

# --- truncated at 32 KB (176 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sarj-ai-developer-api/refs/heads/main/openapi/sarj-ai-developer-api-calls-api-openapi.yml