# МойСклад JSON API 1.2: Получить токен и начать работу

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

Для интеграций удобнее токен: его передают как `Bearer`, логин и пароль не хранятся в каждом запросе.

1. Получи токен: POST /api/remap/1.2/security/token с заголовком `Authorization: Basic` (логин:пароль в Base64). Предыдущие токены пользователя при этом отзываются.
2. Дальше передавай `Authorization: Bearer <AccessToken>`.
3. В каждом запросе обязателен заголовок `Accept-Encoding: gzip` — без него сервер ответит `415`.

```shell
curl --compressed -X POST \
  "https://api.moysklad.ru/api/remap/1.2/security/token" \
  -H "Authorization: Basic <Credentials>" \
  -H "Accept-Encoding: gzip"
```

## Базовые URL

- Боевой: `https://api.moysklad.ru`
- Все пути начинаются с .: `/api/remap/1.2`

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

Тип: Bearer-токен

Два способа: Basic Auth (заголовок `Authorization: Basic` с `логин:пароль` в Base64) или токен доступа (`Authorization: Bearer <AccessToken>`). Токен пользователя выдаёт POST /api/remap/1.2/security/token; для решений из маркетплейса используется токен решения. Лимит запросов зависит от способа: токены решений расходуют лимит медленнее, чем логин/пароль и токен пользователя.

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

### POST /api/remap/1.2/security/token — Получение токена

В ответе `access_token`. Новый токен отзывает ранее выданные токены пользователя.

Документация: https://dev.moysklad.ru/doc/api/remap/1.2/#/general

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `Authorization` | header | string | да | Basic <логин:пароль в Base64> |
| `Accept-Encoding` | header | string | да | gzip |

## Нюансы

- Обязательно сжатие: заголовок `Accept-Encoding: gzip`, иначе `415` без тела.
- Ссылки на объекты передаются в формате `meta` (`href`, `type`, `mediaType`).
- Списки возвращают `meta` (`size`, `limit`, `offset`, `nextHref`, `previousHref`) и `rows`; `limit` — до 1000.
- Массив `positions` в запросе на обновление полностью заменяет позиции документа: непереданные удаляются.
- Цены и суммы — в копейках.
- Функции под заголовком `X-Lognex-Remap-Beta-Feature` не подпадают под гарантию неизменности структуры.
- Остаток по заголовкам: `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-Lognex-Retry-TimeInterval`, `X-Lognex-Reset`, `X-Lognex-Retry-After`.
- Вебхуки работают только на платных тарифах и в пробный период; при бесплатном тарифе их нельзя создать.
- Есть MCP-сервер документации JSON API (раздел MCP-dev) — он ищет по документации и не выполняет запросы к аккаунту.

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

- [Выгрузить каталог с остатками](https://mcp-everything.ru/integrations/moysklad/scenarios/vygruzit-katalog-s-ostatkami.md)
- [Создать покупателя и заказ](https://mcp-everything.ru/integrations/moysklad/scenarios/sozdat-pokupatelya-i-zakaz.md)
- [Отгрузить заказ](https://mcp-everything.ru/integrations/moysklad/scenarios/otgruzit-zakaz.md)
- [Получать уведомления об изменениях](https://mcp-everything.ru/integrations/moysklad/scenarios/poluchat-uvedomleniya-ob-izmeneniyah.md)
- [Выгрузить большой отчёт асинхронно](https://mcp-everything.ru/integrations/moysklad/scenarios/vygruzit-bolshoy-otchet-asinhronno.md)

---

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