# GetCourse API: Выгрузить заказы за период в аналитику

Сценарий из mcp-everything. Актуально на 2026-10-24.

Продажи школы — в BI, Google-таблицу или сквозную аналитику.

1. Запусти экспорт: GET /account/deals с key и фильтрами — created_at[from] и created_at[to] (YYYY-MM-DD) или payed_at[from] / payed_at[to] для оплаченных. В ответе — export_id.
2. Через минуту-другую забери данные: GET /account/exports/{export_id} с key. Пока файл готовится, придёт ошибка — повтори запрос позже.
3. Данные приходят таблицей: список полей и строки значений. Сопоставь их по позиции.
4. Лимит Export API — 100 запросов за 2 часа на аккаунт, включая проверки статуса, и экспорты идут строго по одному. Ошибка 903 — лимит исчерпан, жди сброса. Не проверяй статус чаще раза в минуту.
5. Платежи выгружаются так же: GET /account/payments с created_at[from] и created_at[to].

```python
import time, requests

BASE, KEY = "https://myschool.getcourse.ru/pl/api", "<секретный ключ>"

start = requests.get(f"{BASE}/account/deals", params={
    "key": KEY, "created_at[from]": "2026-10-01", "created_at[to]": "2026-10-23"}).json()
export_id = start["info"]["export_id"]

for _ in range(10):
    time.sleep(60)
    res = requests.get(f"{BASE}/account/exports/{export_id}", params={"key": KEY}).json()
    if res.get("success"):
        fields, items = res["info"]["fields"], res["info"]["items"]
        deals = [dict(zip(fields, row)) for row in items]
        break
```

## Базовые URL

- Боевой: `https://{account}.getcourse.ru/pl/api`

## Авторизация

Тип: API-ключ

Отдельной авторизации нет: секретный ключ аккаунта передаётся в каждом запросе — в импорте POST-параметром `key`, в экспорте параметром `key` в строке запроса. Ключ создаётся в аккаунте («Профиль» → «Настройки аккаунта» → «АПИ»); для импорта нужен ключ с правом записи.

## Методы сценария

### GET /account/deals — Экспорт заказов

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `key` | query | string | да | Секретный ключ |
| `created_at[from]` | query | string | нет | Дата создания с |
| `created_at[to]` | query | string | нет | Дата создания по |
| `payed_at[from]` | query | string | нет | Дата оплаты с |
| `payed_at[to]` | query | string | нет | Дата оплаты по |
| `finished_at[from]` | query | string | нет | Дата завершения с |
| `status_changed_at[from]` | query | string | нет | Дата смены статуса с |
| `status` | query | string | нет | Статус заказа |
| `user_in_group` | query | integer | нет | ID группы пользователя |
| `user_id` | query | string | нет | ID пользователей через запятую |

### GET /account/payments — Экспорт платежей

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `key` | query | string | да | Секретный ключ |
| `created_at[from]` | query | string | нет | Дата создания с |
| `created_at[to]` | query | string | нет | Дата создания по |
| `status` | query | string | нет | Статус платежа |

### GET /account/exports/{export_id} — Результат экспорта

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `export_id` | path | integer | да | ID экспорта из ответа метода экспорта |
| `key` | query | string | да | Секретный ключ |

## Нюансы

- Импорт: POST с полями `action`, `key`, `params`; в base64 кодируется только `params`. Без POST/form-data будет ошибка «Пустой параметр action».
- Экспорт двухшаговый: запрос с фильтром → `export_id` → получение данных; экспорты выполняются последовательно, не параллельте их.
- Справочники доп. полей пользователей и заказов — `/account/fields` с `action=get`.
- Даты в импорте — `yyyy-mm-dd HH:MM:II`.
- Для оперативной передачи событий документация рекомендует процессы с операцией «Вызвать URL» вместо частого экспорта.

## Другие сценарии

- [Добавить ученика в группу после оплаты](https://mcp-everything.ru/integrations/getcourse/scenarios/dobavit-uchenika-v-gruppu-posle-oplaty.md)
- [Создать заказ и получить ссылку на оплату](https://mcp-everything.ru/integrations/getcourse/scenarios/sozdat-zakaz-i-poluchit-ssylku-na-oplatu.md)
- [Выгрузить учеников группы](https://mcp-everything.ru/integrations/getcourse/scenarios/vygruzit-uchenikov-gruppy.md)

---

Если этого недостаточно — официальная документация: https://getcourse.ru/help/api
Вся интеграция одним документом: https://mcp-everything.ru/integrations/getcourse.md
