Google Meet has an API to assign co-hosts automatically. It's real, it works, and it's documented nowhere - Stop paying for Fireflies, bots, and third-party tools - I built a fully automated Google Meet scheduling system.
At work we run a lot of scheduled video calls, and each one meant the same three manual steps - assign a Meet co-host by hand, paste the link into an email, and pay a per-seat tool to record it. Across ~30 users a week, that adds up fast. So I automated all of it with Google's own APIs.
user fills a form → Calendar event + Meet link created → invites emailed → the right teammate assigned as co-host before the meeting starts → the recording bot auto-joins. Zero clicks.
The code was a weekend. One step cost me 3 extra days - not because it's hard, but because the feature is real and nobody, anywhere, tells you it exists.
Here's the thing nobody says out loud: you can assign Meet co-hosts programmatically. The endpoint is POST /v2beta/spaces/{space}/members. It's not in any tutorial. It's not in a single Stack Overflow answer. It's buried in API reference pages that don't mention the one requirement that makes it work - so everyone assumes it's impossible and reaches for browser automation or third-party bots instead.
Why everyone gives up: without enrollment in the Google Workspace Developer Preview Program, the endpoint returns 404 Method not found - not a 403, not "no access," not "join the preview." Just a flat 404. So you do the rational thing and conclude the endpoint doesn't exist. It does. The 404 is lying to you.
Three things nobody documents together:
- Enroll in the Developer Preview Program (
developers.google.com/workspace/preview). This is the whole secret. This single step is what turns the 404 into a working endpoint, and it's mentioned almost nowhere in the context of co-host assignment. Approval took 2–3 days. - Resolve the canonical space name first. The meeting code (
abc-def-ghi) won't work - callGET /v2/spaces/{meetCode}to getspaces/xARkvEvDxfUB, then use that. - Add the scope
meetings.space.settingsand regenerate your refresh token.
Then it's just:
const { name } = await (await fetch(
`https://meet.googleapis.com/v2/spaces/${meetCode}`,
{ headers: { Authorization: `Bearer ${token}` } }
)).json()
await fetch(`https://meet.googleapis.com/v2beta/${name}/members`, {
method: 'POST',
headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'teammate@yourcompany.com', role: 'COHOST' })
})
Bonus: for recording, skip the Fireflies SDK entirely - just add notetaker@fireflies.ai as a calendar attendee and it auto-joins.
This cut ~$19/user/month across ~30 users - roughly $570/month - plus hours of manual scheduling every week. But the real reason I'm posting: the co-host API exists, it works, and almost nobody knows it's even possible because Google hides it behind a preview program and a 404 that pretends it isn't there. If you've been told this can't be done without browser hacks - it can. 🙃
Happy to share the scheduling/email side and complete code - AMA.