Media Servers API
Endpoints for retrieving available media servers. Requires API Key authentication.
Get Available Media Servers
Get list of media servers available for streaming.
http
GET /media-servers/availableHeaders
| Header | Value |
|---|---|
ls-api-key | <your_api_key> |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project UUID |
Example
bash
curl -X GET "https://api.lunarstream.kozow.com/api/v1/media-servers/available?projectId=ce4b77e3-3ed0-47ee-a307-ade5f3fbef91" \
-H "ls-api-key: ls_proj_v1_ydi3lLihcIW0Z9ZAkGz2BjV6caLYqzK41TQAGblW-4E"javascript
const response = await fetch(
'https://api.lunarstream.kozow.com/api/v1/media-servers/available?projectId=ce4b77e3-3ed0-47ee-a307-ade5f3fbef91',
{
headers: {
'ls-api-key': process.env.LUNAR_STREAM_API_KEY
}
}
);
const { data } = await response.json();python
import requests
response = requests.get(
'https://api.lunarstream.kozow.com/api/v1/media-servers/available',
headers={'ls-api-key': os.environ['LUNAR_STREAM_API_KEY']},
params={'projectId': 'ce4b77e3-3ed0-47ee-a307-ade5f3fbef91'}
)
data = response.json()['data']Response
json
{
"data": [
{
"id": "40fb0295-9fdf-4a97-b1a8-43cdc64dd512",
"name": "zlmediakit",
"serverType": "ZLMediaKIT",
"host": "stream.lunarstream.kozow.com",
"port": 1935,
"config": null,
"createdAt": "2026-01-12T18:06:42.495Z"
},
{
"id": "a88c26e5-7c30-43eb-a08b-5c58bf7c712a",
"name": "mediamtx",
"serverType": "MediaMTX",
"host": "stream.lunarstream.kozow.com",
"port": 1936,
"config": null,
"createdAt": "2026-01-12T18:06:57.369Z"
}
],
"meta": {}
}Server Types
| Type | Description | Best For |
|---|---|---|
ZLMediaKIT | High-performance C++ media server | Production, high-volume |
MediaMTX | Lightweight Go-based server | Development, testing |
Choosing a Media Server
When creating a livestream, you need to specify which media server to use:
javascript
// Get available servers
const servers = await getAvailableMediaServers(projectId);
// Choose ZLMediaKIT for production
const zlmServer = servers.find(s => s.serverType === 'ZLMediaKIT');
// Create livestream with selected server
const livestream = await createLivestream({
name: 'My Stream',
projectId: projectId,
mediaServerId: zlmServer.id
});RTMP Connection
Each media server provides RTMP ingestion:
rtmp://{host}:{port}/live/{streamKey}?pushToken={token}Example:
rtmp://stream.lunarstream.kozow.com:1935/live/ee04affe2a669854052102fe762bd715?pushToken=eyJhbGci...