Meet API Docs Dashboard
On this page

Node.js SDK

@respiresoft/meet, typed, ESM and CJS, Node 18 or newer, no dependencies.

bash
npm i @respiresoft/meet

Publishing. The SDK packages are not on npm, PyPI, Packagist or the Go module proxy yet. Until they are, the REST API works from any language over plain HTTPS: every REST reference page has a curl example.

For a task by task start see the server quick start. Every REST operation has a Node example on the REST reference pages.

Reference from the package README#

Server SDK for the Meet API (rooms, meeting tokens, live control, sessions, recordings, webhooks, usage). Node 18+, ESM and CJS, zero dependencies, typed.

sh
npm i @respiresoft/meet
js
import { Meet } from "@respiresoft/meet";

const meet = new Meet({ apiKey: process.env.MEET_API_KEY });            // mk_test_... or mk_live_...
const room = await meet.rooms.create({ name: "order-1042", privacy: "private" });
const { token } = await meet.rooms.createToken(room.name, { name: "Ann", role: "host", ttl: 3600 });
// browser: import { embed } from "@respiresoft/meet-embed"; embed("#meeting", { url: room.url, token });
for await (const r of meet.rooms.list()) console.log(r.name);           // every page, automatically

Surface#

meet.whoami() project and mode of the key
meet.rooms create list get update delete createToken checkToken presence end eject mute muteAll message updateLive
meet.sessions list get transcript(id, {format: "json"|"txt"|"vtt"|"srt", lang}) chat
meet.recordings list get downloadLink delete
meet.webhooks list create get update delete test rollSecret deliveries listEvents getEvent redeliver, plus verify constructEvent sign
meet.usage get estimate
Meet.webhooks.verify(rawBody, header, secret, {tolerance}) Meet-Signature check, no key needed; throws SignatureError
Meet.webhooks.constructEvent(rawBody, header, secret) verify, then parse
await Meet.tokens.verify(token, {jwksUrl, jwks, room}) EdDSA check of a meeting token with Node crypto; pass jwks to stay offline; throws TokenError

Webhook receiver (verify the raw body, never a re-serialised object):

js
app.post("/meet-webhook", express.raw({ type: "*/*" }), (req, res) => {
  const event = Meet.webhooks.constructEvent(req.body, req.get("Meet-Signature"), process.env.MEET_WEBHOOK_SECRET);
  res.sendStatus(204);
});