BULLS API — машинно-читаемая логистика
Полная спецификация в OpenAPI 3.1. Sandbox с тестовыми данными. SDK для Python и Node.js. MCP-сервер для AI-агентов клиентов и партнёров.
99.97%
Uptime API за 30 дней
142 ms
Median TTFB API
37
Публичных endpoints
12
MCP-tools для агентов
Ключевые ресурсы
Все запросы — REST, JSON, OAuth 2.1. Версионирование через заголовок X-Bulls-Api-Version. Полная спецификация — в OpenAPI 3.1.
Перевозки
/v1/shipmentsсписок/v1/shipments/{id}детали/v1/shipmentsсоздать/v1/shipments/{id}/escalateэскалацияПарк и контейнеры BULLS BOX
/v1/containersсписок парка/v1/containers/{id}/telemetrylive IoT/v1/wagonsвагоныЭТРАН и РЖД
/v1/etran/gu12оформить ГУ-12/v1/etran/penaltiesштрафы РЖДФинансы и документы
/v1/finance/balanceбаланс/v1/finance/transactionsтранзакции/v1/documentsсписок документов/v1/documents/{id}/signЭПАналитика и ESG
/v1/analytics/shipmentsобзор/v1/analytics/ecoCO₂ / тонно-км/v1/analytics/costразбивка стоимостиWebhooks
/v1/webhooks/shipmentsподписка на события/v1/webhooksмои webhooksПолучить статус перевозки за 30 секунд
Зарегистрируйте OAuth-приложение в Control Tower → /settings/api-keys. Используйте полученный токен в заголовке Authorization: Bearer ....
- Получите токен — sandbox или production.
- Сделайте запрос
GET /v1/shipments/{id}. - Обработайте ответ. Подпишитесь на webhook для live-обновлений.
# Получить статус перевозки curl "https://api.bulls.win/v1/shipments/SHP-2026-04-1247" \ -H "Authorization: Bearer $BULLS_TOKEN" \ -H "X-Bulls-Api-Version: 2026-04-01" # Ответ (фрагмент) { "id": "SHP-2026-04-1247", "status": "in_transit", "route": { "from": "Джабык", "to": "Раменское" }, "eta": "2026-05-02T14:30:00Z", "containers": ["BULLS-40HT-0918"], "telemetry_url": "/v1/containers/BULLS-40HT-0918/telemetry", "co2_kg": 1284.6 }
Python и Node.js — типизированные клиенты
Python
pip install bulls-sdk from bulls import Client client = Client(token="$BULLS_TOKEN") shipment = client.shipments.get("SHP-2026-04-1247") print(shipment.status, shipment.eta)
Node.js / TypeScript
npm install @bulls/sdk import { BullsClient } from "@bulls/sdk"; const client = new BullsClient({ token: process.env.BULLS_TOKEN }); const shp = await client.shipments.get("SHP-2026-04-1247"); console.log(shp.status, shp.eta);
Для AI-агентов клиентов и партнёров
BULLS публикует MCP-сервер: ваш ChatGPT-агент, Claude или корпоративный AI может машинно-читаемо узнать тарифы, проверить наличие парка, забронировать перевозку.
- ↳ Resources: services, containers, routes, tariffs
- ↳ Tools: search_route, get_quote, book_shipment
- ↳ Безопасность: signed token, rate-limit, scope per partner
- ↳ llms.txt с описанием публичных сущностей
{
"mcpServers": {
"bulls": {
"url": "https://mcp.bulls.win/v1",
"auth": {
"type": "oauth2",
"scopes": ["routes:read", "quotes:read"]
}
}
}
}
# Пример вызова tool
{
"tool": "get_quote",
"args": {
"from": "Джабык",
"to": "Раменское",
"container": "40ft_hard_top",
"qty": 30
}
}
Лимиты и условия использования
1000 RPS · бесплатно
Тестовые данные, обновляются ежедневно. SLA нет.
100 RPS / org · по контракту
SLA 99.9%, MTTR ≤ 4 ч. Расширение по запросу.
60 запросов / мин / партнёр
Расширенные лимиты для известных партнёров.