Solutions

Resources

Solutions

Resources

API

Automate your meeting workflow

Automate your meeting workflow

Automate your meeting workflow

Send a bot to online meetings, upload recordings, and get transcripts and AI Reports via API

Send a bot to online meetings, upload recordings, and get transcripts and AI Reports via API

Getting started

Your first request in minutes

Create an API key in Settings

Create an API key in Settings

Add the key to the X-API-KEY header

Add the key to the X-API-KEY header

Send POST /api/record-meeting with a webhook_url

Send POST /api/record-meeting with a webhook_url

Features

What you can do with the API

Request parameters, response formats, and error codes are in the documentation

curl -X POST https://backend.mymeet.ai/api/record-meeting \

-H "X-API-KEY: $MYMEET_API_KEY" \

-H "Content-Type: application/json" \

-d '{

"link": "https://meet.google.com/zyj-qrmk-gvo",

"source": "gmeet",

"title": "Daily sync",

"local_date_time": "2026-10-25T15:30:00+03:00",

"cron": "30 12 25 10 *",

"template_name": "team-sync",

"participants": "anna@example.com, mikhail@example.com",

"webhook_url": "https://your-app.com/hooks/mymeet",

"webhook_secret": "YOUR_WEBHOOK_SECRET_16_128"

}'


# meeting status

curl "https://backend.mymeet.ai/api/meeting/status?meeting_id=MEETING_ID" \

-H "X-API-KEY: $MYMEET_API_KEY"


# stop the bot early

curl -X POST https://backend.mymeet.ai/api/stop-recording \

-H "X-API-KEY: $MYMEET_API_KEY" \

-H "Content-Type: application/json" \

-d '{"meeting_id": "MEETING_ID"}'


# cancel a scheduled recording

curl -X DELETE "https://backend.mymeet.ai/api/record-meeting?meeting_id=MEETING_ID" \

-H "X-API-KEY: $MYMEET_API_KEY"

Meeting recording

Send a bot to meetings on 10 platforms — right away or scheduled up to 3 months ahead

import math, os, uuid, requests


BASE = "https://backend.mymeet.ai"

HEADERS = {"X-API-KEY": os.environ["MYMEET_API_KEY"]}


file_path = "interview.mp4"

name = os.path.basename(file_path)

chunk_size = 20 * 1024 * 1024

data_chunks = max(1, math.ceil(os.path.getsize(file_path) / chunk_size))


common = {

"id": str(uuid.uuid4()),

"chunk_total": data_chunks + 1,

"filename": name,

"template_name": "default-meeting",

"title": "Meeting Upload",

"upload_session_id": str(uuid.uuid4()),

"expected_file_size": os.path.getsize(file_path),

"webhook_url": "https://your-app.com/hooks/mymeet",

}


with open(file_path, "rb") as f:

for n in range(data_chunks):

chunk = f.read(chunk_size)

requests.post(f"{BASE}/api/video",

data=dict(common, chunk_number=n),

files={"file": (name, chunk)},

headers=HEADERS)


r = requests.post(f"{BASE}/api/video",

data=dict(common, chunk_number=data_chunks),

files={"file": (name, b"")}, headers=HEADERS)

print(r.json()) # {"meeting_id": "...", "user_id": "..."}

55%

IMG_0586.MP4

33 min

Uploading...

Recording21.09.2025_2.MP3

69 min

Uploaded

Interview_14.10.MP4

45 min

Uploaded

File upload

Upload audio and video up to 3 GB in chunks. SHA-256 integrity checks and duplicate protection

requests.post(

f"{BASE}/api/generate-new-template",

json={

"meeting_id": "MEETING_ID",

"template_name": "sales-meeting",

},

headers=HEADERS,

)

# {"followup": {...},

# "created_template_id": "..."}


# workspace custom templates

templates = requests.get(

f"{BASE}/api/v2/workspaces/active/custom-templates",

headers=HEADERS,

).json()


# report from a custom template

requests.post(

f"{BASE}/api/generate-new-template",

json={

"meeting_id": "MEETING_ID",

"template_name": "3f8c1a22-1b0e-4f4a-9a3e-6f2d5c8b7a41",

},

headers=HEADERS,

)


# edit a report block

requests.put(

f"{BASE}/api/meeting/MEETING_ID/summary",

json={

"templateId": "TEMPLATE_ID",

"entityName": "summary",

"newSummaryText": "Updated summary text",

},

headers=HEADERS,

)

Article

Demo

Default Meeting

Daily

One-to-one

Backlog Grooming

Brainstorm

Follow-up Email

Project Sync

Default Meeting

Sales Meeting

Sales Coaching

HR Interview

Research Interview

Team Sync

One-to-one

Lecture Notes

Meeting Protocol

Medical Anamnesis

D

Design Sync Report

P

Profanity Filter

AI Reports

Use built-in or custom templates. Regenerate reports anytime

import hashlib, hmac, time

from fastapi import FastAPI, Request, Response


app = FastAPI()

SECRET = "YOUR_WEBHOOK_SECRET"


@app.post("/mymeet-webhook")

async def hook(request: Request):

raw_body = await request.body()

ts = request.headers.get("x-mymeet-timestamp", "")

signature = request.headers.get("x-mymeet-signature", "")

expected = "sha256=" + hmac.new(

SECRET.encode(), f"{ts}.".encode() + raw_body,

hashlib.sha256).hexdigest()

if not hmac.compare_digest(signature, expected):

return Response("bad signature", status_code=401)

if abs(time.time() - int(ts)) > 300:

return Response("stale timestamp", status_code=401)


event = await request.json()

delivery = request.headers.get("x-mymeet-delivery")


if event["event"] == "meeting.completed":

report = requests.get(event["data"]["report_url"],

headers=HEADERS).json()

save_report(event["meeting_id"], report)

elif event["event"] == "meeting.failed":

log_failure(event["meeting_id"], event["data"]["reason"])


return Response(status_code=200)

X-Mymeet-Event: meeting.completed

X-Mymeet-Signature: sha256=…


{"event": "meeting.completed",

"meeting_id": "…",

"timestamp": "…",

"data": {

"title": "Daily sync",

"is_transcript_empty": false,

"report_url": "…"

}}

Webhooks

Get notified when processing finishes or fails, signed with HMAC-SHA256

curl "https://backend.mymeet.ai/api/storage/download\

?meeting_id=MEETING_ID&format=pdf\

&include_report=true&include_tasks=true" \

-H "X-API-KEY: $MYMEET_API_KEY" \

-o report.pdf


curl "https://backend.mymeet.ai/api/storage/download\

?meeting_id=MEETING_ID&format=docx\

&template_name=sales-meeting&timezone=Europe/Moscow" \

-H "X-API-KEY: $MYMEET_API_KEY" \

-o report.docx


curl "https://backend.mymeet.ai/api/storage/download\

?meeting_id=MEETING_ID&format=md&include_report=false" \

-H "X-API-KEY: $MYMEET_API_KEY" \

-o tasks.md


# full report as JSON

curl "https://backend.mymeet.ai/api/video/report?meeting_id=MEETING_ID" \

-H "X-API-KEY: $MYMEET_API_KEY"

Client demo

PDF

Sprint review

DOCX

One-to-one

Report export

Get the full report as JSON or export it to DOCX, PDF, or MD

curl "https://backend.mymeet.ai/api/workspaces/active\

/meetings/search?q=sync&tagIds=TAG_ID\

&sources=zoom,gmeet&dateFrom=2026-10-01" \

-H "X-API-KEY: $MYMEET_API_KEY"


curl -X PUT "https://backend.mymeet.ai/api/workspaces\

/active/meetings/MEETING_ID/tags/TAG_ID" \

-H "X-API-KEY: $MYMEET_API_KEY"


# workspace tag catalog

curl "https://backend.mymeet.ai/api/workspaces/active/tags?perPage=100" \

-H "X-API-KEY: $MYMEET_API_KEY"


# create a tag

curl -X POST https://backend.mymeet.ai/api/workspaces/active/tags \

-H "X-API-KEY: $MYMEET_API_KEY" \

-H "Content-Type: application/json" \

-d '{"name": "routed-to-crm", "color": "green"}'


# detach a tag from a meeting

curl -X DELETE "https://backend.mymeet.ai/api/workspaces\

/active/meetings/MEETING_ID/tags/TAG_ID" \

-H "X-API-KEY: $MYMEET_API_KEY"

sales

Sales sync

48 min

Oct 7

CRM

Sales stand-up

55 min

Oct 3

CRM

Sales coaching

32 min

Oct 6

Training

Sales stand-up

55 min

Oct 3

CRM

Search and tags

Search meetings by title, tag, platform, author, and date

MCP

Meetings in your AI tools

Search meetings, analyze transcripts, and work with AI Reports via MCP

Терминал

export MYMEET_API_KEY="KEY"


codex mcp add mymeet \

--url "https://mcp.mymeet.ai/mcp" \

--bearer-token-env-var MYMEET_API_KEY

Codex

.cursor/mcp.json

{

"mcpServers": {

"mymeet": {

"url":

"https://mcp.mymeet.ai/mcp",

"headers": {

"Authorization": "Bearer KEY"

}

}

}

}

Cursor

Терминал

claude mcp add mymeet \

--transport http \

https://mcp.mymeet.ai/mcp \

--header \

"Authorization: Bearer KEY"

Claude Code

More in the API

More ways to work with meetings

Manage meetings, reports, and integration settings. Every method is described in the documentation

Rename meetings

Default

webhook

Status for up to 100 meetings

Export a chosen report version

Workspace selection

One-click Claude Desktop

Edit report blocks

Send recaps to participants

Local MCP

via npx

Meeting passwords

Clear

transcripts

Cancel recordings

Duplicate notification protection

Personal and shared meetings

Delete

meetings

For business

We integrate the API into your processes

Get a live demo of mymeet.ai

Setup tailored to your company

Setup tailored to your company

Control over data and security

Control over data and security

Integration with your services

Integration with your services

Not necessary