Developers2 min read
How to embed an AI reel maker in your website or app
Short answer
To embed Brandreel in your site, register your app at getbrandreel.com/register to get an app ID and secret. After your own login check, your server POSTs to /api/apps/token with the secret and your user’s id, receives a short-lived embed URL, and renders it in an iframe. The secret never reaches the browser, each user sees only their own reels, and AI spend is tracked per user.
If your product serves businesses — a website builder, a CRM, a booking tool, a travel planner — your users need marketing video. Instead of sending them elsewhere, embed Brandreel: they create, revise, share and publish reels inside your app, signed in with your login.
How it works
- Your server holds the app secret and asks Brandreel for a short-lived link for one signed-in user.
- The browser loads that link in an iframe; Brandreel swaps it for a 12-hour studio session scoped to that user.
- Brandreel keeps each user’s reels, costs and posts separate, and only lets your registered sites frame the studio.
Step 1: Register your app
Go to getbrandreel.com/register and enter your app’s name, ID (e.g. ownsites), website and a contact. You’ll get the app secret once — store it as BRANDREEL_APP_SECRET in your server environment, never in browser code or git. New apps are reviewed; wire everything up meanwhile and tokens start working on approval.
Step 2: Request an embed link
POST https://getbrandreel.com/api/apps/token
Authorization: Bearer <app secret>
Content-Type: application/json
{ "app": "ownsites", "user": "biz_42" }{
"token": "…",
"embedUrl": "https://getbrandreel.com/embed/ownsites?token=…",
"expiresAt": "2026-10-25T12:05:00.000Z"
}user is your own id for whoever owns the reels — a business id to share reels across a team, a person id to keep them private. Letters, digits, _ and -, up to 64 characters, never an email. The link lives 5 minutes by default (ttlSec, 60–3600).
Node / Express
app.get("/marketing/reels", requireLogin, async (req, res) => {
const r = await fetch("https://getbrandreel.com/api/apps/token", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BRANDREEL_APP_SECRET}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ app: "ownsites", user: `biz_${req.user.businessId}` }),
});
if (!r.ok) return res.status(502).send("Brandreel unavailable");
const { embedUrl } = await r.json();
res.render("reels", { embedUrl });
});Ruby on Rails
res = Net::HTTP.post(
URI("https://getbrandreel.com/api/apps/token"),
{ app: "ownsites", user: "biz_#{current_business.id}" }.to_json,
"Content-Type" => "application/json",
"Authorization" => "Bearer #{ENV.fetch("BRANDREEL_APP_SECRET")}"
)
@brandreel_url = JSON.parse(res.body).fetch("embedUrl")PHP
$ch = curl_init("https://getbrandreel.com/api/apps/token");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("BRANDREEL_APP_SECRET"),
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode(["app" => "ownsites", "user" => "biz_" . $businessId]),
]);
$embedUrl = json_decode(curl_exec($ch), true)["embedUrl"];Step 3: Frame the studio
<iframe src="<embedUrl>" title="Brandreel studio"
style="width:100%;height:90vh;border:0"
allow="clipboard-write"></iframe>That’s the whole integration. Your users get the full studio — briefs, budgets, versions, AI hero clips, voiceover, captions, downloads and the share page.
Security model
| Who | Holds | Can do |
|---|---|---|
| Your server | App secret | Open the studio as any of your users |
| Your user’s browser | One link / session for them | Make, change, share and publish only their own reels, for up to 12 hours |
| Anyone else | Nothing | Nothing |
Questions
- Does my website need a backend to embed Brandreel?
- Yes, a small one: the app secret must stay on a server. Any backend works — Node, Rails, PHP, Python, or a serverless function — because it’s a single HTTPS POST.
- Do my users need a Brandreel account?
- No. They stay signed in with your app. Your server vouches for them with a short-lived token, and Brandreel scopes their reels to the id you send.
- Which websites can show the embedded studio?
- Only the origins registered for your app. Brandreel sets frame-ancestors to those origins, so the studio can’t be framed anywhere else.
Try it on your product
One sentence in, a finished reel out — with AI hero clips, voiceover, captions and publishing built in.