Back to Docs
📡

Push API

Programmatically submit calls for analysis via API.

Last updated: Mar 4, 2026

Overview

The Push API lets you programmatically submit calls for analysis. This is useful when:

  • You have recordings in your own systems
  • You're building custom integrations
  • You need to process calls from unsupported platforms
  • You want to automate bulk uploads
  • Authentication

    API authentication requires a Push API key generated from Integrations > Push API.

    Include your key in the request header: X-API-Key: pk_...

    Your team is inferred from the API key, so you do not need to pass a team ID in the body.

    Keys are shown once when generated. Store them securely and rotate if exposed.

    Submitting a Call

    Basic workflow:

    1. Generate an API key from Integrations > Push API

    2. Prepare your call recording and metadata

    3. Make a POST request to /api/integrations/push-api/ingest

    4. Include at least one of transcript or audioUrl

    5. Add optional fields like repName, repEmail, callTitle, duration, callDate, and metadata

    6. Receive call ID in response

    7. Wait for analysis to complete in call history

    Request Format

    Required:

    - transcript or audioUrl (at least one is required)

    Optional (camelCase or snake_case supported):

    - repName / rep_name

    - repEmail / rep_email

    - callTitle / call_title

    - callDate / call_date (ISO date)

    - audioUrl / audio_url

    - duration (minutes, seconds, or ms; normalized automatically)

    - metadata (flat key/value object)

    Endpoint and Example

    Endpoint: POST https://app.kendo.ai/api/integrations/push-api/ingest

    Headers:

    - Content-Type: application/json

    - X-API-Key: pk_your_key_here

    Example body:

    { "transcript": "Rep: Thanks for joining.", "callTitle": "Demo Call", "repEmail": "rep@company.com", "duration": 18, "metadata": { "source": "hubspot", "recordId": "12345" } }

    Rate Limits

    API rate limits:

    - 30 requests per minute per API key

    - Request body max size is 5 MB

    - Handle 429 responses with retry/backoff

    - Handle 401 for missing/invalid API keys

    Each submitted call uses call analysis capacity in your workspace.

    Processing Behavior

    If you send audioUrl, Kendo starts audio transcription and analysis.

    If you send only transcript, Kendo starts transcript-only analysis.

    If both are sent, audio is prioritized for transcription and the inline transcript is not persisted as the primary transcript.

    Successful ingestion returns 201 with a callId that you can store for auditing.

    Still need help?

    Can't find what you're looking for? Our support team is here to help.