---
title: "Create an RTMP destination"
method: POST
path: "/destinations"
tags: ["destinations"]
---

# Create an RTMP destination

`POST /destinations`

## Headers

- `Idempotency-Key` string

## Request body

- CreateRtmpDestinationRequest
  - `name` string, required
  - `rtmpKey` string, required
  - `rtmpUrl` string, required

## Response `201`

Created.

- Destination
  - `createdAt` string, date-time, required
  - `id` string, required
  - `kind` 'custom_rtmp' | 'youtube', required
  - `name` string, required
  - `rtmpURL` string, nullable — Full RTMP ingest URL, e.g. rtmp://live.twitch.tv/app. Null for non-rtmp kinds.
  - `rtmpUrlMasked` string, nullable — Display-safe RTMP publish URL with the stream key redacted.
  - `status` 'active' | 'needs_reauth' | 'revoked' | 'disabled', required

## Other responses

- `401` — Missing or invalid access token.
- `403` — The token lacks the required scope or access to the resource.
- `404` — The resource does not exist or is not visible to the caller.
- `422` — The request body or parameters are invalid.
- `429` — Rate limit exceeded. Retry after the indicated delay.
- `502` — The upstream data service returned an error.

---

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