Launch Media Pipeline (RTMP Channel)
curl --request POST \
--url https://streaming.lingopal.ai/v1/rtmp_channel \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"output_rtmp_url": "<string>",
"output_stream_key": "<string>"
}
'import requests
url = "https://streaming.lingopal.ai/v1/rtmp_channel"
payload = {
"output_rtmp_url": "<string>",
"output_stream_key": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({output_rtmp_url: '<string>', output_stream_key: '<string>'})
};
fetch('https://streaming.lingopal.ai/v1/rtmp_channel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://streaming.lingopal.ai/v1/rtmp_channel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'output_rtmp_url' => '<string>',
'output_stream_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://streaming.lingopal.ai/v1/rtmp_channel"
payload := strings.NewReader("{\n \"output_rtmp_url\": \"<string>\",\n \"output_stream_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://streaming.lingopal.ai/v1/rtmp_channel")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"output_rtmp_url\": \"<string>\",\n \"output_stream_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://streaming.lingopal.ai/v1/rtmp_channel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"output_rtmp_url\": \"<string>\",\n \"output_stream_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}RTMP Pipelines
Launch Media Pipeline (RTMP Channel)
Launch a media pipeline by creating an RTMP channel.
POST
/
v1
/
rtmp_channel
Launch Media Pipeline (RTMP Channel)
curl --request POST \
--url https://streaming.lingopal.ai/v1/rtmp_channel \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"output_rtmp_url": "<string>",
"output_stream_key": "<string>"
}
'import requests
url = "https://streaming.lingopal.ai/v1/rtmp_channel"
payload = {
"output_rtmp_url": "<string>",
"output_stream_key": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({output_rtmp_url: '<string>', output_stream_key: '<string>'})
};
fetch('https://streaming.lingopal.ai/v1/rtmp_channel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://streaming.lingopal.ai/v1/rtmp_channel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'output_rtmp_url' => '<string>',
'output_stream_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://streaming.lingopal.ai/v1/rtmp_channel"
payload := strings.NewReader("{\n \"output_rtmp_url\": \"<string>\",\n \"output_stream_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://streaming.lingopal.ai/v1/rtmp_channel")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"output_rtmp_url\": \"<string>\",\n \"output_stream_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://streaming.lingopal.ai/v1/rtmp_channel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"output_rtmp_url\": \"<string>\",\n \"output_stream_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}Description
This endpoint is used to create a new RTMP channel. It returns the RTMP server URL and stream key, which you will use in your streaming software (such as OBS Studio) to broadcast your stream. After creating the channel, use the Launch Stream endpoint to start the RTMP stream. See the Quickstart guide for the full workflow.Authentication
This endpoint requires an API Key.Include your API key in the
X-Api-Key header:
X-Api-Key: your x-api-key
Request
- Method: POST
- Endpoint:
/v1/rtmp_channel - Content-Type:
application/json
Request Body
{
"output_rtmp_url": "string",
"output_stream_key": "string"
}
| Field | Type | Required | Description |
|---|---|---|---|
| output_rtmp_url | string | Yes | The RTMP output URL |
| output_stream_key | string | Yes | The RTMP output stream key |
Request Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| output_rtmp_url | string | Yes | The RTMP output URL for the channel. |
| output_stream_key | string | Yes | The RTMP output stream key for the channel. |
Response
- Status: 200 OK
- Content-Type:
application/json
{
// Response fields here (add example if you have one)
}
Example Usage (cURL)
curl -X POST "https://your-api-domain.com/v1/rtmp_channel" \
-H "X-Api-Key: your x-api-key" \
-H "Content-Type: application/json" \
-d '{
"output_rtmp_url": "rtmp://example.com/live",
"output_stream_key": "your-stream-key"
}'
⌘I