Telefon Call Recording API

Record, store, transcribe, and retrieve call recordings. Supports on-demand and automatic recording, dual-channel recording for separate caller/callee audio, AI-powered transcription in 30+ languages, PII redaction, storage management, and compliance archiving with configurable retention policies.

OpenAPI Specification

telefon-recording-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Telefon Call Recording API
  description: >-
    Record, transcribe, and manage call recordings with dual-channel support,
    AI transcription in 30+ languages, and compliance archiving.
  version: v1
  contact:
    name: Telefon Support
    url: https://www.telefon.com/support
  termsOfService: https://www.telefon.com/terms
servers:
  - url: https://api.telefon.com/v1/recording
    description: Telefon Recording API
security:
  - ApiKeyAuth: []
tags:
  - name: Recordings
    description: Call recording management
  - name: Transcriptions
    description: Recording transcription management
paths:
  /recordings:
    get:
      operationId: listRecordings
      summary: List Recordings
      description: List call recordings with optional filtering.
      tags:
        - Recordings
      parameters:
        - name: call_id
          in: query
          schema:
            type: string
          description: Filter by call ID
        - name: status
          in: query
          schema:
            type: string
            enum: [in-progress, completed, failed]
          description: Filter by status
        - name: page
          in: query
          schema:
            type: integer
          description: Page number
        - name: page_size
          in: query
          schema:
            type: integer
            maximum: 100
          description: Results per page
      responses:
        '200':
          description: List of recordings
          content:
            application/json:
              schema:
                type: object
                properties:
                  recordings:
                    type: array
                    items:
                      $ref: '#/components/schemas/Recording'
                  total:
                    type: integer
  /recordings/{recording_id}:
    get:
      operationId: getRecording
      summary: Get Recording
      description: Get details and download URL for a recording.
      tags:
        - Recordings
      parameters:
        - name: recording_id
          in: path
          required: true
          schema:
            type: string
          description: Unique recording identifier
      responses:
        '200':
          description: Recording details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Recording'
        '404':
          description: Recording not found
    delete:
      operationId: deleteRecording
      summary: Delete Recording
      description: Permanently delete a recording.
      tags:
        - Recordings
      parameters:
        - name: recording_id
          in: path
          required: true
          schema:
            type: string
          description: Unique recording identifier
      responses:
        '204':
          description: Recording deleted
  /recordings/{recording_id}/transcriptions:
    get:
      operationId: getRecordingTranscriptions
      summary: Get Recording Transcriptions
      description: List transcriptions for a recording.
      tags:
        - Transcriptions
      parameters:
        - name: recording_id
          in: path
          required: true
          schema:
            type: string
          description: Unique recording identifier
      responses:
        '200':
          description: Transcription list
          content:
            application/json:
              schema:
                type: object
                properties:
                  transcriptions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transcription'
    post:
      operationId: createTranscription
      summary: Create Transcription
      description: Request AI transcription of a recording.
      tags:
        - Transcriptions
      parameters:
        - name: recording_id
          in: path
          required: true
          schema:
            type: string
          description: Unique recording identifier
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                language_code:
                  type: string
                  description: BCP-47 language code (e.g., en-US, nl-NL, de-DE)
                  default: en-US
                redact_pii:
                  type: boolean
                  description: Automatically redact PII from the transcript
                  default: false
      responses:
        '202':
          description: Transcription job accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transcription'
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
  schemas:
    Recording:
      type: object
      required:
        - id
        - call_id
        - status
      properties:
        id:
          type: string
          description: Unique recording identifier
        call_id:
          type: string
          description: Associated call ID
        status:
          type: string
          enum: [in-progress, completed, failed]
          description: Recording status
        duration:
          type: integer
          description: Duration in seconds
        channels:
          type: integer
          enum: [1, 2]
          description: Audio channels (1=mono, 2=dual)
        media_url:
          type: string
          description: Download URL (MP3 or WAV)
        price:
          type: string
          description: Storage cost
        price_unit:
          type: string
          description: Currency code
        date_created:
          type: string
          format: date-time
          description: Creation timestamp
    Transcription:
      type: object
      required:
        - id
        - recording_id
        - status
      properties:
        id:
          type: string
          description: Unique transcription identifier
        recording_id:
          type: string
          description: Associated recording ID
        status:
          type: string
          enum: [queued, in-progress, completed, failed]
          description: Transcription status
        language_code:
          type: string
          description: Language used for transcription
        transcript_text:
          type: string
          description: Full transcription text
        confidence:
          type: number
          format: float
          description: Transcription confidence score (0.0-1.0)
        date_created:
          type: string
          format: date-time
          description: Creation timestamp
        date_updated:
          type: string
          format: date-time
          description: Last updated timestamp