Skip to content

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

  1. Your server holds the app secret and asks Brandreel for a short-lived link for one signed-in user.
  2. The browser loads that link in an iframe; Brandreel swaps it for a 12-hour studio session scoped to that user.
  3. 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.

Requesthttp
POST https://getbrandreel.com/api/apps/token
Authorization: Bearer <app secret>
Content-Type: application/json

{ "app": "ownsites", "user": "biz_42" }
Responsejson
{
  "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

js
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

ruby
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

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

html
<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

WhoHoldsCan do
Your serverApp secretOpen the studio as any of your users
Your user’s browserOne link / session for themMake, change, share and publish only their own reels, for up to 12 hours
Anyone elseNothingNothing

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.