Bitculator

Ändringslogg

API-ändringslogg

Varje ändring i Data API och dess kontrakt, nyast först. Versionsnumren följer policyn för versionering och utfasning.

  1. v1.3.3 Ändrat

    Skapande och test av webhooks begränsade till 5 begäranden per minut

    POST /webhooks och POST /webhooks/{id}/test delar nu en gräns på 5 begäranden per minut och konto, utöver planens burst-gräns. Begäranden över gränsen får 429 rate_limited med Retry-After. En testhändelse skickas nu en gång, utan nya försök; andra leveranser försöks fortfarande upp till 3 gånger, med backoff mellan försöken. Det här är en gräns mot missbruk och lämnar varje plans månatliga kvot och burst-gräns oförändrade. Policyn för versionering och utfasning ändrades samma dag så att sådana gränser kan gälla direkt; dittills gällde utfasningens tidslinje på sex månader för varje sänkning av en anropsgräns som en plan hade. För dessa två endpoints visar X-RateLimit-*-headrarna den av de två gränserna som har minst antal begäranden kvar.

  2. v1.3.3 Ändrat

    Webhook-värdnamn slås upp vid leverans, inte när de skapas

    POST /webhooks slår inte längre upp värdnamnet i URL:en. Anropet returnerar fortfarande 422 när URL:en inte använder https, innehåller inloggningsuppgifter eller har en icke-offentlig IP-adress som värd. Ett värdnamn som inte går att slå upp, eller som pekar på en icke-offentlig adress, fick hittills 422; det accepteras nu med 201 och räknas mot gränsen på 5 endpoints per konto. Varje leverans till en sådan endpoint misslyckas då utan nya försök, error på GET /webhooks/{id}/deliveries anger orsaken, och 10 misslyckade leveranser i rad inaktiverar endpointen. Skicka en testhändelse med POST /webhooks/{id}/test när du har skapat en endpoint och kontrollera leveransloggen för att se att den går att nå.

  3. v1.3.3 Ändrat

    Användningsöversikten visar route-mallar, inte sökvägar

    endpoints[].endpoint på GET /usage anger nu route-mallen i stället för den begärda sökvägen - api/v1/coins/{slug} i stället för api/v1/coins/bitcoin - så varje endpoint har en rad i stället för en per slug eller id. Begäranden som registrerades tidigare under den aktuella faktureringsperioden behåller sin sökväg, så båda formerna kan förekomma tills perioden tar slut.

  4. v1.3.2 Åtgärdat

    Börsprofil och trust score åtgärdade

    GET /exchanges/{slug} och GET /exchanges/{slug}/trust-score hade misslyckats med 500 för alla börser sedan Data API lanserades. Båda svarar nu; parametrar och svarsfält är oförändrade, och en börs utan rankning returnerar score och breakdown som null.

  5. v1.3.2 Ändrat

    Kontraktstyper rättade

    Det publicerade OpenAPI-kontraktet markerar nu varje fält som kan vara null som nullable och anger värden med decimaler som tal (till exempel invested på GET /calculators/dca och indikatorvärden); de gemensamma fälten logo och last_updated samt pagineringsfälten from/to är nullable på alla endpoints, och detsamma gäller coin-fälten name och price på alla endpoints för coin-listor och priser. Kontraktet anger också series för DCA som en array, dokumenterar svaren från GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric} och GET /sentiment/altseason, dokumenterar days på GET /sentiment/altseason som 1–365 (0 har alltid avvisats; utelämna den för att få den aktuella avläsningen) och listar koderna endpoint_unavailable (503) och http_error i felschemat. Ingen begäran eller något svar har ändrats - bara hur de beskrivs.

  6. v1.3.1 Ändrat

    Misslyckad autentisering begränsas per nyckel

    Misslyckad autentisering begränsades tidigare till 30 försök per minut och IP, varefter varje nyckel bakom den IP-adressen fick 429. Nu får en nyckel misslyckas 30 gånger per minut från en IP och en IP 300 gånger, nycklar som har autentiserats under ungefär de senaste 15 minuterna blockeras inte av IP-gränsen, och en begäran utan nyckel returnerar 401 utan att räknas. Blockerade begäranden får 429 rate_limited med Retry-After.

  7. v1.3.1 Ändrat

    Icke-kanoniska URL:er omdirigeras

    GET- och HEAD-begäranden vars sökväg har ett avslutande snedstreck, ett dubbelt snedstreck eller en inledande /index.php får nu en 301 till den rena URL:en i stället för att besvaras - till exempel från /api/v1/coins/ till /api/v1/coins. Andra metoder påverkas inte.

  8. v1.3.1 Åtgärdat

    Delvisa ränteperioder räknas exakt

    GET /calculators/compound-interest avrundade löptiden till hela ränteperioder, så en löptid som slutade mitt i en period simulerades för lång eller för kort: 6 månader med annually-ränta löpte ett helt år (12 insättningar och ett helt års ränta) och 5 månader löpte ingen period alls (inga insättningar, ingen ränta). Hela perioder beräknas nu som tidigare, den sista delvisa perioden ger ränta proportionellt (enkel ränta för bråkdelen) och varje insättning inom löptiden räknas. Resultaten är oförändrade när löptiden är ett helt antal ränteperioder; parametrar och svarsfält är oförändrade.

  9. v1.3.0 Ändrat

    Räntan för ränta-på-ränta är årlig, inte per period

    API-tjänsten och dess dokumentation behandlade rate som räntan per kapitaliseringsperiod, medan kalkylatorn på webbplatsen och dess guide använde en årsränta. GET /calculators/compound-interest tillämpade hela rate på varje kapitaliseringsperiod, så 5 % med månatlig ränta-på-ränta växte som 5 % per månad. rate är nu den nominella årsräntan: varje period ger rate delat med antalet perioder per år (5 % med månatlig ränta-på-ränta ger 5/12 % per månad), vilket meta.note nu anger. Parametrar och svarsfält är oförändrade; resultaten ändras för alla kapitaliseringsfrekvenser utom annually. Oberoende av detta skjuts insättningar inte längre upp och faller inte bort på grund av flyttalsavrundning när contribution_frequency och compound_frequency båda är daily eller båda är weekly, så total_contributions kan bli en insättning högre med duration_unit=months. Det ändrar innebörden av en befintlig parameter: för att återskapa tidigare resultat multiplicerar du din rate med antalet ränteperioder per år.

  10. v1.2.0 Tillagt

    Fear & Greed-index (0–100) bredvid det råa score

    Varje Fear & Greed-avläsning innehåller nu index bredvid score: Fear & Greed-indexet 0–100 exakt som det visas på Bitculator (0–19 extrem rädsla, 20–39 rädsla, 40–59 neutral, 60–79 girighet, 80–100 extrem girighet) — använd det för visning. score är oförändrat: det råa sammansatta värdet −100…+100 som index härleds från. Gäller GET /sentiment/fear-greed (huvudavläsningen och varje post i intervals), fear_greed på GET /global och meta.fear_greed på GET /global/heatmap. Endast ett tillägg; inget befintligt fält har ändrats.

  11. v1.1.2 Åtgärdat

    Okänd fullt utspädd värdering är null

    GET /coins/{slug} returnerade fully_diluted_valuation som 0 för coins utan maximalt utbud (till exempel Solana och Ethereum, vars utbud saknar tak). Nu används det totala utbudet i stället, och värdet är null när inget av dem är känt, som OpenAPI-kontraktet redan dokumenterade.

  12. v1.1.2 Åtgärdat

    Fear & Greed utan tillräckligt med data är null

    En Fear & Greed-avläsning som ännu inte hade något score rapporterades som score: 0. Den är nu null på GET /sentiment/fear-greed, och detsamma gäller fear_greed på GET /global och meta.fear_greed på GET /global/heatmap.

  13. v1.1.1 Åtgärdat

    Null-värden, sortering och movers rättade

    marketcap och dominance kan vara null för ett coin utan cirkulerande utbud, och trust scorens score och breakdown är null för en börs utan rankning. POST /alarms svarar med 422 när coinet saknar ett aktuellt värde för det valda måttet. /coins/recently-added och /wallets/timeline respekterar nu sort. /coins/gainers och /coins/losers sorteras efter själva förändringen (tidigare i praktiken efter börsvärde), och losers utesluter coins på 0.00. Stigande sorteringar returnerar null-värden sist. /prices löser en tvetydig symbol till det högst rankade aktiva coinet. OpenAPI-kontraktet markerar de marknadsfält som kan vara null och anger 24h-volymen som ett tal.

  14. v1.1.1 Tillagt

    Insikter anger att de är AI-skrivna

    Varje insikt på GET /insights, GET /insights/{id} och GET /coins/{slug}/insights har nu generated_by: "ai" och model, modellen som skrev den. Endast ett tillägg; inget befintligt fält har ändrats.

  15. v1.1.1 Ändrat

    Huobi heter nu HTX; CoinEx inaktiv

    Börsen Huobi bytte namn till HTX och dess slug ändrades från huobi till htx; API:et följer inte slug-omdirigeringar, så /exchanges/huobi returnerar nu 404. CoinEx sattes som inaktiv och returneras inte längre.

  16. v1.1.1 Åtgärdat

    Inaktuella 24h- och 7d-förändringar är null

    change_24h och change_7d är nu null när ett coins förändringar inte har räknats om på 15 minuter, i stället för att visa en inaktuell rörelse. Sedan den 18 september gäller detsamma för change_rank_24h och change_rank_7d.

  17. v1.1.0 Ändrat

    OpenAPI-kontraktet berikat

    Det publicerade kontraktet bär nu exempel på medietypsnivå, ett gemensamt felschema som refereras från varje 4xx/5xx-svar, de 401-, 429- och 500-svar som varje nyckelbaserat anrop kan returnera, X-RateLimit-*- och X-Quota-*-headrarna på varje lyckat svar, alarm.triggered-leveransen som en callback på POST /webhooks, samt metadata för kontakt, licens och villkor. Ingen begäran eller något svar har ändrats - bara hur de beskrivs.

  18. v1.1.0 Tillagt

    Maskinläsbar upptäckt

    Nytt: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), ett JSON Schema-paket med de gemensamma svarsformerna, en publik statussida med JSON-tvilling, den här ändringsloggen samt policyn för versionering och utfasning.

  19. v1.0.1 Ändrat

    Data API-kvoten delas inte längre med MCP

    MCP-verktygsanrop slutade räknas mot Data API-planens månatliga kvot och burst-gräns; MCP-servern har haft egna nycklar och planer sedan den dagen. tokens[].kind på GET /usage kan nu vara mcp, och 429-meddelandet vid överskriden kvot lyder ”Your Data API plan has reached its monthly request limit.” (tidigare stod det embed-plan).

  20. v1.0.1 Ändrat

    Verifierad e-post krävs för att skapa nycklar

    Att skapa eller rotera en Data API-nyckel i utvecklarkonsolen kräver nu en verifierad e-postadress; konton utan e-post, till exempel inloggningar med plånbok, är undantagna. Skapandet av nycklar är begränsat till 10 per minut. Befintliga nycklar fortsätter att fungera.

  21. v1.0.1 Åtgärdat

    Tickervolymer behåller centen

    volume_usd på GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets och GET /exchanges/{slug}/tickers lagrades som ett heltal, så centen gick förlorade och marknader under 0,50 dollar visade 0. Volymerna behåller nu två decimaler, och totalerna som byggs av dem ärver inte längre avrundningen.

  22. v1.0.1 Ändrat

    Sparkline-förändringen är i procent för alla perioder

    change på GET /coins/{slug}/sparkline och GET /exchanges/{slug}/sparkline var en bråkdel för 30d till 365d (0,05 betydde +5 %) men en procentsats för 24h och 7d. Den är nu en procentsats för alla perioder (1.25 betyder +1,25 %), så värdena för de längre perioderna är 100 gånger större än tidigare, och rörelser under 0,5 % avrundas inte längre till 0.

  23. v1.0.1 Åtgärdat

    Sparklinens lägsta och högsta stämmer med serien

    På båda sparkline-endpointsen kom low och high från en sammanfattning som byggts över ett annat fönster och kunde motsäga points - till exempel en low över priserna i serien. De är nu de faktiska extremvärdena för den period som points samplas från.

  24. v1.0.1 Ändrat

    Vaporware-plånböcker listas

    GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug} och /wallets/{slug}/assets returnerar nu även plånböcker med statusen vaporware, så status kan ha det värdet.

  25. v1.0.1 Åtgärdat

    Källtext i insikter avkodad

    Källornas title och excerpt i insikter innehåller inte längre råa HTML-entiteter som í.

  26. v1.0.1 Åtgärdat

    Artiklars updated_at visar den senaste redigeringen

    För en artikel som aldrig hade redigerats visade updated_at på GET /articles och GET /articles/{slug} senaste gången posten ändrades av någon anledning, till exempel ett visningsantal eller en röst. Den visar nu den senaste redaktionella redigeringen, med publiceringsdatumet som reserv, och POST /articles/{slug}/feedback flyttar den inte längre.

  27. v1.0.1 Tillagt

    Sentiment i insikter

    Insikter innehåller nu sentiment: bullish, bearish, sheepish eller null när den inte är klassificerad.

  28. v1.0.1 Tillagt

    Åtta officiella SDK:er

    Klienter för TypeScript, Python, PHP, Go, Rust, Java, C# och C++, som var och en täcker varje endpoint på samma transportkärna: Bearer-autentisering, uppackning av höljet, infångning av X-Quota-*, omförsök vid 429 och 5xx, typade fel och paginering.

  29. v1.0.1 Ändrat

    Planlåsta endpoints

    Endpoints kan nu kräva en plan. Vid införandet krävde GET /sentiment/indicators Pro, och GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap och GET /global/history/{metric} krävde Starter. Ett anrop utanför din plan returnerar 403 plan_required med details.required_plan som anger vilken plan som låser upp det, och förbrukar ingen kvot.

  30. v1.0.1 Ändrat

    Likvidations-endpoints avstängda

    De sex /liquidations-endpointsen stängdes av på alla planer: de returnerar 503 endpoint_unavailable (”This endpoint is temporarily unavailable.”) och förbrukar ingen kvot.

  31. v1.0.1 Ändrat

    Pro-kvoten sänkt till 250 000

    Pro-planens månatliga kvot gick från 500 000 till 250 000 begäranden.

  32. v1.0.1 Ändrat

    En endpoint per indikator

    Den generiska GET /coins/{slug}/indicators/{family} blev 13 separat dokumenterade endpoints på samma sökvägar: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap och cmf. Befintliga anrop är oförändrade; ett okänt indikatornamn får nu en enkel 404 utan listan över giltiga namn.

  33. v1.0.1 Ändrat

    Egna planer och egen kvot för Data API

    Vid lanseringen drog Data API-anrop och förfrågningar från embed-widgetar från en gemensam månatlig pott kopplad till embed-planen. Data API har nu egna Free-, Starter- och Pro-planer, egen prenumeration och egen månatlig kvot, med en egen faktureringsperiod: kalendermånaden i UTC på Free, förankrad till förnyelsedagen på betalplaner. GET /ping och GET /usage rapporterar Data API-planen, och /usage räknar bara Data API-anrop. Gränserna var oförändrade vid uppdelningen.

  34. v1.0.1 Ändrat

    Dokumentationens URL:er flyttade

    Referensen flyttades från /{locale}/documentation till /{locale}/documentation/api/v1, och Postman-samlingen och OpenAPI-YAML:en från /documentation.postman och /documentation.openapi till /documentation/api/v1.postman och /documentation/api/v1.openapi. De gamla sökvägarna togs bort utan omdirigeringar; /api/v1/openapi.json är oförändrad.

  35. v1.0.0 Tillagt

    Data API v1

    Lansering: 73 operationer fördelade på 15 grupper - coins, priser, marknader, börser, plånböcker, globalt, sentiment, indikatorer, likvidationer, konvertering, kalkylatorer, redaktionellt, alarm, webhooks och meta. Bearer-nycklar med data-api-behörigheten, { data, meta }-höljet, decimalsträngsprecision, X-Quota-*-headrar och signerade webhooks. Data API-anrop och förfrågningar från embed-widgetar delade en månatlig kvot under embed-planen, och längre indikatorfönster krävde Starter.

Håll dig uppdaterad

Utfasningar tillkännages här och via e-post till varje nyckelägare minst sex månader före borttagning - se utfasningspolicyn. Det maskinläsbara indexet på /apis.json bär datumet för den nyaste posten som sin modified-stämpel.