раздел 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"])