سجل التغييرات
كل تغيير في Data API وفي عقده، الأحدث أولاً. وتتبع أرقام الإصدارات سياسة الإصدارات وإيقاف الدعم.
أصبح /mcp يقبل مفتاح MCP أيضاً في ترويسة X-API-Key: YOUR_API_KEY، وذلك لدعم العملاء والبوابات التي تحجز ترويسة Authorization لتسجيل الدخول الخاص بها، مثل Smithery. وتواصل ترويسة 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 حسب التغيّر نفسه (بعد أن كان الترتيب عملياً حسب القيمة السوقية)، وتستثني قائمة الخاسرين العملات عند 0.00. ويضع الفرز التصاعدي القيم الفارغة في آخر النتائج. ويحلّ /prices الرمز الملتبس إلى العملة النشطة الأعلى تصنيفاً. ويُعلِّم عقد OpenAPI حقول السوق التي تقبل القيم الفارغة، ويحدّد نوع حجم التداول 24 ساعة رقماً.
أصبح العقد المنشور يحمل أمثلة على مستوى نوع الوسائط، ومخطط خطأ مشتركاً واحداً تُحيل إليه كل استجابة 4xx/5xx، واستجابات 401 و429 و500 التي قد يُعيدها أي طلب يحمل مفتاحاً، وترويسات X-RateLimit-* وX-Quota-* في كل استجابة ناجحة، وتسليم alarm.triggered بوصفه ردّ نداء على POST /webhooks، وبيانات وصفية للتواصل والترخيص والشروط. لم يتغيّر أي طلب أو استجابة - تغيّرت طريقة وصفها فقط.
جديد: /apis.json، و/.well-known/api-catalog (RFC 9727)، و/.well-known/security.txt (RFC 9116)، وحزمة JSON Schema لأشكال الاستجابات المشتركة، وصفحة حالة عامة لها نسخة JSON مقابلة، وسجل التغييرات هذا، وسياسة الإصدارات وإيقاف الدعم.
انتقل خادم MCP إلى مفاتيح وخطط خاصة به تُنشأ من وحدة تحكم MCP. ولم تعد مفاتيح Data API مقبولة على /mcp؛ ولا يزال كل استدعاء أداة يُحتسب طلباً واحداً.
انطلق خادم Bitculator MCP على /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 الخاص به.