# ПЭК API личного кабинета: Отследить груз

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

Узнать текущий статус груза, историю перемещений и детали — для клиента или своей учётной системы.

1. Запроси статусы: POST /cargos/status/ с cargoCodes — до 15 кодов грузов за запрос. Текущий статус — cargos[].info.cargoStatus: «Принят к перевозке», «В пути», «Прибыл», «Выдан получателю» и т. д.
2. Для полной истории изменений вызови POST /cargos/statusfullhistory/.
3. Детали и фотографии груза — POST /cargos/details/.
4. Часть полей заполняется, только если у тебя оформлен доступ к информации участников перевозки. Лимит — 100 запросов в минуту на все методы: для многих грузов собирай коды пачками по 15.

```bash
curl -X POST https://kabinet.pecom.ru/api/v1/cargos/status/ \
  --user '<логин>:<ключ API>' \
  -H 'Content-Type: application/json;charset=utf-8' -H 'Accept: application/json' \
  --compressed -H 'Accept-Encoding: gzip' \
  -d '{"cargoCodes": ["780339690775", "999932277461"]}'
```

## Базовые URL

- Боевой: `https://kabinet.pecom.ru/api/v1/`
- URL метода: `https://kabinet.pecom.ru/api/v1/<группа>/<метод>/`

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

Тип: Basic Auth

HTTP Basic-аутентификация: логин — имя пользователя личного кабинета ПЭК, пароль — любой активный ключ доступа API. Ключ создаётся на странице «Регистрационные данные» в разделе «Ключи API»; для разных приложений рекомендуются разные ключи. Анонимный доступ не поддерживается.

Обязательные заголовки: `Content-Type: application/json;charset=utf-8`, `Accept: application/json`. Для сжатия ответов — `Accept-Encoding: gzip`. HTTPS с обязательной проверкой сертификата сервера.

```
curl.exe ^
--verbose ^
--cacert cacert-kabinet_pecom_ru.pem ^
--basic ^
--user user:FA21831AB83DB72D3261FA80BA309DBF6B2D7ADC ^
--request POST -d @curl-input.txt ^
--header "Content-Type: application/json; charset=utf-8" ^
--compressed ^
--output curl-output.txt ^
https://kabinet.pecom.ru/api/v1/cargos/status/
```

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

### POST /cargos/status/ — Статусы грузов

До 15 кодов грузов за запрос.

Статусы `cargos[].info.cargoStatus`: «Заявка на забор зарегистрирована», «Принят к перевозке», «В пути», «Прибыл», «Выполняется адресная доставка», «Выдан получателю», «Доставлен получателю», «Возвращен отправителю» и др.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `cargoCodes` | body | array | да | Коды грузов |

Пример запроса:

```
{
   "cargoCodes": [
       "780339690775",
       "999932277461",
       "772193116238"
   ]
}
```

### POST /cargos/statusfullhistory/ — История статусов

История изменения статусов по заявке или грузу.

### POST /cargos/details/ — Информация о грузе

Детальная информация о грузе и фотографии.

## Нюансы

- Все поля JSON-объекта в запросе обязательны, если не указано обратное.
- Логические ошибки (нет параметров, неверный формат) приходят с HTTP 200 и объектом `error` в теле — проверяйте его наличие, а не только статус.
- В `cargos` передавайте каждое грузоместо отдельным элементом; если известны только общие параметры — столько элементов, сколько мест, со средними весом и объёмом.
- Числа в габаритах округляются до сотых в большую сторону — передавайте не больше двух знаков после запятой.
- Вес — в килограммах, габариты — в метрах.
- Признак `isHP` применяется ко всему грузу, если стоит хотя бы у одного места.
- Часть полей `/cargos/status/` заполняется только при оформленном доступе к информации участников перевозки.

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

- [Рассчитать стоимость и сроки перевозки груза](https://mcp-everything.ru/integrations/pek/scenarios/rasschitat-stoimost-i-sroki-perevozki.md)

---

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