---
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. Required and must be a DUPLO region when a 'speech' enhancement is enabled
  - `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. A 'speech' entry requires the ingest to have a DUPLO region
    - `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). A text track in the source language is included by default, so it must not be listed here
    - `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
    - `latencyMode` 'fastest' | 'fast' | 'balanced' | 'highest' — Latency/quality trade-off of the translation. Defaults to 'fast'
    - `extraPrompt` string, nullable — Extra context for the AI generating the translated outputs, applied to every translation (e.g. 'this is a live horse race' or 'remove profane language from the output'). Can always be set to null to remove it
    - `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). A text track in the source language is included by default, so it must not be listed here
      - `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
      - `latencyMode` 'fastest' | 'fast' | 'balanced' | 'highest' — Latency/quality trade-off of the translation. Defaults to 'fast'
      - `extraPrompt` string, nullable — Extra context for the AI generating the translated outputs, applied to every translation (e.g. 'this is a live horse race' or 'remove profane language from the output'). Can always be set to null to remove it
      - `position` object — Position of the rendered translated captions
        - `bottom` integer — Pixels from bottom

---

[API](https://skmtc.net/dolby/apis/theolive-api.md) · [All operations](https://skmtc.net/dolby/apis/theolive-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dolby/theolive-api/versions/b57006d43141/schema)
