Журнал змін
Кожна зміна Data API та його контракту, спершу найновіші. Номери версій відповідають політиці версіонування та застарівання.
/mcp тепер також приймає MCP-ключ у заголовку X-API-Key: YOUR_API_KEY - для клієнтів та шлюзів, як-от Smithery, які резервують Authorization для власної авторизації. Authorization: Bearer продовжує працювати й залишається способом за замовчуванням, описаним у документації; якщо надіслано обидва заголовки, перевіряється саме ключ із X-API-Key. Data API на /api/v1 і надалі приймає лише Bearer-ключі. Невдалі спроби автентифікації тепер обмежуються не лише для кожної IP-адреси, а й для кожного ключа, тож недійсний ключ одного клієнта більше не блокує інших клієнтів за тією самою IP-адресою.
GET /calculators/compound-interest округлював строк до цілої кількості періодів капіталізації, тому строк, що закінчувався посеред періоду, моделювався задовгим або закоротким: 6 місяців із капіталізацією annually вважалися цілим роком (12 внесків і відсотки за весь рік), а 5 місяців не давали жодного періоду (ні внесків, ні відсотків). Тепер цілі періоди розраховуються як раніше, останній неповний період приносить відсотки пропорційно (прості відсотки за його частку), а кожен внесок у межах строку враховується. Якщо строк дорівнює цілій кількості періодів капіталізації, результати не змінюються; параметри та поля відповіді не змінилися.
API та його документація трактували rate як ставку за період нарахування, тоді як калькулятор на сайті та інструкція до нього використовували річну ставку. GET /calculators/compound-interest застосовував rate повністю до кожного періоду нарахування, тож 5% при щомісячному нарахуванні зростали як 5% на місяць. Тепер rate - номінальна річна ставка: кожен період приносить rate, поділену на кількість періодів на рік (5% при щомісячному нарахуванні дають 5/12% на місяць), про що тепер повідомляє meta.note. Параметри й поля відповіді не змінюються; результати змінюються для всіх частот нарахування, крім annually. Крім того, якщо contribution_frequency і compound_frequency обидві дорівнюють daily або обидві дорівнюють weekly, внески більше не затримуються й не губляться через округлення чисел з рухомою комою, тож total_contributions за duration_unit=months може містити на один внесок більше. Це змінює зміст наявного параметра: щоб відтворити попередні результати, помножте rate на кількість періодів капіталізації на рік.
Кожне значення Fear & Greed тепер містить index поруч із score: індекс Fear & Greed від 0 до 100 точно так, як його показує Bitculator (0–19 екстремальний страх, 20–39 страх, 40–59 нейтрально, 60–79 жадібність, 80–100 екстремальна жадібність) — використовуйте його для відображення. score не змінився: це сирий складений показник −100…+100, з якого виводиться index. Стосується GET /sentiment/fear-greed (основне значення та кожен запис у intervals), fear_greed у GET /global та meta.fear_greed у GET /global/heatmap. Лише додавання; жодне наявне поле не змінено.
GET /coins/{slug} повертав fully_diluted_valuation рівним 0 для монет без максимальної пропозиції (наприклад, Solana та Ethereum, пропозиція яких не обмежена). Тепер використовується загальна пропозиція, а якщо жодна не відома, значення дорівнює null, як уже було описано в контракті OpenAPI.
marketcap і dominance можуть бути null для монети без обігової пропозиції, а score і breakdown оцінки довіри дорівнюють null для біржі без рангу. POST /alarms повертає 422, якщо монета не має поточного значення для обраної метрики. /coins/recently-added і /wallets/timeline тепер враховують sort. /coins/gainers і /coins/losers сортуються за самою зміною (раніше фактично за ринковою капіталізацією), а losers виключають монети зі значенням 0.00. Сортування за зростанням повертає null-значення останніми. /prices зіставляє неоднозначний символ з активною монетою з найвищим рейтингом. Контракт OpenAPI позначає ринкові поля, що можуть бути null, і типізує обсяг за 24 год як число.
Опублікований контракт тепер містить приклади на рівні media-type, одну спільну схему помилки, на яку посилається кожна відповідь 4xx/5xx, відповіді 401, 429 та 500, які може повернути будь-який виклик із ключем, заголовки X-RateLimit-* і X-Quota-* у кожній успішній відповіді, доставку alarm.triggered як callback на POST /webhooks, а також метадані контакту, ліцензії та умов. Жоден запит чи відповідь не змінилися - лише те, як їх описано.
Нове: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), бандл JSON Schema зі спільними формами відповідей, публічна сторінка статусу з JSON-двійником, цей журнал змін і політика версіонування та застарівання.
MCP-сервер перейшов на власні ключі й тарифи, які видаються в MCP-консолі. Ключі Data API більше не приймаються на /mcp; кожен виклик інструмента, як і раніше, коштує один запит.
MCP-сервер Bitculator запрацював на /mcp: 19 інструментів «лише для читання» через Streamable HTTP для Claude, Cursor, VS Code та будь-якого MCP-клієнта, які повертають ті самі дані у вигляді десяткових рядків, що й REST API.
Клієнти для TypeScript, Python, PHP, Go, Rust, Java, C# і C++, кожен покриває всі ендпоінти на спільному транспортному ядрі: Bearer-автентифікація, розпакування оболонки, захоплення X-Quota-*, повтори при 429 та 5xx, типізовані помилки та посторінкова навігація.
Деякі ендпоінти та довші вікна індикаторів тепер потребують Starter або Pro. Виклик поза вашим тарифом повертає 403 plan_required, де details.required_plan називає тариф, який його відкриває, і не витрачає квоту.
Запуск: 85 операцій у 15 групах - монети, ціни, ринки, біржі, гаманці, глобальні дані, настрої, індикатори, ліквідації, конвертація, калькулятори, редакційні матеріали, сигнали тривоги, вебхуки та мета. Bearer-ключі з дозволом data-api, оболонка { data, meta }, точність десяткових рядків, заголовки X-Quota-*, підписані вебхуки та тарифи Free, Starter і Pro з власною місячною квотою.
Про застарівання оголошується тут і електронною поштою кожному власнику ключа щонайменше за шість місяців до видалення - див. політику застарівання. Машинозчитуваний індекс /apis.json несе дату найновішого запису у своїй позначці modified.