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
- Moyan SEE vs Webex: A Meeting Plan Buying Checklist
Compare Moyan SEE with Webex on meeting costs, time limits, capacity, recording control and guest access, with a practical checklist for choosing a plan.
- How to join a video meeting without creating an account
What guests can and cannot do when they join with just a display name, and how hosts can make joining effortless for clients and students.
- Video meeting API pricing explained: per minute vs per plan
How real-time video APIs bill you, what a participant-minute is, and how to estimate your monthly cost before writing any code.
- How to record a video meeting and download it as MP4
A step-by-step guide to recording a meeting in your browser, keeping the audio of everyone in the room, and saving a high-quality MP4 you own.