---
title: "Create an ingest for a channel"
method: POST
path: "/channels/{id}/ingests"
tags: ["Channels", "Ingests"]
---

# Create an ingest for a channel

`POST /channels/{id}/ingests`

## Path parameters

- `id` string, required — Channel ID

## Request body

- object
  - `name` string, required — Name of the ingest
  - `type` 'rtmp-push' | 'rtmp-pull' | 'srt-pull' | 'srt-push' | 'sdi-pull', required — Ingest type. Note: srt-push requires SRT push to be enabled at organization level
  - `url` string — Source URL (required for pull types)
  - `region` string — Region ID (required for rtmp-push, srt-pull and rtmp-pull). Must be a single ingest enabled region for pull types
  - `captions` object[] — Caption configuration
    - `channel` number, required — Caption channel number
    - `language` string, required — Caption language code
    - `label` string — Caption label
  - `enhancements` SpeechEnhancement[] — Enhancement configuration. At most 1 'speech' entry is allowed
    - `kind` 'speech', required — Live speech translation of the stream audio (requires translations to be enabled for the organization)
    - `sourceLanguage` string, required — Source language spoken in the stream
    - `targetTextTracks` string[], required — Languages to generate translated text tracks for (max 5)
    - `sourceAudioTrack` integer — PID of the audio track to use as translation source
    - `dictionary` string, nullable — Speech dictionary ID (see `/enhancements/speech/dictionaries`). The dictionary helps the speech recognition caption the source audio and must have the same `language` as `sourceLanguage`. Can always be set to null to disconnect the dictionary
    - `position` object — Position of the rendered translated captions
      - `bottom` integer — Pixels from bottom
  - `tracks` object — Audio track configuration
    - `audio` object[] — Audio track configuration
      - `pid` number — Audio track PID (mandatory for multi-audio)
      - `language` string, required — Audio track language code
      - `label` string, required — Audio track label

## Response `200`

Ingest created

- IngestObjectResult
  - `data` object, required — Ingest object
    - `id` string, required — Unique identifier of the ingest
    - `name` string, required — Name of the ingest
    - `createdAt` string, required — Creation timestamp
    - `type` 'rtmp-push' | 'rtmp-pull' | 'srt-pull' | 'srt-push' | 'sdi-pull', required — Ingest type
    - `url` string, required — Ingest URL
    - `streamKey` string — Stream key for RTMP push ingests
    - `tracks` object, required — Audio track configuration
      - `audio` object[] — Audio track configuration
        - `pid` number — Audio track PID (mandatory for multi-audio)
        - `language` string, required — Audio track language code
        - `label` string, required — Audio track label
    - `captions` object[], required — Caption configuration
      - `channel` number, required — Caption channel number
      - `language` string, required — Caption language code
      - `label` string — Caption label
    - `enhancements` SpeechEnhancement[] — Enhancement configuration
      - `kind` 'speech', required — Live speech translation of the stream audio (requires translations to be enabled for the organization)
      - `sourceLanguage` string, required — Source language spoken in the stream
      - `targetTextTracks` string[], required — Languages to generate translated text tracks for (max 5)
      - `sourceAudioTrack` integer — PID of the audio track to use as translation source
      - `dictionary` string, nullable — Speech dictionary ID (see `/enhancements/speech/dictionaries`). The dictionary helps the speech recognition caption the source audio and must have the same `language` as `sourceLanguage`. Can always be set to null to disconnect the dictionary
      - `position` object — Position of the rendered translated captions
        - `bottom` integer — Pixels from bottom

## Changes

- **2026-07-26** `7bfe58df4d98` — 1 warning, 2 info
  - removed the request property `translations`
  - added the new optional request property `enhancements`
  - added the optional property `data/allOf[#/components/schemas/Ingest]/enhancements` to the response with the `200` status

[Change history](https://skmtc.dev/dolby/apis/theolive-api/changes/channels/:id/ingests/post.md)

---

[API](https://skmtc.dev/dolby/apis/theolive-api.md) · [All operations](https://skmtc.dev/dolby/apis/theolive-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dolby/theolive-api/revisions/7bfe58df4d98/schema)
