Upload API Docs

Endpoint for creating a stream link from an audio file. Files are stored permanently.

Endpoint: POST https://streamables.blrc.me/upload

Account attribution: API uploads are anonymous. Authenticated attribution is available only through the Streamables website; direct API requests carrying Firebase credentials are rejected.

Content Types: multipart/form-data or raw body bytes

Limit: 25 MB

Rate Limit: 10 uploads per hour per client IP

Protection: protected=true (default) disables direct download, raw access, and embedding. Set protected=false to allow.

Visibility: unlisted=true keeps the stream playable through its direct link while excluding it from Discover and public playlists. It is false by default.

Custom name: Use the preferred name field for multipart uploads, the x-stream-name header for raw uploads, or ?name=.... The older customId, customName, x-custom-id, and x-custom-name forms remain supported.

Success Response:

{
  "success": true,
   "id": "my-song",
   "name": "my-song",
   "url": "https://streamables.blrc.me/stream/my-song",
   "streamUrl": "https://streamables.blrc.me/stream/my-song",
   "path": "/stream/my-song",
   "protected": false,
   "unlisted": false,
   "embedUrl": "https://streamables.blrc.me/embed/my-song",
  "embedCode": "",
  "accountId": "firebase-user-id",
  "uploaderName": "Display name"
}

curl

curl -X POST -F "[email protected]" -F "name=my-song" -F "protected=false" -F "unlisted=true" https://streamables.blrc.me/upload

Raw upload with a custom name

curl -X POST --data-binary @song.mp3 -H "Content-Type: audio/mpeg" -H "x-stream-name: my-song" -H "x-protected: false" -H "x-unlisted: true" https://streamables.blrc.me/upload

Download (Unprotected Only)

https://streamables.blrc.me/stream/uuid?download

Raw Stream (Unprotected Only)

https://streamables.blrc.me/stream/uuid?raw

Embed Player (Unprotected Only)

<iframe src="https://streamables.blrc.me/embed/playlist/my-playlist" title="Playlist my-playlist" width="100%" height="100%" loading="lazy" allow="autoplay" style="border:0;width:100%;height:100%;min-height:112px" referrerpolicy="no-referrer"></iframe>

Playlists

Playlists use an ID with letters, numbers, hyphens, or underscores. From an unprotected stream page, enter a playlist ID to toggle that song in the playlist. The first add creates it; entering the same ID again removes the song.

POST https://streamables.blrc.me/playlist/my-playlist
Content-Type: application/json

{"streamId":"my-song"}

Playlist response:

{
  "success": true,
  "playlistId": "my-playlist",
  "streamId": "my-song",
  "action": "added",
  "count": 1,
  "embedUrl": "https://streamables.blrc.me/embed/playlist/my-playlist",
  "embedCode": "<iframe ...></iframe>"
}

Read a playlist: GET https://streamables.blrc.me/playlist/my-playlist