Get started
You can upload videos directly from the Cloudflare dashboard ↗ or using the API.
To use the API, replace the API_TOKEN and ACCOUNT_ID values with your credentials in the example below.
curl \-X POST \-d '{"url":"https://storage.googleapis.com/stream-example-bucket/video.mp4","meta":{"name":"My First Stream Video"}}' \-H "Authorization: Bearer <API_TOKEN>" \https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/copyBecause Stream must download and process the video, the video might not be available for a few seconds depending on the length of your video. You should poll the Stream API until readyToStream is true, or use webhooks to be notified when a video is ready for streaming.
Use the video UID from the first step to poll the video:
curl \-H "Authorization: Bearer <API_TOKEN>" \https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>{ "result": { "uid": "6b9e68b07dfee8cc2d116e4c51d6a957", "preview": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/watch", "thumbnail": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/thumbnails/thumbnail.jpg", "readyToStream": true, "status": { "state": "ready" }, "meta": { "downloaded-from": "https://storage.googleapis.com/stream-example-bucket/video.mp4", "name": "My First Stream Video" }, "created": "2020-10-16T20:20:17.872170843Z", "size": 9032701, //... }, "success": true, "errors": [], "messages": []}Videos uploaded to Stream can be played on any device and platform, from websites to native apps. See Play videos for details and examples of video playback across platforms.
To play video on your website with the Stream Player, copy the uid of the video from the request above, along with your unique customer code, and replace <CODE> and <VIDEO_UID> in the embed code below:
<iframe src="https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/iframe" title="Example Stream video" frameBorder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowFullScreen></iframe>The embed code above can also be found in the Cloudflare dashboard ↗.
- Edit your video and add captions or watermarks
- Customize the Stream player
You can create a live input via the Cloudflare dashboard ↗ or using the API.
To use the API, replace the API_TOKEN and ACCOUNT_ID values with your credentials in the example below.
curl -X POST \-H "Authorization: Bearer <API_TOKEN>" \-D '{"meta": {"name":"test stream"},"recording": { "mode": "automatic" }}' \https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/live_inputs{ "uid": "f256e6ea9341d51eea64c9454659e576", "rtmps": { "url": "rtmps://live.cloudflare.com:443/live/", "streamKey": "MTQ0MTcjM3MjI1NDE3ODIyNTI1MjYyMjE4NTI2ODI1NDcxMzUyMzcf256e6ea9351d51eea64c9454659e576" }, "created": "2021-09-23T05:05:53.451415Z", "modified": "2021-09-23T05:05:53.451415Z", "meta": { "name": "test stream" }, "status": null, "recording": { "mode": "automatic", "requireSignedURLs": false, "allowedOrigins": null }}We recommend using Open Broadcaster Software (OBS) ↗ to get started.
Live streams can be played on any device and platform, from websites to native apps, using the same video players as videos uploaded to Stream. See Play videos for details and examples of video playback across platforms.
To play the live stream you just started on your website with the Stream Player, copy the uid of the live input from the request above, along with your unique customer code, and replace <CODE> and <VIDEO_UID> in the embed code below:
<iframe src="https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/iframe" title="Example Stream video" frameBorder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowFullScreen></iframe>The embed code above can also be found in the Cloudflare dashboard ↗.
To make your video content more accessible, include captions and high-quality audio recording ↗.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Directory
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- © 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark