# Streamloop > Live stream pre-recorded videos to YouTube or any RTMP platform — 24/7, up to 4K 60fps. Cloud-based, no OBS, no PC required. Pay-per-use. Free credits to try. ## Docs - [API tokens and connected apps](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/account-access.md): Manage personal API tokens and review the OAuth apps and agents that can act on your Streamloop account. - [Get your profile](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/account/get-your-profile.md) - [Authentication](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/authentication.md): Authenticate Streamloop API requests with an API key or OAuth 2.1, scoped to what each integration needs. - [Create a card top-up link](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/billing/create-a-card-top-up-link.md): Purchase credits by dollar amount. amountCents is the dollar amount in cents (e.g. 500 = $5). Returns a checkout URL from the selected payment provider. - [Get billing overview](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/billing/get-billing-overview.md) - [Get usage analytics](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/billing/get-usage-analytics.md) - [List invoices](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/billing/list-invoices.md) - [Conventions](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/conventions.md): Versioning, request and response formats, cursor pagination, and the RFC 7807 error model used across every Streamloop endpoint. - [Get a crypto deposit address](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/crypto/get-a-crypto-deposit-address.md): Get (or lazily create) a deposit address for the authenticated user. id must be a valid 0xProcessing currency identifier from cryptoCurrencies. - [List crypto currencies](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/crypto/list-crypto-currencies.md): List all supported cryptocurrencies with live rates. - [Create an RTMP destination](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/destinations/create-an-rtmp-destination.md) - [List destinations](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/destinations/list-destinations.md) - [GraphQL API](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/graphql.md): Query Streamloop's GraphQL schema directly for full control over filtering and field selection — the layer the REST API and MCP server are built on. - [Streamloop API](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/introduction.md): Create and control 24/7 loop streams programmatically — over REST, an MCP server for AI agents, or GraphQL. - [MCP server](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/mcp/overview.md): Let AI agents like Claude and ChatGPT run Streamloop as tools — create, control, and monitor streams over the Model Context Protocol. - [MCP tools](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/mcp/tools.md): The 31 Streamloop MCP tools, grouped by domain — what each does and the scope it needs. - [Service status (liveness/health) — unauthenticated.](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/meta/service-status-livenesshealth-—-unauthenticated.md) - [This OpenAPI 3.1 document — unauthenticated.](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/meta/this-openapi-31-document-—-unauthenticated.md) - [Apply playlist operations](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/playlists/apply-playlist-operations.md): Batched spec mutation. Ops apply in order; each sees the state produced by earlier ops. On any validation failure, nothing is written. Does not affect running streams — preparation happens on stream launch. - [Copy a playlist](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/playlists/copy-a-playlist.md): Spec copy between two playlists the caller owns. Target must be empty. Caller pushes target via stream launch to actually play it. - [Get a playlist](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/playlists/get-a-playlist.md): Fetches an object given its ID. - [List playlists](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/playlists/list-playlists.md) - [Publish a playlist](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/playlists/publish-a-playlist.md): Publish the draft playlist as the new LIVE snapshot. Always async (ADR 0003): the resolver marks StreamState.processing_state as processing, signals PreparePlaylistWorkflow, and returns. Editor polls Playlist.publishStatus to observe the PREPARING -> IDLE / FAILED transition. Top-level errors carry… - [Quickstart](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/quickstart.md): Go from an API key to a live 24/7 stream with a handful of curl calls. - [Cancel a stream's schedule](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/cancel-a-streams-schedule.md): Undo a Scheduled stream, returning it to Draft via `streamlifecycle.Transition(_, CmdCancelSchedule)`. - [Check stream readiness](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/check-stream-readiness.md): Runs the same checks as updateStream(status:ACTIVE) without mutating. - [Create a stream](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/create-a-stream.md) - [Delete a stream](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/delete-a-stream.md) - [Get a stream](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/get-a-stream.md): Fetches an object given its ID. - [Get live stream stats](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/get-live-stream-stats.md): Fetches an object given its ID. - [List streams](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/list-streams.md): List the streams you own. Supply the ids parameter to fetch a specific set; otherwise the full collection is returned, cursor-paginated. - [Schedule a stream](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/schedule-a-stream.md): Move the stream into Scheduled with a future start via `streamlifecycle.Transition(_, CmdSchedule{StartAt, EndAt})`. `scheduleEndAt` is optional; open-ended schedules are supported. - [Start a stream](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/start-a-stream.md): Move the stream into Activating via `streamlifecycle.Transition(_, CmdStart)`. Returns the loaded stream after the lifecycle owner accepted the command. The resolver does not block on the orchestrator/agent observing the change. - [Stop a stream](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/stop-a-stream.md): Move the stream into Stopping via `streamlifecycle.Transition(_, CmdStop)`. Stop is legal from any active branch. - [Update a stream](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/streams/update-a-stream.md): Update a stream. When `retryMirror: true`, the resolver also writes a fresh MirrorIntent for the latest desired state of this stream's YouTube schedule mirror — used to recover after reauth / quota reset / channel freeing. retryMirror is a sibling argument rather than a field on UpdateStreamInput be… - [Create an upload](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/uploads/create-an-upload.md): Creates an upload record for a direct single-PUT transfer. Next, request a presigned URL with POST /uploads/{id}/upload-url, PUT the bytes to it, then mark the upload complete with POST /uploads/{id}/complete. - [Delete an upload](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/uploads/delete-an-upload.md) - [Generate a presigned upload URL](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/uploads/generate-a-presigned-upload-url.md) - [Get an upload](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/uploads/get-an-upload.md): Fetches an object given its ID. - [Import an upload from a link](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/uploads/import-an-upload-from-a-link.md): Starts an asynchronous import from an external URL and returns 202 Accepted. Poll GET /uploads/{id} and watch externalSource.state until it reaches completed. - [List uploads](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/uploads/list-uploads.md) - [Mark an upload complete](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/api-reference/uploads/mark-an-upload-complete.md) - [How billing works](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/billing.md): Streamloop is pay-as-you-go — you buy credits and spend them only while a stream is live. No subscription, credits never expire, and free credits to start. - [Build and schedule your playlist](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/build-and-schedule-your-playlist.md): Add videos to a loop, reorder them, play them in order or on shuffle, layer a separate audio track, schedule when the loop goes live, and edit the playlist while you're streaming. - [Custom playlist order](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/custom-playlist-order.md): Describe in plain language how your playlist should play — pre-rolls, time-of-day stings, weighted rotations — and Streamloop turns it into a sandboxed program that picks the next item on every loop. - [Features](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/features.md): Loop pre-recorded videos and audio as a 24/7 live stream to YouTube, Twitch, Facebook Live, or any RTMP platform — up to 4K 60fps, pay-as-you-go. - [Build a 24/7 music or lofi channel](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/lofi-music-channel.md): Run a 24/7 lofi, music, or radio stream on YouTube — loop a background video and play a separate audio playlist over it, cheaply and continuously. - [YouTube (managed connection)](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/platform/youtube.md): Connect your YouTube channel to Streamloop through Google sign-in and let Streamloop create and manage the live broadcast — title, privacy, thumbnail, and schedule. - [YouTube via RTMP stream key](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/platform/youtube-rtmp.md): Stream a pre-recorded video to YouTube 24/7 using a stream key from YouTube's live control room — manual setup, no account connection. - [Privacy policy](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/privacy-policy.md) - [Quickstart](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/quickstart.md): Go from a video file to a 24/7 live stream on YouTube or any RTMP platform in a few minutes — create a loop, upload your video, pick a destination, and go live. - [Reliability](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/reliability-guarantees.md): How Streamloop keeps your 24/7 stream live — cloud hosting, continuous health monitoring with automatic restart, distributed failover, and encrypted credentials. - [Terms of service](https://sl-6d1f19fe-mintlify-ff95e355.mintlify.app/terms-of-service.md) ## OpenAPI Specs - [openapi](https://api.streamloop.app/v1/openapi.json) ## Optional - [Home](https://streamloop.app)