Сценарий из mcp-everything. Актуально на 2026-10-24.
Показать покупателю цену и срок доставки СДЭК в корзине или калькуляторе на сайте.
# Токен (кешируй на expires_in секунд)
TOKEN=$(curl -s -X POST "https://api.cdek.ru/v2/oauth/token?grant_type=client_credentials&client_id=<Account>&client_secret=<Secure password>" | jq -r .access_token)
# Все тарифы: Москва → Санкт-Петербург, посылка 1,5 кг
curl -X POST https://api.cdek.ru/v2/calculator/tarifflist \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"from_location": {"code": 44},
"to_location": {"code": 137},
"packages": [{"weight": 1500, "length": 20, "width": 15, "height": 10}]
}'
https://api.cdek.ruhttps://api.edu.cdek.ruТип: OAuth 2.0
OAuth 2.0 (client credentials). Токен получают запросом POST /v2/oauth/token с grant_type=client_credentials, client_id (Account) и client_secret (Secure password) из личного кабинета СДЭК (раздел интеграции) и передают в заголовке Authorization: Bearer <token> (JWT). Для интеграции нужен договор со СДЭК.
Тестовая учётная запись для api.edu.cdek.ru (из документации):
В ответе: access_token, token_type, expires_in, scope, jti.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
grant_type |
query | string | да | client_credentials |
client_id |
query | string | да | Идентификатор клиента |
client_secret |
query | string | да | Секретный ключ клиента |
Стоимость и сроки доставки по всем доступным тарифам. Расчёт по конкретному тарифу — POST /v2/calculator/tariff, с доп. услугами — POST /v2/calculator/tariffAndService.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
date |
body | string | нет | Плановая дата передачи заказа; по умолчанию текущая |
type |
body | integer | нет | 1 — интернет-магазин (по умолчанию), 2 — доставка |
currency |
body | integer | нет | Код валюты расчёта |
lang |
body | string | нет | rus, eng, zho |
shipment_point |
body | string | нет | ПВЗ, куда клиент привезёт посылку |
delivery_point |
body | string | нет | ПВЗ доставки |
from_location |
body | object | да | Откуда: code, postal_code, country_code, city, address, координаты |
to_location |
body | object | да | Куда: те же поля |
packages |
body | array | да | Места |
packages[].weight |
body | integer | да | Вес в граммах |
packages[].length |
body | integer | нет | Длина, см |
packages[].width |
body | integer | нет | Ширина, см |
packages[].height |
body | integer | нет | Высота, см |
ACCEPTED означает только первичную валидацию, итог — SUCCESSFUL или INVALID. Обычно 200–500 мс, при пиковой нагрузке до 30–60 секунд; опрашивайте с паузой 2–3 секунды.POST /v2/orders нельзя одновременно передавать shipment_point и from_location, а также delivery_point и to_location.CREATED и ACCEPTED.Если этого недостаточно — официальная документация: https://apidoc.cdek.ru/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/cdek.md