раздел 03

Примеры запросов

Базовый URL - https://api.zoom.us/v2. В каждый запрос к API кладём заголовок Authorization: Bearer <access_token>. Сначала получаем токен, дальше дёргаем эндпоинты.

Получить токен

curl -X POST "https://zoom.us/oauth/token" \
  -H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=account_credentials" \
  -d "account_id=ACCOUNT_ID"

На Python:

import base64
import requests

CLIENT_ID = "..."
CLIENT_SECRET = "..."
ACCOUNT_ID = "..."

basic = base64.b64encode(f"{CLIENT_ID}:{CLIENT_SECRET}".encode()).decode()

resp = requests.post(
    "https://zoom.us/oauth/token",
    headers={"Authorization": f"Basic {basic}"},
    data={"grant_type": "account_credentials", "account_id": ACCOUNT_ID},
)
token = resp.json()["access_token"]

Создать встречу

Встреча создаётся под конкретного пользователя: POST /users/{userId}/meetings. Вместо {userId} можно подставить me - это владелец токена.

curl -X POST "https://api.zoom.us/v2/users/me/meetings" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "Демо для клиента",
    "type": 2,
    "start_time": "2026-07-01T15:00:00Z",
    "duration": 60,
    "settings": { "join_before_host": true }
  }'
meeting = requests.post(
    "https://api.zoom.us/v2/users/me/meetings",
    headers={"Authorization": f"Bearer {token}"},
    json={
        "topic": "Демо для клиента",
        "type": 2,
        "start_time": "2026-07-01T15:00:00Z",
        "duration": 60,
        "settings": {"join_before_host": True},
    },
).json()

print(meeting["join_url"])

В ответе - id встречи, join_url для участников и start_url для хоста.

Список встреч пользователя

curl "https://api.zoom.us/v2/users/me/meetings?type=scheduled&page_size=30" \
  -H "Authorization: Bearer ACCESS_TOKEN"
meetings = requests.get(
    "https://api.zoom.us/v2/users/me/meetings",
    headers={"Authorization": f"Bearer {token}"},
    params={"type": "scheduled", "page_size": 30},
).json()

for m in meetings["meetings"]:
    print(m["id"], m["topic"])

Список облачных записей пользователя

Эндпоинт GET /users/{userId}/recordings. Запись появляется здесь после того, как Zoom её обработал.

curl "https://api.zoom.us/v2/users/me/recordings?from=2026-06-01&to=2026-06-30" \
  -H "Authorization: Bearer ACCESS_TOKEN"
recordings = requests.get(
    "https://api.zoom.us/v2/users/me/recordings",
    headers={"Authorization": f"Bearer {token}"},
    params={"from": "2026-06-01", "to": "2026-06-30"},
).json()

for meeting in recordings["meetings"]:
    for f in meeting["recording_files"]:
        print(f["file_type"], f["download_url"])