Skip to content

Livepush Developers API (1.0.0)

Official REST API reference for Livepush.

The Livepush API allows developers to programmatically manage live streams, multistreaming destinations, video libraries, recordings, scheduling, and media ingestion workflows.

This specification defines the base structure for all Livepush API resources. Some endpoints may be introduced incrementally as additional APIs become available.

Download OpenAPI description
Languages
Servers
Mock server
https://api.livepush.io/_mock/openapi
Core Streams & Media APIs
https://octopus.livepush.io
Accounts & Billing APIs
https://squid.livepush.io
Livepush VOD Import API
https://vod-web-import-api.livepush.io

Accounts

Account-level resources and metadata

Operations

Streams

Live stream creation and lifecycle management

Operations

Destinations

Streaming destinations (YouTube, Facebook, RTMP, etc.)

Operations

Videos

Video library and VOD assets

Operations

Video Imports

Import videos from direct URLs (S3, HTTPS)

Operations

Inspect remote video metadata

Request

Inspects a video hosted at a direct URL (e.g. Amazon S3, HTTPS) and returns metadata required before starting a video import.

This step is mandatory before creating a transfer.

Security
bearerAuth
Bodyapplication/jsonrequired
urlstring(uri)required

Direct URL to the source video

Example: "https://bucket.s3.amazonaws.com/video.mp4"
curl -i -X POST \
  https://api.livepush.io/_mock/openapi/inspector/get_metadata \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://bucket.s3.amazonaws.com/how-to-stream-custom-rtmp.mov"
  }'

Responses

Metadata retrieved successfully

Bodyapplication/json
idstring

Metadata identifier used for import

Example: "tup_eK9_VlyyRnLr"
durationnumber
Example: 312
sizenumber
Example: 104857600
containerstring
Example: "mov"
videoCodecstring
Example: "h264"
audioCodecstring
Example: "aac"
Response
application/json
{ "id": "tup_eK9_VlyyRnLr", "duration": 312, "size": 104857600, "container": "mov", "videoCodec": "h264", "audioCodec": "aac" }

Start a new video import

Request

Starts an asynchronous video import using the metadata ID returned by the inspector endpoint.

Security
bearerAuth
Bodyapplication/jsonrequired
idstringrequired

Metadata ID returned from inspector

Example: "tup_eK9_VlyyRnLr"
zonestringrequired

Processing or storage zone

Example: "zn_35hk0gxy_pr"
videoNamestringrequired

Display name for the imported video

Example: "how-to-stream-custom-rtmp.mov"
curl -i -X POST \
  https://api.livepush.io/_mock/openapi/transfers/new \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "tup_eK9_VlyyRnLr",
    "zone": "zn_35hk0gxy_pr",
    "videoName": "how-to-stream-custom-rtmp.mov"
  }'

Responses

Import queued successfully

Bodyapplication/json
transferIdstring
Example: "tr_92aFxxQ"
statusstring
Example: "queued"
Response
application/json
{ "transferId": "tr_92aFxxQ", "status": "queued" }

List queued video imports

Request

Returns video imports that are currently queued or processing.

If a previously created video ID is no longer present, the import is considered complete and the video will appear in the VOD library.

Security
bearerAuth
curl -i -X GET \
  https://api.livepush.io/_mock/openapi/transfers/queued \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

List of queued imports

Bodyapplication/jsonArray [
transferIdstring
Example: "tr_92aFxxQ"
idstring
Example: "tup_eK9_VlyyRnLr"
videoNamestring
Example: "how-to-stream-custom-rtmp.mov"
progressnumber
Example: 64
statusstring
Example: "processing"
]
Response
application/json
[ { "transferId": "tr_92aFxxQ", "id": "tup_eK9_VlyyRnLr", "videoName": "how-to-stream-custom-rtmp.mov", "progress": 64 } ]

Stream Recordings

Recordings generated from live streams

Operations

Stream Zones

Processing and storage regions

Operations

Stream Scheduler

Scheduled and automated streaming

Operations