API для поставщиков
Один эндпоинт. Отправьте массив цен, получите обратно, что опубликовано и что задержано. Нет SDK для установки и нет интеграции, о которой нужно назначать созвон — если в вашей системе уже есть сегодняшние цифры, это один HTTP-запрос.
Получите ключ
Откройте портал поставщика с адреса, с которого котирует ваш деск. Пришедшая ссылка выполнит вход, а ваш ключ будет на этой странице. Ключи начинаются с bfps_ и никогда не истекают; вы можете сменить ключ на той же странице.
Относитесь к нему как к паролю. Любой, кто им владеет, может размещать цены от вашего имени, а неверная цена, приписанная вам, хуже для вас, чем для нас.
Размещение цен
POST https://bunkerfuelprices.com/api/v1/supplier/prices
curl -X POST https://bunkerfuelprices.com/api/v1/supplier/prices \
-H "Authorization: Bearer bfps_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"prices": [
{ "port": "SGSIN", "grade": "VLSFO", "amount": 784.50 },
{ "port": "SGSIN", "grade": "MGO", "amount": 1146.00 },
{ "port": "AEFJR", "grade": "VLSFO", "amount": 795.00,
"minMt": 200, "validHours": 24, "basis": "delivered" }
]
}'Поля
| Поле | Тип | Примечания | |
|---|---|---|---|
| port | string | required | UN/LOCODE, пять букв — SGSIN, NLRTM, AEFJR. Не название порта. Неизвестный код отклоняется только для этой строки; остальные всё равно размещаются. |
| grade | enum | required | VLSFO · HSFO · MGO · ULSFO · LNG · B24 · B30 |
| amount | number | required | Цена, в валюте и единице ниже. |
| currency | USD | EUR | optional | По умолчанию USD. EUR конвертируется по актуальному справочному курсу ECB на этот день. |
| unit | mt | litre | m3 | optional | По умолчанию mt. Цены за литр конвертируются с использованием плотности сорта. |
| basis | delivered | ex_wharf | fob | optional | По умолчанию delivered. Это важно: цена ex-wharf, показанная как delivered, занижает то, что платит покупатель, а мы сравниваем только в пределах одного базиса. |
| minMt | number | optional | Минимальная партия, к которой применяется цена. |
| validHours | 1–168 | optional | Как долго цена действует. По умолчанию 24, после чего она помечается как устаревшая, а не показывается как актуальная. |
| taxIncluded | boolean | optional | По умолчанию false. Актуально в основном для яхтенных причалов. |
Ответ
{
"accepted": 3,
"published": 2,
"held": 1,
"results": [
{ "port": "SGSIN", "grade": "VLSFO", "ok": true, "published": true,
"submissionId": "..." },
{ "port": "SGSIN", "grade": "MGO", "ok": true, "published": true,
"submissionId": "..." },
{ "port": "AEFJR", "grade": "VLSFO", "ok": true, "published": false,
"heldForReview": ["38% away from the $795 median across 6 other ports"] }
]
}Строка, далёкая от рынка в других портах, задерживается для проверки человеком, а не публикуется. Это не сомнение в вас — это то, что не даёт одной ошибочно набранной цифре стать значением, по которому действует покупатель, и это защищает ваше имя больше, чем наше. Задержанные цены обычно освобождаются в тот же день.
Строки независимы. Плохая строка не отклоняет весь пакет.
Считайте то, что мы храним
curl https://bunkerfuelprices.com/api/v1/supplier/prices \ -H "Authorization: Bearer bfps_YOUR_KEY"
Возвращает ваши последние сто отправок с их статусом, чтобы вы могли сверяться, не ведя собственный журнал того, что мы приняли.
Публичная ценовая доска
Открыта, ключ не нужен, и полезна для проверки того, как ваша цена соотносится с остальным рынком, прежде чем вы её разместите.
curl "https://bunkerfuelprices.com/api/v1/prices?grade=VLSFO&limit=50"
Ошибки и лимиты
| Статус | Значение |
|---|---|
| 200 | Обработано. Проверьте results — 200 не означает, что каждая строка опубликована. |
| 400 | Тело не распарсилось. Ответ называет поле. |
| 401 | Отсутствующий, неверный или приостановленный ключ. |
До 200 цен на запрос. Размещайте так часто, как хотите — большинство десков размещают один раз утром и ещё раз, если рынок движется. Повторное размещение того же порта и сорта заменяет прежнюю цену, а не дублирует её.
Что мы с этим делаем
Ваша цена появляется на странице порта как индикативная, с указанием вашей компании и даты. Покупатели, смотрящие на этот порт, видят ваше имя рядом с цифрой вместо пустого места, и запросы котировок доходят до вас, а не проходят мимо.
Мы не поставщик топлива, не трейдер и не брокер и не занимаем торговую позицию ни по какому грузу, поэтому у нас нет интереса к вашей цене, кроме её точности. Полные подробности в Политике по данным и ценам. Отзовите в любой момент через портал или напишите на data@bunkerfuelprices.com.