Bitculator

Changelog

API changelog

Every change to the Data API and its contract, newest first. Version numbers follow the versioning and deprecation policy.

  1. v1.3.1 Added

    MCP keys accepted in an X-API-Key header

    /mcp now also accepts the MCP key as an X-API-Key: YOUR_API_KEY header, for clients and gateways such as Smithery that reserve Authorization for their own sign-in. Authorization: Bearer keeps working and stays the documented default; when both headers are sent, X-API-Key is the key that is checked. The Data API at /api/v1 still accepts Bearer keys only. Failed authentication is now throttled per key as well as per IP, so one client's invalid key no longer locks out other clients behind the same IP.

  2. v1.3.1 Fixed

    Partial compounding periods counted exactly

    GET /calculators/compound-interest rounded the duration to whole compounding periods, so a duration that ended mid-period was simulated too long or too short: 6 months compounded annually ran a full year (12 deposits and a full year of interest), and 5 months ran no period at all (no deposits, no interest). Whole periods now run as before, the final partial period earns interest pro rata (simple interest for the fraction), and every deposit within the duration is counted. Results are unchanged whenever the duration is a whole number of compounding periods; parameters and response fields are unchanged.

  3. v1.3.0 Changed

    Compound-interest rate is annual, not per period

    The API and its documentation treated rate as the rate per compounding period, while the website calculator and its how-to used an annual rate. GET /calculators/compound-interest applied rate in full to every compounding period, so 5% compounded monthly grew like 5% a month. rate is now the annual nominal rate: each period earns rate divided by the periods per year (5% compounded monthly earns 5/12% a month), as meta.note now states. Parameters and response fields are unchanged; results change for every compounding frequency except annually. Separately, when contribution_frequency and compound_frequency are both daily or both weekly, deposits are no longer delayed or dropped through floating-point rounding, so total_contributions can be one deposit higher with duration_unit=months. This changes the meaning of an existing parameter: to reproduce earlier results, multiply your rate by the compounding periods per year.

  4. v1.2.0 Added

    Fear & Greed index (0–100) next to the raw score

    Every Fear & Greed reading now carries index next to score: the 0–100 Fear & Greed index exactly as shown on Bitculator (0–19 extreme fear, 20–39 fear, 40–59 neutral, 60–79 greed, 80–100 extreme greed) — use it for display. score is unchanged: the raw −100…+100 composite that index is derived from. Applies to GET /sentiment/fear-greed (the headline reading and every entry in intervals), fear_greed on GET /global and meta.fear_greed on GET /global/heatmap. Additive; no existing field changed.

  5. v1.1.2 Fixed

    Unknown fully diluted valuation is null

    GET /coins/{slug} returned fully_diluted_valuation as 0 for coins without a max supply (for example Solana and Ethereum, whose supply is uncapped). It now falls back to the total supply and is null when neither is known, as the OpenAPI contract already documented.

  6. v1.1.1 Fixed

    Null figures, sorting and movers corrected

    marketcap and dominance can be null for a coin without circulating supply, and the trust-score score and breakdown are null for an unranked exchange. POST /alarms returns 422 when the coin has no current value for the chosen metric. /coins/recently-added and /wallets/timeline now honour sort. /coins/gainers and /coins/losers are ordered by the change itself (previously effectively by marketcap), and losers exclude coins at 0.00. Ascending sorts return null values last. /prices resolves an ambiguous symbol to the highest-ranked active coin. The OpenAPI contract marks the nullable market fields and types 24h volume as a number.

  7. v1.1.0 Changed

    OpenAPI contract enriched

    The published contract now carries examples at media-type level, one shared error schema referenced from every 4xx/5xx response, the 401, 429 and 500 responses every keyed call can return, the X-RateLimit-* and X-Quota-* headers on every success response, the alarm.triggered delivery as a callback on POST /webhooks, and contact, licence and terms metadata. No request or response changed - only how it is described.

  8. v1.1.0 Added

    Machine-readable discovery

    New: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), a JSON Schema bundle of the shared response shapes, a public status page with a JSON twin, this changelog, and the versioning and deprecation policy.

  9. v1.0.1 Changed

    MCP keys and plans of their own

    The MCP server moved to its own keys and plans, minted in the MCP console. Data API keys are no longer accepted at /mcp; each tool call still costs one request.

  10. v1.0.1 Added

    MCP server

    The Bitculator MCP server went live at /mcp: 19 read-only tools over Streamable HTTP for Claude, Cursor, VS Code and any MCP client, returning the same decimal-string data as the REST API.

  11. v1.0.1 Added

    Eight official SDKs

    TypeScript, Python, PHP, Go, Rust, Java, C# and C++ clients, each covering every endpoint on the same transport core: Bearer auth, envelope unwrapping, X-Quota-* capture, retries on 429 and 5xx, typed errors and paging.

  12. v1.0.1 Changed

    Plan-gated endpoints and windows

    Some endpoints and longer indicator windows now require Starter or Pro. A call outside your plan returns 403 plan_required with details.required_plan naming the plan that unlocks it, and does not consume quota.

  13. v1.0.0 Added

    Data API v1

    Launch: 85 operations across 15 groups - coins, prices, markets, exchanges, wallets, global, sentiment, indicators, liquidations, conversion, calculators, editorial, alarms, webhooks and meta. Bearer keys with the data-api ability, the { data, meta } envelope, decimal-string precision, X-Quota-* headers, signed webhooks, and Free, Starter and Pro plans with their own monthly quota.

Stay informed

Deprecations are announced here and by email to every key owner at least six months before removal - see the deprecation policy. The machine-readable index at /apis.json carries the date of the newest entry as its modified stamp.