Code examples
A complete flow: list your profiles, then publish a video.
# 1. List your profilescurl https://storyload.io/v1/profiles \ -H "Authorization: Bearer sl_live_your_key"
# 2a. Publish a file to TikTok (multipart)curl -X POST https://storyload.io/v1/profiles/PROFILE_ID/publish \ -H "Authorization: Bearer sl_live_your_key" \ -F "platform=tiktok" \ -F "title=My awesome video" \ -F "video=@/path/to/video.mp4"
# 2b. Or publish by URL (async, recommended)curl -X POST https://storyload.io/v1/publications \ -H "Authorization: Bearer sl_live_your_key" \ -H "Content-Type: application/json" \ -d '{ "platform": "youtube", "video_url": "https://example.com/clip.mp4", "title": "My short", "privacy": "public" }'import fs from "fs";import FormData from "form-data";
const API_KEY = "sl_live_your_key";const BASE = "https://storyload.io/v1";
// 1. Get your profilesconst profiles = await fetch(`${BASE}/profiles`, { headers: { Authorization: `Bearer ${API_KEY}` },}).then((r) => r.json());
const profileId = profiles.profiles[0].id;
// 2. Publish a video fileconst form = new FormData();form.append("platform", "tiktok");form.append("title", "My video title");form.append("video", fs.createReadStream("./video.mp4"));
const res = await fetch(`${BASE}/profiles/${profileId}/publish`, { method: "POST", headers: { Authorization: `Bearer ${API_KEY}` }, body: form,});
console.log(await res.json());import requests
API_KEY = "sl_live_your_key"BASE = "https://storyload.io/v1"headers = {"Authorization": f"Bearer {API_KEY}"}
# 1. Get your profilesprofiles = requests.get(f"{BASE}/profiles", headers=headers).json()profile_id = profiles["profiles"][0]["id"]
# 2a. Publish a file (multipart)with open("video.mp4", "rb") as f: res = requests.post( f"{BASE}/profiles/{profile_id}/publish", headers=headers, data={"platform": "tiktok", "title": "My video"}, files={"video": f}, )print(res.json())
# 2b. Or publish by URL (async)res = requests.post( f"{BASE}/publications", headers=headers, json={"platform": "youtube", "video_url": "https://example.com/clip.mp4", "title": "My short", "privacy": "public"},)print(res.json())