Сценарий из mcp-everything. Актуально на 2026-10-24.
Оплата прошла на внешнем лендинге или в другой системе — ученик автоматически появляется в GetCourse и получает доступ к курсу через группу.
import base64, json, requests
ACCOUNT, KEY = "myschool", "<секретный ключ>"
params = {
"user": {"email": "student@example.ru", "first_name": "Анна", "group_name": ["Курс «Python с нуля» — поток 5"]},
"system": {"refresh_if_exists": 1},
"session": {"utm_source": "vk", "utm_campaign": "autumn"},
}
r = requests.post(f"https://{ACCOUNT}.getcourse.ru/pl/api/users", data={
"action": "add",
"key": KEY,
"params": base64.b64encode(json.dumps(params, ensure_ascii=False).encode()).decode(),
}).json()
print(r["success"], r.get("result"))
https://{account}.getcourse.ru/pl/apiТип: API-ключ
Отдельной авторизации нет: секретный ключ аккаунта передаётся в каждом запросе — в импорте POST-параметром key, в экспорте параметром key в строке запроса. Ключ создаётся в аккаунте («Профиль» → «Настройки аккаунта» → «АПИ»); для импорта нужен ключ с правом записи.
Тело — form-data: action, key и params (JSON, закодированный в base64).
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
action |
body | string | да | add — создать (или обновить при refresh_if_exists=1); update — задать полный список групп по user.id |
key |
body | string | да | Секретный ключ |
params |
body | string | да | JSON в base64 |
params.user.email |
body | string | нет | Email (нужен email или телефон) |
params.user.phone |
body | string | нет | Телефон |
params.user.first_name |
body | string | нет | Имя |
params.user.last_name |
body | string | нет | Фамилия |
params.user.city |
body | string | нет | Город |
params.user.country |
body | string | нет | Страна |
params.user.group_name |
body | array | нет | Группы (можно с датой добавления) |
params.user.addfields |
body | object | нет | Дополнительные поля |
params.system.refresh_if_exists |
body | integer | нет | 1 — обновить существующего пользователя |
params.system.partner_email |
body | string | нет | Email партнёра |
params.session |
body | object | нет | UTM-метки: utm_source, utm_medium, utm_content, utm_campaign, utm_group |
action, key, params; в base64 кодируется только params. Без POST/form-data будет ошибка «Пустой параметр action».export_id → получение данных; экспорты выполняются последовательно, не параллельте их./account/fields с action=get.yyyy-mm-dd HH:MM:II.Если этого недостаточно — официальная документация: https://getcourse.ru/help/api Вся интеграция одним документом: https://mcp-everything.ru/integrations/getcourse.md