All articlesSee pricing

developers

How to embed video calls in your app with the Moyan SEE SDK

September 20, 2026 · 6 min read

Add a branded video room to your product with a few lines of JavaScript: create meetings from your server, embed the room, and match your own design.

What you are building

Two pieces: your server creates meetings, and your front end shows the room. The SDK handles both, and embedding a room needs no API key at all.

Step 1 — create a meeting from your server

Keep your API key server-side. One request returns a join link.

curl -X POST https://see.moyanai.app/api/public/v1/meetings \
  -H "Authorization: Bearer msee_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Lesson with Sara", "duration_minutes": 45 }'

The response includes a room_code and a ready join_url. Store the room code against your own booking or ticket record.

Step 2 — embed the room

import { embedMeeting } from "./moyan-see.mjs";

embedMeeting({
  container: "#call",
  roomCode: "K7QP2M",
  height: 640,
});

That is the whole integration for a page that already knows its room code. No key, no back end call from the browser.

Step 3 — make it look like your product

Pass theme options and the room adopts your palette, corners and font:

embedMeeting({
  container: "#call",
  roomCode: "K7QP2M",
  theme: {
    theme: "dark",
    accent: "#4f46e5",
    radius: "14px",
    font: "Inter, sans-serif",
  },
});

The same options work as plain link parameters, so an emailed join link can carry your branding too.

Audio-only calls

Send "mode": "audio" when creating the meeting, or pass mode: "audio" to the embed. The room opens microphone-only, and anyone can switch their camera on to turn it into a video meeting — same room, same link.

Step 4 — report usage

After a session ends, tell the API how big it was so your allowance and cost stay accurate:

await client.usage.report({ minutes: 45, participants: 12, quality: "hd" });

client.usage.get() returns your allowances, the current rate card and any volume discount.

Things that trip people up

  • Never ship your API key to the browser. Embedding does not need it.
  • Allow camera and microphone permissions on the iframe if you set your own sandbox attributes.
  • Guests need no account: they type a display name and join, so do not build your own sign-up in front of the room.
  • Handle the 429 response — it names which limit you hit and links to top-ups.

Get the SDK

Download the zip, grab the single file, install from the terminal, or load it straight from our link with no download at all. All four options live on the SDK page, and the whole thing is free.

Try Moyan SEE free

Start an HD meeting in your browser, invite anyone with a link, and download the recording as an MP4. No install, no card for the free tier.

Keep reading