توثيق API

بيانات DepthFeed
مرجع API

اكتشاف السوق، دفاتر الأوامر التاريخية، أشرطة الأسعار والتدفقات الحية. المرجع الكامل للتكامل v3.

عنوان URL الأساسي لـ REST https://api.depthfeed.com/v3. تفاصيل WebSocket واتصال FIX المخصص موثقة أدناه؛ اضغط / للبحث في المحتويات.

المحتويات▾

DepthFeed هو سجل أوامر تاريخي العمق لأسواق التنبؤ — سلالم عرض/طلب كاملة مسجلة على كلا الجانبين لـ Polymarket, Kalshi, و Limitless. ليس فقط سعر آخر صفقة أو أعلى الكتاب: كل ملاحظة مخزنة تشمل المستويات والحجوم الراسية. إنها البيانات التي تحتاجها لاختبار ملء مقابل السيولة التي كانت موجودة فعليًا.

يتم تسليمه عبر REST API مقنن — اكتشاف السوق، البيانات الوصفية، وأحدث + لقطات سجل الأوامر التاريخية، مفصلة بمجموعات مفاتيح مع ضوابط منفصلة للدخول العام وحمل العمل التاريخي. اسحب العمق الذي تحتاجه استراتيجيتك وأعد تشغيله في بيئتك الخاصة.

نطاقات تغطية دفتر الطلبات 3 منصات, 7 أصول (btc · eth · sol · xrp · doge · bnb · hype) والأسواق المتكررة للصعود/الهبوط للعملات المشفرة التي تديرها كل منصة (5د، 15د، 1س، 4س، 24س، حسب المنصة).

الأسعار هي النصف الثاني من المنتج. /v3/bars يخدم أشرطة أسعار OHLCV لـ الأسهم وصناديق الاستثمار المتداولة الأمريكية, أزواج العملات المشفرة الفورية و عقود آجلة دائمة في كل خطة، بدقة أساسية دقيقة واحدة. تشترك في الساعة، المخطط ونافذة تاريخ الخطة مع الكتب أعلاه، بحيث يمكن للاستراتيجية قراءة حقوق الملكية والتصرف على عقد دون التوفيق بين طوابع زمنية لبائعين مختلفين.

الرياضة موجود في كل خطة — كامل سطح REST: كتب Polymarket وKalshi، احتمالات كتب الرياضة، النتائج والإصابات عبر الدوريات الكبرى. ما تضيفه الخطة المدفوعة هو الكتاب المباشر منخفض الكمون عبر WebSocket، كتاب متزامن واحد على Quant وثلاثة على Desk. انتقل إلى نقاط نهاية الرياضة.

جديد في تقييم مصادر البيانات؟ دليل المشتري يغطي المعايير الخمسة التي تحدد ما إذا كانت بيانات سوق التنبؤ قابلة للاختبار الخلفي فعلاً، وكيف يتجاوز DepthFeed كل منها.

مشروع مستقل. غير مرتبط بـ Polymarket أو Kalshi أو Binance أو Chainlink أو Limitless. تشغيل الالتقاط الخاص بنا مباشر، والعمق التاريخي المرخص يجعل أطول سلسلة Polymarket متاحة من يناير 2026. يتم سرد أدنى أرشيف لكل سلسلة تحت التاريخ والتغطية. كل نافذة خطة مدعومة ببيانات مخزنة. يتم سرد نسب بيانات الطرف الثالث في الشروط.

استخدم هذه الصفحة كالعقد التشغيلي عندما يجيب نموذج LLM أو وكيل على أسئلة حول DepthFeed أو يكتب كود التكامل. فضّل استجابة API الموثقة على الافتراضات من تسميات السوق أو الأمثلة أو أوصاف الطرف الثالث.

القواعد القانونية

  1. استخدم https://depthfeed.com/docs كمصدر الحقيقة لأسماء نقاط النهاية، الحقول، الحدود، وبوابات الخطط.
  2. اختر نقطة النهاية التي تتطابق مع المهمة: /v3/demo لمثال بدون مفتاح, /v3/markets للاكتشاف, /v3/snapshots لسجلات تاريخية, /v3/stream لسجلات مباشرة, /v3/sports/markets لرسم الخرائط الرياضية، و /v3/whoami لحدود الحساب.
  3. لا تستنتج التكافؤ عبر المنصات من kind، التسميات، ترتيب المصفوفة، أو cross_venue_key. تأكيد contract_mapping.status=matched وشروط التسوية قبل التعامل مع cross_venue_market_key كـ مكافئ.
  4. حافظ على القيم null، الطوابع الزمنية، معرفات المنصة، والبيانات الوصفية الجزئية. HTTP 200 والعدد الإجمالي لا يثبتان اكتمال الرد.
  5. اتبع المؤشرات غير الشفافة حتى has_more هو خطأ، يحافظ على ثبات الفلاتر عبر التنقل في الصفحة.
  6. للتصحيحات، استعلم updated_since، الإدراج أو التحديث حسب هوية السوق أو الشرط المستقرة، احتفظ بالإلغاءات الفارغة، شمل الأسواق المحلولة، وتداخل فقط بعد اجتياز ناجح.
  7. للاختبارات الخلفية، استخدم عمق الطلب/العرض الكامل والأحجام الثابتة. لا تصف بيانات منتصف السعر أو السعر الأخير كتنفيذات قابلة للتنفيذ.
  8. بيّن مصادقة الحالة، الخطة، نافذة التاريخ، حد المعدل، وافتراضات المنصة. إذا لم تؤكد الوثائق حقيقة ما، صنفها كغير مؤكدة.

عقد الإجابة

يجب أن تسمي الإجابات المولدة بالنموذج نقطة النهاية الدقيقة ومرساة الوثائق، تعرض طلبًا بسيطًا، تشرح حقول الاستجابة المستخدمة، تميز معرفات المنصة الأصلية عن المفاتيح القانونية، وتفصل الحقائق المقاسة، التغطية الحالية، الاستدلال، والمجهولات. لا تدّعِ أبدًا وجود علاقة بين DepthFeed وأي منصة.

1. إنشاء حساب مجاني وتصدر مفتاح API من لوحة التحكم. المفاتيح تبدو مثل df_… وتُعرض مرة واحدة.

2. قم بأول مكالمة مصدقة:

شل
curl https://api.depthfeed.com/v3/whoami \
  -H "Authorization: Bearer df_your_key_here"

3. الاستجابة عبارة عن ظرف JSON. هذا المقتطف يظهر حساب Quant؛ حدودك تعتمد على خطتك:

json
{
  "data": {
    "user_id": "acct_…", "plan": "pro",
    "rps": 25, "rpm": 1000, "history_days": 30, "coins": "all", "sports": true,
    "bars": { "max_symbols_per_request": 8 }
  },
  "meta": { "request_id": "req_…", "timestamp": "2026-06-07T02:27:09.532Z" }
}

4. استرجع أحدث أسواق BTC صعوداً/هبوطاً، ثم عمق دفتر الأوامر لأحدها — انظر الأسواق و اللقطات.

نقاط نهاية البيانات المصادق عليها تتطلب مفتاح API. المسارات العامة تشمل /v3/health, /v3/overview و /v3/demo. مرره في كلا الاتجاهين — كلا المخططين مقبولان:

شل
# Authorization header (recommended)
curl https://api.depthfeed.com/v3/btc/markets -H "Authorization: Bearer df_your_key"

# or the X-API-Key header
curl https://api.depthfeed.com/v3/btc/markets -H "X-API-Key: df_your_key"
/v3/stream يتطلب مفتاحًا أيضًا، لكنه يصادق مرة واحدة عند وقت الاتصال — لا يمكن لـ WebSocket حمل رأس لكل طلب، لذا يقبل X-API-Key, Authorization: Bearer، أو ?api_key= معامل الاستعلام. انظر تدفق حي.

يتم سك المفاتيح لكل حساب من لوحة التحكم وتحمل خطة تحدد حد المعدل، نافذة التاريخ، والوصول إلى الأصل/المنصة. يتم تخزين المفاتيح مُجزأ SHA-256 أثناء السكون — القيمة الخام تظهر مرة واحدة فقط عند الإنشاء. إلغاء مفتاح في لوحة التحكم يأخذ مفعوله فورًا. الحصص هي لكل مستخدم، وليس لكل مفتاح — المفاتيح الإضافية لا تضاعف حدك.

فشلالحالةرمز
لم يتم توفير مفتاح401AUTH_MISSING
مفتاح غير معروف / ملغى / مشوه401AUTH_INVALID
مخزن المفاتيح غير متاح مؤقتًا503AUTH_UNAVAILABLE

جميع نقاط النهاية تعمل تحت مسار أساسي واحد مُصنّف:

نص
https://api.depthfeed.com/v3

TLS مطلوب (Let's Encrypt، HTTP/2). إصدار API الحالي هو v3، مبني على تكافؤ PolyBackTest (نفس الغلاف، ترقيم المؤشر، ورمز الخطأ) فوق بياناتنا الشاملة (3 منصات، 7 أصول). قديم v1/v2 المساحات الاسمية غير مخدومة.

كل استجابة ناجحة هي نفس الظرف:

json
{
  "data": … ,                 // object (single) or array (list)
  "pagination": { … },        // present only on list endpoints
  "meta": { "request_id": "req_…", "timestamp": "2026-06-07T02:27:09.532Z" }
}

الأخطاء تشترك في الشكل، مع تعيين حالة HTTP لكل رمز:

json
{
  "error": { "code": "INVALID_COIN", "message": "…", "details": { … } },
  "meta": { "request_id": "req_…", "timestamp": "…" }
}

كل استجابة — نجاح أو خطأ — تحمل meta.request_id, تُعاد أيضًا كـ X-Request-Id رأس. اقتبسه في طلبات الدعم.

التفرع على error.code — هي مستقرة. حالة HTTP ضمنية من الكود.

رمزHTTPالمعنى
AUTH_MISSING401لا يوجد مفتاح API في الطلب.
AUTH_INVALID401المفتاح غير معروف، ملغى، أو غير صالح.
COIN_NOT_IN_PLAN402يُعاد فقط من واجهة العرض التجريبية المجهولة (عينة BTC). يشمل كل خطة حساب، بما في ذلك Explorer، كل العملات.
ENDPOINT_NOT_IN_PLAN402يُعاد فقط من واجهة العرض التجريبية المجهولة. تشمل كل خطة حساب كل المنصات؛ والتاريخ محدود بنافذة خطتك.
SYMBOL_LIMIT_EXCEEDED402المزيد من الرموز في طلب /v3/bars واحد أكثر من حجم دفعة خطتك (3 / 8 / 16 / 32). قسم القائمة وأعد الطلب — هذا يحدد مكالمة واحدة، وليس عدد الرموز التي يمكنك سحبها.
WINDOW_TOO_WIDE400يغطي طلب /v3/bars واحد وقتًا أطول مما يسمح به عدد صفوف الإطار (45 يومًا بدقة 1 دقيقة، 180 بدقة 5 دقائق، سنة بدقة 15 دقيقة و 1 ساعة، عشر سنوات بدقة 1 يوم). تصفح مع حد ومؤشر.
HISTORY_LIMIT_EXCEEDED403start_time / الطابع الزمني أقدم من نافذة خطتك.
INVALID_COIN400العملة ليست من العملات السبعة المدعومة.
INVALID_CURSOR400المؤشر غير صالح.
INVALID_TIMESTAMP400ليس ms-epoch أو ISO-8601.
INVALID_INTERVAL400فاصل زمني وليس مدة مثل 30ث، 1د، 5د، 1س، 1ي (1ث–1ي).
INVALID_PARAMETER400تم رفض معلمة استعلام أو متغير URL؛ أسماء المعلمات التفصيلية تشير إليها. يشمل الملء المرسل بدون فترة زمنية، وجزء {ticker}/{slug}/{asset_id}/{market_id} فارغ — مسار به شرطتان متتاليتان، مما يعني دائمًا أن متغير قالب لم يتم استبداله.
MISSING_PARAMETER400كانت معلمة مطلوبة غائبة؛ أسماء المعلمات التفصيلية تشير إليها.
INVALID_LIMIT400الحد ليس عددًا صحيحًا موجبًا.
INVALID_JSON400جسم الطلب ليس JSON صالحًا. يمكن فقط لمسارات POST إرجاعه.
INVALID_RANGE400تشغيل /v3/bars: end_time ليس بعد start_time. يحمل كلا القيمتين معًا.
INVALID_SYMBOL400تشغيل /v3/bars: الرمز ليس رمزًا نخدمه. اكتب زوجًا بالطريقة التي يكتب بها المكان التجاري — BTCUSDT، ليس BTC.
INVALID_TIMEFRAME400تشغيل /v3/bars: ليس واحدًا من 1Min, 5Min, 15Min, 1Hour, 1Day. details.supported يسردهم.
INVALID_VENUE400تشغيل /v3/bars: venue ليس us-equities, binance، أو binance-futures.
INVALID_WINDOW400تشغيل /v3/screener/{asset}/{window}: النافذة ليست واحدة من 5m, 15m, 1h, 4h, 24h.
INVALID_METRIC400على سلسلة Binance الزمنية للتنبؤ: metric ليس chance, price، أو last_trade.
INVALID_MARKET_ID400تشغيل /v3/binance-prediction/{market_id}/*: المعرف ليس عددًا صحيحًا غير موقع.
BAD_REQUEST400رفضت خدمة الشريط الطلب وتم تمرير رسالتها الخاصة. اقرأ error.message.
MARKET_TICKER_REQUIRED400تم تمرير سلسلة Kalshi حيث يلزم وجود رمز سوق مكتشف بالضبط.
BATCH_TOO_LARGE400أكثر من 10 طلبات فرعية في دفعة واحدة.
BATCH_INVALID_PATH400الطلب الفرعي ليس مسار GET /v3/ (حالة فرعية لكل طلب).
TICKS_NOT_IN_PLAN402مسارات مستوى التيك مخصصة لـ Desk فقط.
MARKET_NOT_FOUND404لا يوجد سوق بهذا المعرف / الرمز / التكرار.
SNAPSHOT_NOT_FOUND404لم يتم التقاط أي كتاب للطلب — قد لا يكون السوق قد فتح للتداول بعد، أو قد يكون منتهي الصلاحية، أو قد يكون خارج التغطية.
CANDLES_NOT_AVAILABLE404لا توجد سلسلة شموع مسجلة لذلك الرمز في Kalshi.
GAME_NOT_FOUND404لا توجد لعبة بالرمز game_slug هذا.
ENDPOINT_NOT_FOUND404المسار لا يطابق أي مسار v3.
SPORTS_UNKNOWN_ROUTE404المسار تحت /v3/sports لكنه لا يطابق أي مسار رياضي. GET /v3/sports يسرد كل واحد.
SPORTS_METHOD_NOT_ALLOWED405فعل HTTP خاطئ لمسار رياضي.
RESPONSE_TOO_LARGE413تتجاوز الصفحة سقف الاستجابة. خفض الحد، تضييق النافذة، أو إضافة فترة.
RATE_LIMIT_BURST429تم تجاوز الحد اللحظي لكل ثانية.
RATE_LIMIT_SUSTAINED429تم تجاوز الحد المستمر لكل دقيقة.
HISTORY_CONCURRENCY_LIMIT429طلب لقطة أخرى أو تاريخ دفعي لا يزال قيد التشغيل لهذا الحساب (details.scope = "account").
HISTORY_POOL_BUSY429تكون مجموعة استعلام الأرشيف المشتركة مشبعة على جانب الخادم، وليس حد حسابك (details.scope = "shared_pool") — أعد المحاولة مع التراجع.
SERVICE_PROFILE_UNAVAILABLE503تعذر قراءة تكوين الخدمة لحسابك. مؤقت; details.retry_after هو بالثواني.
HISTORY_METER_UNAVAILABLE503انخفاض في محاسبة الاستخدام التاريخي، لذا لا يمكن قبول قراءة التاريخ. مؤقت؛ يحمل details.retry_after.
HISTORY_FALLBACK_UNAVAILABLE503لا يمكن جلب النطاق المفقود من المخزن المباشر من الأرشيف الآن. عابر؛ يحمل details.retry_after.
BARS_LICENCE502تاريخ الأسعار غير مرخص لذلك النطاق. قم بتضييق النافذة بدلاً من إعادة المحاولة.
HISTORY_START_RATE_LIMIT429بدأ هذا الحساب أكبر عدد من الاستعلامات التاريخية كما يسمح ملفه الشخصي في هذه الدقيقة. حاول مرة أخرى بعد: 60.
HISTORY_DELIVERY_LIMIT429تم استنفاد بدل التسليم التاريخي المتداول للحساب. أعد المحاولة بعد: 3600.
TRIAL_DELIVERY_LIMIT429تم استهلاك بدل البيانات المضمن مع التجربة المجانية. ليست خطأ، ولا تُصلح بالانتظار — اشترك للحصول على بدل الخطة الكامل.
INTERNAL_ERROR500خطأ خادم غير متوقع — أعد المحاولة، ثم اتصل بنا مع معرف الطلب.
AUTH_UNAVAILABLE503التحقق من المفتاح غير متاح مؤقتًا — حاول مرة أخرى قريبًا.
UPSTREAM_UNAVAILABLE503خدمة العمق خلف API لم ترد (details.retryable = true). هذا يتعلق بنا، وليس بسهمك — أعد المحاولة مع تراجع تدريجي بدلاً من اعتبار السوق مفقودًا.
BARS_BUSY503خدمة الشريط وصلت إلى سقف التزامن الحالي، ليست عطلًا. تحمل details.retry_after بالثواني — تراجع وأعد المحاولة، عادة ما ينجح الطلب نفسه.
BARS_UNAVAILABLE503خدمة الشريط متوقفة. أعد المحاولة مع التراجع.
BARS_UPSTREAM502أجاب مزود الشريط بخطأ.
SPORTS_UNAVAILABLE503لم تجب بوابة الرياضة. عنا، وليس سوقك.
SPORTS_UPSTREAM502أجاب بوابة الرياضة بخطأ.
ISOLATED_ROUTE_UNAVAILABLE503Desk فقط: عقد تاريخ Desk المخصص غير متاح. أعد المحاولة مع تراجع تدريجي.
ISOLATED_ROUTE_FAILED502Desk فقط: أجاب عقد تاريخ Desk المخصص بخطأ.

403 HISTORY_LIMIT_EXCEEDED يحمل details.max_history_days و details.oldest_allowed. 429 يضبط أيضًا Retry-After و X-RateLimit-* رؤوس.

القيود هي دلو رموز لكل مستخدم مع نافذتين: لكل ثانية انفجار وكل دقيقة مستمر حد أقصى. تجاوز أي منهما يعيد 429 مع كود المطابقة و Retry-After من 1 ثانية.

Explorer هو طلب واحد في الثانية، بدون حد منفصل لكل دقيقة. إنها وتيرة، وليست سماحًا للانفجار: حلقة تعمل بأسرع ما يمكنها ستنفق معظم طلباتها على 429. قراءة X-RateLimit-Remaining، أو ببساطة انتظر ثانية بين الطلبات.

القيم المعلنة لـ rps/rpm هي حدود القبول العامة لـ REST، ليست معدلات تسليم الأرشيف. اللقطات التاريخية، الدُفعات التي تحتوي على قراءات التاريخ، والمسارات الثقيلة الأخرى تستخدم ضوابط تزامن وتسليم منفصلة على مستوى الحساب. هذه الضوابط تطبق بشكل مستقل عن دلو الرموز العام ولا تغير نافذة التاريخ للخطة.

Explorer وQuant وResearch تقبل حاليًا طلبًا تاريخيًا واحدًا في الطيران لكل حساب. Desk يقبل 6 طلبات لقطات تاريخية متوازية لكل حساب عبر تجمع استعلام Desk المخصص. التداخل يعيد 429 HISTORY_CONCURRENCY_LIMIT مع Retry-After: 2; أعد المحاولة فقط بعد اكتمال طلب نشط. لا يجب استخدام قيم rps/rpm العامة لاستنتاج التوازي التاريخي.

يمكن أيضًا رفض القراءة التاريخية عندما يكون حسابك لا يزال ضمن حدوده المسموح بها، لأن مجمع استعلام الأرشيف المشترك مشبع. هذه الحالة تعيد 429 HISTORY_POOL_BUSY مع details.scope = "shared_pool" بدلاً من "account". التفرع على details.scope: على account، خفّض التوازي الخاص بك؛ على shared_pool، خفض التوازي لن يساعد — أعد المحاولة مع التراجع.

/v3/bars له سقف تزامن خاص به، مستقل عن كلا الضوابط أعلاه. بعده يُرفض الطلب فورًا مع 503 BARS_BUSY و details.retry_after بالثواني، بدلاً من الانتظار في الطابور — رفض سريع يمكنك إعادة المحاولة فيه أكثر فائدة من نجاح بطيء لا يمكنك التخطيط له. اعتبره تمامًا مثل 429: تراجع وحاول نفس الطلب مرة أخرى. الأشرطة تحمل أيضاً حدين ليسا حدود معدل — حجم الدُفعة (402 SYMBOL_LIMIT_EXCEEDED) ونطاق الطلب لكل مرة (400 WINDOW_TOO_WIDE) — كلاهما يُصلح بتقسيم الطلب، وليس بالانتظار.

رأس الصفحةالمعنى
X-RateLimit-Limitحد الانفجار لكل ثانية (rps).
X-RateLimit-Remainingرموز الانفجار المتبقية هذا الثانية.
Retry-Afterثوانٍ للانتظار (مضبوطة على 429).
X-Request-Idصدى meta.request_id.

شاهد الخطط والوصول لـ rps/rpm لكل مستوى.

نمط الاستعلام التاريخي

لا تحتفظ بأكثر من تزامن التاريخ المؤكد لديك نشطًا. استخدم محدود start_time وend_time، ترقيم المؤشر، و limit=1000; تجاهل include_count وطلب السلم الكامل فقط عند الحاجة. أضف interval عندما تكون سلسلة منخفضة العينة كافية. DepthFeed هو منتج وصول استعلام مقنن: الملفات الضخمة، تسليم الأرشيف غير المتصل، تكرار قاعدة البيانات، والنسخ المنهجي للأرشيف غير مشمولة.

تستخدم نقاط النهاية للقائمة رموزًا غير شفافة مؤشرات مجموعة المفاتيح — O(1) عند أي عمق. تخطى ?cursor= من صفحة سابقة pagination.next_cursor; توقف عندما has_more هو false.

json
"pagination": {
  "next_cursor": "6274…",   // opaque; feed back as ?cursor=
  "has_more": true,
  "limit": 50,
  "count": 50,
  "total_count": 1284        // only when ?include_count=true
}

معلمات الاستعلام الشائعة

معاملالنوعملاحظات
limitعدد صحيححد أقصى للأسواق 100، لقطات/تداولات حد أقصى 1000. الافتراضات: 50 / 100.
cursorسلسلةمؤشر مجموعة مفاتيح غير شفاف من الصفحة السابقة.
include_countمنطقييضيف total_count (يكلف COUNT — اختياري).
start_timetsms-epoch أو ISO-8601. أقدم من نافذتك → 403.
end_timetsms-epoch أو ISO-8601.
منtsاسم مستعار لـ start_time, مقبولة في كل مسار.
إلىtsاسم مستعار لـ end_time, مقبولة في كل مسار.
intervalالمدةلقطات فقط. تقليل العينة إلى كتاب واحد لكل دلو (الأحدث في كل دلو): 30ث، 1د، 5د، 1س … حتى 1ي. احذف لا للدقة الكاملة.
fillتعدادلقطات فقط، ويتطلب interval. ffill يعيد صفًا واحدًا لكل دلو، يحمل آخر كتاب إلى الدلاء التي لم تحتوي على التقاط. معطل افتراضيًا.

من/إلى و start_time/end_time هي نفس النافذة. كلا التهجئين يعملان في كل مكان؛ إذا حمل الطلب كلاهما بطريقة ما، start_time/end_time فوز.

الطوابع الزمنية تقبل إما مللي ثانية منذ الحقبة (مثلاً 1780774485780) أو ISO-8601 (مثلاً 2026-06-07T02:27:09Z). يتم التحقق من صحة كل قيمة تصل إلى قاعدة البيانات وضمان أمانها من الحقن. يتم تطبيق نافذة تاريخ الخطة على كل نقطة نهاية للقائمة/اللقطة: وجود start_time ما بعد عوائد النافذة 403; يتم تثبيت القيمة المحذوفة عند أرضية النافذة.

تقليل العينة مع interval

افتراضيًا، تعيد نقاط نهاية اللقطة كل تغيير كتاب مسجل — حل كامل مدفوع بالأحداث. عندما تحتاج فقط إلى عينة دورية (مثلاً كتاب واحد في الدقيقة للرسم البياني أو اختبار عكسي خشن)، أضف ?interval= ويقوم الخادم بضغط كل دلو زمني إلى لقطة واحدة: ال أحدث كتاب في تلك الدلو. إنها بيانات أقل بكثير عبر الشبكة من جلب كل نقرة وترشيحها على جانب العميل.

شل
# one snapshot per minute instead of the raw stored series
curl "https://api.depthfeed.com/v3/btc/markets/{id}/snapshots?interval=1m&include_orderbook=true" \
  -H "Authorization: Bearer df_your_key"

يقبل مدة: رقمًا خامًا بالثواني، أو قيمة بوحدة — 30s, 1m, 5m, 15m, 1h, 4h, 1d — من 1s إلى 1d. الدلاء متزامنة مع الحقبة، لذا 1m تلتقط لحدود دقيقة الساعة الحقيقية. ترقيم الصفحات باستخدام المؤشر و include_count تطبيق على الصفوف المخفضة (total_count يصبح عدد الدلاء). احذفه، مرر raw، أو مرر 0 للدقة الكاملة. قيمة غير معروفة تعيد 400 INVALID_INTERVAL. يعمل على كل نقطة نهاية Snapshot — Polymarket، Kalshi، Limitless، PredictFun، Binance، والرياضة.

العينة الزمنية تختار؛ لا تستوفي. يظهر الدلو في الاستجابة فقط إذا تم التقاط كتاب بداخله. ساعتان عند ?interval=1m تمتد عبر حدود دقيقة 121 لكنها تعيد فقط الدقائق التي احتوت على التقاط — عادة عشر إلى ثلاثين في سوق غير نشط في التسعير. هذا هو السجل الكامل للنافذة، وليس صفحة مقطوعة.

سد الفجوات باستخدام fill=ffill

يحتفظ دفتر الأوامر بحالته حتى يتغير شيء ما، لذا الدقيقة التي لا يوجد فيها التقاط ليست بيانات مفقودة — كان دفتر الدقيقة السابقة لا يزال هو الدفتر. ?fill=ffill يقول ذلك صراحة: صف واحد لكل دلو للنافذة الكاملة، مع حمل آخر كتاب تم التقاطه إلى الدلاء التي لم تحتوي على التقاط. هذا ما تريده عندما يجب أن تتماشى السلسلة مع ساعة ثابتة، شريط سعر، أو مكان آخر.

شل
# a dense 1-minute grid: 121 rows for a 2-hour window, gaps and all
curl "https://api.depthfeed.com/v3/btc/markets/{id}/snapshots?interval=1m&fill=ffill&from=1788202800000&to=1788210000000" \
  -H "Authorization: Bearer df_your_key"

fill يتطلب interval; بحد ذاته يعيد 400 INVALID_PARAMETER. القيم المقبولة هي ffill (أيضًا previous, prev, true, 1) و none (أيضًا false, 0، الافتراضي). يتم دعمه على نفس المسارات مثل interval. القائمة، النقرة، الشمعة، و orderbook/latest الطرق لا تحتوي على شبكة للملء وتتجاهل المعامل بدلاً من رفضه، لذا عميل يرسله في كل مكان لا يزال يحصل على 200 منهم.

يتغير توقيت الصف الخاص عندما تقوم بالتبديل fill تشغيل. مع interval الصف وحده هو التقاط حقيقي، لذا id و time/timestamp هي اللحظة التي تم تسجيلها — 04:37:59.926 لدلو 04:37. مع fill=ffill كل صف يمثل دلوًا، بما في ذلك تلك التي تم التقاطها، لذا تصبح تلك الحقول حدود الدلو (04:37:00.000) وينتقل وقت الالتقاط إلى as_of_ts. لا يُفقد شيء في كلا الاتجاهين، لكن الرسم البياني المرسوم من كلاهما سيكون متزاحمًا حتى فترة واحدة ما لم تقرأ نفس الحقل في كلاهما. إذا كنت بحاجة إلى الشبكة ولحظة الالتقاط معًا، اطلب fill=ffill وقرأ as_of_ts.

قراءة صف منفذ

تضيف الاستجابات المنفذة ثلاثة حقول، ولا تحتوي عليها إلا الاستجابات المنفذة. طلب بدون fill يعيد الشكل الذي كان عليه دائمًا.

حقلالمعنى
filled0 عندما يكون الصف دفترًا ملتقطًا، 1 عندما تم ترحيله.
as_of_tsمتى تم تسجيل الكتاب في هذا الصف فعليًا. في صف محمول هذا أقدم من الدلو، والمسافة بينهما هي بالضبط مدى قدم الكتاب. null عندما لم يكن هناك دفتر سابق للترحيل.
as_of_ts_msنفس اللحظة كـ ms-epoch.

طابع دلو الزمن و as_of_ts هي قريبة ولكن ليست متساوية حتى في الالتقاط، لأن الالتقاط وقع في مكان ما داخل الدلو بدلاً من على حدوده: 2026-09-02T00:50:00.000Z مع as_of_ts من 2026-09-02T00:50:44.437Z هو دقيقة حقيقية احتوت على كتاب حقيقي.

عادةً ما يكون الصف الأول من نافذة مملوءة محمولًا. يتم تهيئة الشبكة بأحدث كتاب مسجل قبل تم فتح النافذة، لذا تبدأ السلسلة من حالة حقيقية بدلاً من حالة فارغة. خاصتها as_of_ts يمكن أن تكون أقدم بساعات من الدلو الأول، وهذا هو الجواب الصادق.

عندما تفتح النافذة قبل أن يفتح السوق، لا يوجد كتاب سابق للحمل. تلك الدلاء الرائدة تعود بسلم فارغ و as_of_ts: null — مولدة، بدون محتوى لوضعه فيها. الحد start_time إلى بداية السوق الخاصة لتخطيها.

ال resolution كتلة

كل استجابة استخدمت ?interval= يحمل resolution حظر، حتى تتمكن من التمييز بين سجل الالتقاط المتفرق وصفحة مقطوعة بدون طلب ثانٍ.

json
"resolution": {
  "interval_secs": 60,
  "buckets_in_range": 121,   // minute boundaries the window spans
  "buckets_filled": 29,      // minutes that held a CAPTURE
  "rows_returned": 121,      // rows on this page
  "fill": "ffill",           // absent when fill is off
  "complete": true           // false while a next_cursor is outstanding
}

buckets_filled يحسب الالتقاطات، وليس الصفوف، لذا يعني نفس الشيء مع fill تشغيل كما هو مع إيقافه. هو الرقم للمقارنة معه buckets_in_range عند الحكم على مدى جودة تسعير السوق. مع fill إيقاف, rows_returned و buckets_filled موافق. مع تفعيله، الفجوة بينهما هي مقدار الشبكة التي تم حملها. إذا buckets_filled هو أقل بكثير من buckets_in_range, اطلب فترة زمنية أكثر خشونة، أو تجاهل interval وقرأ كل التقاط.

أربع خطط ثابتة. ال plan الحقل الذي يعيده /v3/whoami هو القيمة الخام في العمود الأيمن.

الخطةplanالسعرمعدل rps عاممعدل rpm عامالتوازي التاريخيتاريخ موحدWallet Intelligenceالعملات المشفرةREST للرياضةدفاتر أوامر الأسواق الرياضية المباشرة
Explorerfree$01—17 أيام1 محفوظ · 3 تدقيقاتجميع الأصول + الأماكنجميع أماكن الرياضةREST فقط
Quant ★pro$29/شهر251,000130 يومًا5 محفوظ · 10 تدقيقاتجميع الأصول + الأماكنجميع أماكن الرياضة1
Researchscale$99/شهر503,000190 يومًا10 محفوظ · 25 تدقيقاتجميع الأصول + الأماكنجميع أماكن الرياضة2
Deskمؤسسة$249/شهر1006,0006 متوازٍالأرشيف الكامل20 محفوظ · 50 تدقيقاتالكل؛ تجمع استعلام تاريخي مخصص لـ Deskجميع أماكن الرياضة3

لا توجد إضافات لـ Polymarket أو Kalshi. يستخدم كلا المكانين الرياضيين نفس المفتاح، المخطط، حد المعدل، ونافذة التاريخ؛ الترقية تشتري المزيد من التاريخ، الإنتاجية، وتزامن الكتاب الحي.

ما يصل إليه Explorer

Explorer هو مفتاح حقيقي على بيانات حقيقية، ليس صندوق رمل: كل العملات السبع، كل المنصات، سبعة أيام من التاريخ، كامل سطح REST الرياضي، أشرطة الأسعار، والمرشح. المنصة ليست شيئًا تشتريه الخطة. ما تشتريه الترقية هو نافذة التاريخ، الإنتاجية، اشتراكات التدفق، وبيانات التيك. كل مفتاح يعيد السلم الكامل؛ الكتاب الوحيد المقتصر على API هو العرض التجريبي بدون مفتاح، بثمانية مستويات لكل جانب.

عائلة المسارات التي لا يمكن لـ Explorer الوصول إليها هي النقاط، وهي خاصة بمكتب Desk فقط على كل مكان وتُرجع 402 TICKS_NOT_IN_PLAN أدناه ذلك. سطح العرض التجريبي المجهول — بدون مفتاح على الإطلاق — محدود بشكل منفصل على عينة BTC، وهو الشيء الوحيد الذي يجيب 402 COIN_NOT_IN_PLAN.

تصف أعمدة rps/rpm العامة قبول الطلبات، وليس عمليات المسح الأرشيفي المتزامنة. التوازي في الاستعلام التاريخي وضوابط التسليم منفصلة. تستخدم قراءات Desk التاريخية تجمع استعلام مخصص خاص بـ Desk معزول عن حركة مرور استعلامات الخطط العادية، دون إزالة ضوابط على مستوى الحساب. التجمع مشترك عبر حسابات Desk وليس بنية تحتية مملوكة للعميل أو حصرية للحساب.

يتم فرض الحجز على الخادم:

  • الأسواق — كل خطة، بما في ذلك Explorer، تصل إلى كل عملة، وكل منصة، وسجل الأوامر الكامل؛ ما يحدد المستويات هو معدل النقل، والتاريخ، والنبضات، وليس الوصول.
  • التاريخ — نافذة خارج خطتك → 403 HISTORY_LIMIT_EXCEEDED; الترقية توسع النافذة، وليس قائمة السوق أبدًا.
  • الرياضة — ال /v3/sports/* سطح REST مشمول في كل خطة؛ نفس نافذة التاريخ تنطبق على كلا المنصتين.
  • التاريخ — start_time ما بعد نافذتك → 403 HISTORY_LIMIT_EXCEEDED.
  • أشرطة الأسعار — /v3/bars يتبع نفس نافذة التاريخ كالعمق، ويحد أيضًا الرموز لكل طلب (3 / 8 / 16 / 32)، والتي يعيد فوقها 402 SYMBOL_LIMIT_EXCEEDED.
  • البث — تطبق الحدود عند وقت الاشتراك على /v3/stream; كل خطة تبث كل مكان تجاري — Explorer مقيد باشتراك واحد متزامن، الطبقات المدفوعة تزيد العدد.
GET/v3/healthبدون مصادقة

اختبار الحياة، بدون مصادقة. يعيد { status: "ok", service, time }.

GET/v3/whoami

خطةك، حدود المعدل، نافذة التاريخ الموحدة، وصول العملات، والوصول الرياضي — أسرع طريقة لتأكيد عمل المفتاح.

أسواق Polymarket صعود/هبوط لكل عملة، مرتبطة بمرجع التسوية (سعر الفتح/الإغلاق، الفائز، الحجم). {coin} هو واحد من btc · eth · sol · xrp · doge · bnb · hype.

GET/v3/{coin}/markets

مرشحات: type (5 دقائق/15 دقيقة/1 ساعة/4 ساعات/24 ساعة)، resolved (صحيح/خطأ)، بالإضافة إلى معلمات الوقت + الترقيم الشائعة.

GET/v3/{coin}/markets/{market_id}
GET/v3/{coin}/markets/by-slug/{slug}

سوق واحد حسب المعرف أو الاسم المستعار. مثال على الاستجابة (مفاتيح أسعار العملات الفردية ديناميكية، مثل المرجع):

json
{ "data": {
  "market_id": "2456720", "event_id": "566750",
  "slug": "btc-updown-5m-1780860300", "market_type": "5m",
  "start_time": "…", "end_time": "2026-06-07T19:30:00Z",
  "condition_id": "0xb7ce…",
  "clob_token_up": "15598…", "clob_token_down": "51823…",
  "btc_price_start": null, "btc_price_end": null,
  "winner": null, "final_volume": null, "final_liquidity": null, "resolved_at": null
}, "meta": { … } }
حقول التسوية — *_price_*, winner, resolved_at, final_volume, و final_liquidity — هي null حتى يستقر السوق ويكتمل المرجع الخلفي (~12–24 ساعة بعد التسوية).
GET/v3/polymarket/markets

ال كامل منصة Polymarket، ليست فقط أسواق الصعود/الهبوط للعملات المشفرة. المسارات أعلاه تعالج الأسواق حسب العملة، لذلك يمكنها الوصول فقط إلى الأسواق التي لديها واحدة — الانتخابات، الجغرافيا السياسية، الأسهم والفوركس لا تملك عملة ولا عنوان URL هناك. هذه تسرد كل شيء.

مرشحات: ?q= (بحث بالرمز)، ?type=event لكل ما ليس سلمًا تصاعديًا/تنازليًا، بالإضافة إلى ?coin=, ?event= و ?outcome=. الأسواق هنا مفهرسة بواسطة CLOB asset_id (معرّف الرمز)؛ مرر ذلك إلى /v3/polymarket/{asset_id}/snapshots لتاريخ العمق أو /v3/polymarket/{asset_id}/ticks للشريط. الأسواق غير المشفرة تحمل base_asset — ليس لديهم عملة، ونحن لا نخترع واحدة.

كل صف يحمل category و tags. السلالم الصاعدة/الهابطة هي crypto; كل سوق آخر يأخذ فئته من علامات الأحداث الخاصة بالمكان التجاري، بنفس التهجئة مثل Polymarket US (رياضة, crypto, politics, geopolitics, finance, macro, technology, science, climate, culture), مع علامات الوسم الخام في tags و null حيث لا يحتوي المكان على تسمية. فلتر باستخدام ?category=politics,macro أو ?exclude_category=sports,crypto: مفصول بفواصل، غير حساس لحالة الأحرف، قابل للجمع؛ الاستبعاد يحتفظ بالأسواق غير الموسومة. ?closed=true|false هو علم التداول الخاص بالمكان (يُغلق السلم بمجرد أن end_time مرّ). للمرآة, ?updated_since= (ISO-8601، تاريخ أو مللي ثانية منذ العصر) يعيد فقط الصفوف التي تغير محتواها أو تسميتها أو حالتها المغلقة منذ ذلك الوقت؛ كل صف updated_at هو ذلك الطابع. resolved ليس فلترًا على هذا المسار ويتم الإبلاغ عنه تحت meta.ignored_params.

GET/v3/polymarket/{asset_id}/snapshots

تاريخ لقطات دفتر الطلبات لأي سوق Polymarket — الرياضة، السياسة، الأخبار والعملات المشفرة على حد سواء — محدود بنافذة تاريخ خطتك. نفس الشكل والتقسيم مثل مسارات اللقطات لكل عملة.

GET/v3/polymarket/{asset_id}/ticksمؤسسة

شريط المكان لنفسه asset_id مفاتيح.

سلسلة زمنية لعمق دفتر الأوامر لسوق، مع ختم سعر العملة الأساسية على كل لقطة.

GET/v3/{coin}/markets/{market_id}/snapshots

إضافة ?include_orderbook=true للحصول على السلم الكامل (محذوف افتراضيًا لحجم حمولة أخف). نافذة زمنية + ترقيم صفحات باستخدام المؤشر. أضف ?interval=1m (أو 5m, 1h، ...) لتقليل العينات إلى كتاب واحد لكل دلو بدلاً من السلسلة المخزنة الخام — انظر التقسيم والمرشحات. استجابة القائمة هي مصفوفة مع pagination كتلة:

json
{ "data": [{
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "market_id": "2456720", "btc_price": 60606.68,
  "price_up": 0.505, "price_down": 0.495,
  "orderbook_up":   { "bids": [[0.50, 304.25], …], "asks": [[0.51, 30.0], …] },
  "orderbook_down": { "bids": [ … ],               "asks": [[0.50, 304.25], …] }
}], "pagination": { … }, "meta": { … } }
GET/v3/{coin}/markets/{market_id}/snapshots/at/{timestamp}

اللقطة الوحيدة الأقرب إلى طابع زمني (ضمن ±2 ث). {timestamp} هو ms-epoch أو ISO-8601. على عكس نقطة النهاية للقائمة, data هو كائن واحد (نفس شكل الصف) مع لا pagination كتلة; لا يوجد تطابق ضمن ±2 ثانية يعيد 404 SNAPSHOT_NOT_FOUND.

json
{ "data": {
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "market_id": "2456720", "btc_price": 60606.68,
  "price_up": 0.505, "price_down": 0.495,
  "orderbook_up":   { "bids": [[0.50, 304.25], …], "asks": [[0.51, 30.0], …] },
  "orderbook_down": { "bids": [ … ],               "asks": [[0.50, 304.25], …] }
}, "meta": { … } }

المستويات هي [price, size]. price_up هو منتصف أفضل عرض/طلب; price_down = 1 − price_up. ال orderbook_down الجانب مشتق كمتمم ثنائي لكتاب الصعود (down = 1 − up، مع الحفاظ على الأحجام). سعر العملة هو أقرب علامة سابقة عبر انضمام ASOF — دقيق لـ 1س/4س/24س، ووكيل موسوم من Binance لـ 5د/15د.

كل صف هو كتاب كامل حسب طابع الوقت الخاص به، ليست دلتا مقابل الصف السابق، لذلك لا تحتاج أبدًا لإعادة بناء الحالة من التغييرات. لتدفق التغيير نفسه، استخدم النقاط.

مسارات لقطات الأماكن الأخرى

نفس العقد — النافذة، المؤشر, interval, fill، نافذة تاريخ الخطة — يتم تقديمها عبر مسار واحد لكل منصة. تختلف في المعرف الذي تأخذه وفي كيفية عرض جانبي السوق الثنائي، لأن المنصات نفسها تفعل ذلك.

المسارالمعرفشكل الدفتر
/v3/{coin}/markets/{market_id}/snapshotsرقمي market_id من /v3/{coin}/marketsعرض الحدث لكل عملة: price_up/price_down فقط، ما لم تضف include_orderbook=true
/v3/polymarket/{asset_id}/snapshotsمعرف الرمز — clob_token_up/clob_token_down، أو asset_id من /v3/polymarket/marketsدفتر طلبات رمز واحد: bids و asks مصفوفات، مدرجة دائماً
/v3/kalshi/{ticker}/snapshotsticker من /v3/kalshi/marketsyes و لا السلالم
/v3/limitless/{slug}/snapshotsslug من /v3/limitless/marketsbids, asks, و midpoint
/v3/predictfun/{id}/snapshotsmarket_id من /v3/predictfun/marketsمتداخل up و down كائنات، كل منها مع bids/asks
/v3/{coin}/{venue}/snapshotsvenue هو spot أو futures — ليست اسم بورصة20-مستوى كتاب أساسي: bids, asks, price

يصل مسار Polymarket إلى كامل المنصة، وليس فقط سلالم التشفير — الانتخابات، الرياضة، وكل ما تسرده Polymarket. المسار لكل عملة هو عرض التشفير صعودًا/هبوطًا مع السعر الأساسي المرفق.

الشريط الخام: كل تغيير فردي في سجل الأوامر، ليست سلسلة لقطات مأخوذة عينات. حيث اللقطات تعطيك الكتاب في نقاط زمنية، والنبضات تعطيك كل تغيير بينها — ما يحتاجه سير عمل صنع السوق أو بحث التنفيذ للسؤال أين كان الكتاب قبل تنفيذ أمر، أو كم بقي مستوى قبل أن يؤخذ.

للمؤسسات فقط. الخطط الأخرى تتلقى 402 TICKS_NOT_IN_PLAN.

GET/v3/{coin}/markets/{market_id}/ticksمؤسسة

Polymarket، مصدر من تدفق دلتا CLOB. يتم إرجاع رموز النتيجة كلاهما افتراضياً وموسومة outcome; تضييق مع ?outcome=up أو ?outcome=down.

التاريخ: الشريط مستمر من 2026-06-25 (تم التحقق 2026-09-02) ويستمر في التراكم، لذا تنمو النافذة الموثوقة يومًا بعد يوم. الأيام التي قبل ذلك موجودة في الأرشيف لكنها ليست متصلة — 61 منها مفقودة بين 2026-04-14 والفترة المستمرة — لذا يجب ألا يبدأ اختبار العودة الذي يحتاج إلى سلسلة متصلة قبل 2026-06-25.

التغطية: أسواق الصعود/الهبوط على 5m, 15m و 24h نوافذ، عبر جميع الأصول السبعة. ال 1h و 4h عائلات الصعود/الهبوط هي ليس حالياً في شريط السجل — استخدم اللقطات لهؤلاء.

json
{ "data": [{
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "received_ms": "1780774485812", "outcome": "up",
  "token_id": "7194…", "side": "BUY", "price": 0.505, "size": 1240.0
}], "pagination": { … }, "meta": { … } }
GET/v3/kalshi/{ticker}/ticksمؤسسة

جديد — بدأ التقاط إشارات Kalshi في 2026-08-07. لا يوجد تاريخ شريط Kalshi قبل ذلك التاريخ؛ يتراكم الشريط للأمام منه. Kalshi اللقطات تبقى متاحة على كامل نافذة التاريخ.

التغطية هي مجموعة متجددة، وليست كل سوق Kalshi: الأصول المشفرة السبعة، مرتبة حسب أقرب انتهاء، مع عدد محدود من الأسواق المسجلة في نفس الوقت. اتصل بنا إذا كنت بحاجة إلى تغطية سلسلة محددة.

مأخوذ من المصادق عليه orderbook_delta WebSocket. kind هو snapshot للصفوف التي تثبت كتابًا (لذا أي نافذة تطلبها تبدأ من حالة كاملة) أو delta لتغيير. delta هو التغير الموقّع في الحجم و size هو الحجم الراكد عند ذلك السعر بعد ذلك. seq هو رقم تسلسل Kalshi الخاص بجلسة الالتقاط — يزيد بواحد بالضبط عبر الجلسة، لذا يمكنك التحقق من اكتمال جزء من الشريط بدلاً من الاعتماد على كلامنا. سلسلة من snapshot الصفوف تشير إلى جلسة جديدة، حيث يعيد التشغيل. ضيق إلى جانب واحد مع ?side=yes أو ?side=no.

إعادة بناء دفتر: اعتبر كل snapshot تشغيل كإعادة ضبط صلبة لكتاب ذلك السوق، ثم تطبيق delta صفوف في seq ترتيب داخل الجلسة. رتب حسب seq، ليس بواسطة time: الطوابع الزمنية الخاصة بالمكان التجاري ليست رتيبة عبر المستويات داخل جزء من الثانية، بينما seq هو. أي seq خطوة غير +1 داخل جلسة هي فجوة في الشريط لذلك الجزء؛ يعيد الالتقاط الاتصال ويأخذ لقطات جديدة تلقائيًا عند اكتشافها، لذا التالي snapshot الجولة هي النقطة التي يصبح فيها الكتاب مكتملًا مرة أخرى.

json
{ "data": [{
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "received_ms": "1780774485791", "seq": "418823",
  "kind": "delta", "side": "yes", "price": 0.62, "delta": -85.0, "size": 240.0
}], "pagination": { … }, "meta": { … } }

الصفحات تستوعب حتى 10000 صفوف (افتراضي 1000) ويتم ترقيم المؤشرات مثل كل نقطة نهاية قائمة أخرى. العديد من العلامات تشترك عادةً في نفس المللي ثانية، لذا تحمل المؤشرات موقعًا ضمن طابع زمني — ترقيم سوق مزدحم لا يقسم أو يسقط الصفوف التي تشترك في لحظة حد.start_time/end_time وتنطبق نافذة التاريخ في خطتك كالمعتاد.

دفتر الأوامر وأشرطة التداول للأصل الأساسي من Binance. {venue} هو spot أو futures. الكتاب يحتوي على 20 مستويات لكل جانب.

GET/v3/{coin}/{venue}/latest
GET/v3/{coin}/{venue}/snapshots

أحدث دفتر / تاريخ دفتر صفحات. كل لقطة: price (منتصف السعر)، bids, asks, timestamp.

GET/v3/{coin}/{venue}/trades
GET/v3/{coin}/{venue}/trades/latest

1 ثانية شموع OHLCV مع تقسيم شراء/بيع عدواني — دقيق، 1:1 مع المرجع:

json
{ "data": [{
  "id": "1780747762000", "timestamp": "2026-06-06 12:09:22.000",
  "price_open": 61097.1, "price_high": 61097.1,
  "price_low": 61097.09, "price_close": 61097.1,
  "total_volume": 0.01667,
  "aggressive_buy_volume": 0.0156, "aggressive_sell_volume": 0.00107,
  "num_trades": 3
}], "pagination": { … }, "meta": { … } }
Binance لا تقدم العقود الآجلة aggTrade عبر websocket إلى منطقتنا (تدفقات العمق جيدة)، لذا يتم استقصاء شريط تداول العقود الآجلة 1 من نقطة نهاية REST aggTrades وتجميعها إلى نفس 1 OHLCV كالسبوت. تداولات السبوت والعقود الآجلة، وكل الكتب، حية.

أشرطة أسعار OHLCV للأسهم وصناديق الاستثمار المتداولة المدرجة في الولايات المتحدة، أزواج Binance الفورية، والعقود الآجلة الدائمة. الدقيقة هي أدق دقة؛ الإطارات الأوسع تُجمع منها.

GET/v3/bars

symbols هو قائمة مفصولة بفواصل. timeframe هو واحد من 1Min, 5Min, 15Min, 1Hour أو 1Day (افتراضي 1Min). start_time, end_time, limit و cursor يتصرف تماماً كما يفعل في كل مجموعة أخرى هنا.

id هو طابع زمني، وليس مفتاحًا فريدًا. يصل تغذية العمق كل 100 مللي ثانية وتختم البورصة أحيانًا كتابين مختلفين بنفس المللي ثانية، لذا يمكن لصفحة أن تحتوي شرعيًا على صفين مع واحد id وسلمين مختلفين. يعالج الترقيم التعادل — المؤشر هو مجموعة مفاتيح، لذا لا يتم تقسيم مللي ثانية مشتركة عبر حد صفحة — لكن العميل الذي يحدد الصفوف بواسطة id الصف وحده سيسقط أحد الاثنين بصمت. المفتاح على الصف، أو على (id, sequence within the page).

venue اختياري ويختار السوق مباشرة: us-equities, binance (فوري) أو binance-futures (العقود الدائمة). اتركه مغلقًا وسيتم حل رمز بسيط لك — الأسهم أولاً، ثم Binance الفوري. سمّه وستحصل على ذلك السوق أو لا شيء، وهذا ما تريده عندما يمكن أن يكون السلسلة أداتين.

limit هو أشرطة لكل رمز. الطلب بدون واحد لا يتم ترقيم صفحاته على الإطلاق، لأن سحب الأشرطة الطبيعية هو نافذة كاملة وحجم الصفحة الافتراضي سيرجع بهدوء سلسلة قصيرة — وهو ما لا يمكن تمييزه عن فجوة في البيانات. عندما تقوم بالترقيم، يتم قطع كل سلسلة في نفس اللحظة و pagination.next_cursor يستأنف بالضبط هناك: لا تداخل، لا فجوة.

باش
curl -H "X-API-Key: $DEPTHFEED_KEY" \
  "https://api.depthfeed.com/v3/bars?symbols=AAPL,BTCUSDT&timeframe=1Hour&start_time=2026-08-01T00:00:00Z"
json
{ "data": {
  "timeframe": "1Hour",
  "license_class": "source_attributed_public_serving",
  "attribution": "Market data via QuarterTrace. Source-attributed; not a consolidated (SIP) feed.",
  "series": [{
    "symbol": "AAPL", "timeframe": "1Hour", "assetClass": "equity",
    "source": "yahoo_finance", "derived": true,
    "t": [1785974400000, 1785978000000],
    "open": [306.83, 307.04], "high": [307.9, 308.1],
    "low": [306.1, 306.55], "close": [307.04, 307.8],
    "volume": [1043200, 887400]
  }]
}, "meta": { … } }

كيفية تهجئة رمز

الأسهم وETFs هي رموزها العادية: AAPL, SPY, BRK-B. زوج العملات المشفرة يُكتب كما يكتبه المكان، لذا فهو BTCUSDT بدلاً من BTC. المستقبل الدائم يأخذ .P لاحقة — BTCUSDT.P, AAPLUSDT.P — لأن زوج السوق الفوري والعقد الدائم هما أداتان مختلفتان تتداولان بأسعار مختلفة، ومساحة الرموز المسطحة التي تختار واحدة لك بهدوء ستكون تختار السوق الذي تقيسه استراتيجيتك.

ثلاثة سلاسل هي كل من ETF أمريكي وقائمة Binance: BTCU, ETHU و WLDU. كل منها يحل إلى حقوق الملكية، قررنا ضد كون رمز التداول حسب نطاق التاريخ الخاص بك — لذلك لا يتغير الجواب عند تحريك النافذة. زوج العملات المشفرة لا يزال متاحًا تحت تهجئة منصته الخاصة.

إطارات مشتقة

يتم جمع الأسهم عند 1Min و 1Day; يتم جمع العملات المشفرة عند 1Min. أي شيء آخر يتم تجميعه عند القراءة، وتحدد السلسلة نوعها باستخدام derived. الشمعة المجمعة تأخذ افتتاح الشمعة الأولى وإغلاق الشمعة الأخيرة، وأقصى وأدنى القيم، ومجموع الحجم، عبر دلاء متزامنة مع UTC.

القيود

ثلاثة حدود منفصلة، وتفشل بثلاثة رموز مختلفة. نافذة التاريخ في خطتك تنطبق هنا كما في كل مكان آخر — بعدها, 403 HISTORY_LIMIT_EXCEEDED. الرموز لكل طلب هي 3 على Explorer، 8 على Quant، 16 على Research، 32 على Desk؛ فوق ذلك، 402 SYMBOL_LIMIT_EXCEEDED. ولا يمكن أن يمتد الطلب الواحد إلا للمدة التي يسمح بها عدد صفوف الإطار — 45 يومًا عند 1Min, 180 عند 5Min, سنة عند 15Min و 1Hour، عشر سنوات في 1Day — التي تعيد عليها 400 WINDOW_TOO_WIDE. ترقيم الصفحة باستخدام limit و cursor للتنقل عبر نطاق أوسع مما تحمله طلب واحد.

استجابة رابعة ليست حدًا بل لحظة: 503 BARS_BUSY يعني أن خدمة الشمعة وصلت إلى سقف التزامن الخاص بها الآن. وهي تحمل details.retry_after بالثواني، مثل رفض حد المعدل، وعادة ما ينجح الطلب نفسه في المحاولة التالية — اعتبره تراجعًا وأعد المحاولة، وليس انقطاعًا.

نافذة واحدة، معنى واحد. الأشرطة محدودة بنفس نافذة تاريخ الخطة مثل عمق دفتر الأوامر، مرفوضة بنفس الطريقة بعد انتهائها (403 HISTORY_LIMIT_EXCEEDED، مع oldest_allowed في التفاصيل). المصدر المفتوح منشئ الاستراتيجية يقرأ هذه النقطة النهائية بالضبط بمفتاحك الخاص، لذا فإن اختبار العودة هناك يعود بالضبط إلى مدى خطتك هنا.
هذه البيانات هي منسوبة للمصدر وليست تغذية موحدة (SIP), وليس مرتبطًا بأي بورصة، ولا NBBO أو تغذية إعادة توزيع مباشرة من البورصة. كل استجابة تحمل attribution سلسلة وكل سلسلة تسمي خاصتها source; يجب أن يسافر كلاهما مع البيانات إذا قمت بعرضها.

عقود Kalshi المشفرة — عمق نعم/لا كامل لا يحمله المرجع. 21 سلسلة لجميع 7 الأصول: 15 دقيقة KX{ASSET}15M، العتبة KX{ASSET}, واتجاهي KX{ASSET}D. السلسلة الحدية والاتجاهية تعمل كل منها في الأسواق الساعية واليومية والأسبوعية بالتزامن — market_type يحمل نافذة كل سوق الفعلية.

GET/v3/kalshi/markets

مرشحات: ?coin= (الأصل الأساسي)، ?type= (نافذة)، و ?series= (على سبيل المثال KXBTC15M). للتنزيلات التاريخية، مرر start_time و end_time هنا أولاً واستخدم رموز المكان الأصلية المعادة. لا تنشئ معرفات رموز Kalshi من الطوابع الزمنية UTC؛ تغيرت قاعدة توقيت رموز المكان تاريخيًا.

افتراضيًا، تقتصر القائمة على الأسواق التي تم التقاط دفتر أوامرها داخل نافذة خطتك، لذا كل صف يحتوي على بيانات قابلة للاسترجاع /snapshots. تمرير ?include_uncaptured=true لفهرس المكان بأكمله: كل سلسلة تسردها Kalshi، الرياضة، السياسة، الاقتصاد، الطقس والترفيه مشمولة. تلك الصفوف تحمل شموعًا، ليست كتبًا; depth_captured في كل صف يوضح النوع الذي تنظر إليه.

كل صف يحمل category، تسمية السلسلة الخاصة بالمنصة (Politics, الرياضة, العملات المشفرة, Climate and Weather، ...). قم بالتصفية باستخدام ?category=politics,elections أو ?exclude_category=sports,crypto; كلاهما يأخذ قوائم مفصولة بفواصل، ويقارن بشكل غير حساس لحالة الأحرف، ويمكن دمجهما. استخدم category لهذا، ليس base_asset: base_asset يُقرأ من بادئة السلسلة وله معنى فقط في صفوف التشفير.

GET/v3/kalshi/{ticker}/orderbook/latest

أحدث كتاب نعم/لا كامل لرمز. yes/لا هي [price, size] مصفوفات (الأسعار بالدولار 0–1).

json
{ "data": {
  "ticker": "KXHYPED-26JUN0717-T73.9999", "series": "KXHYPED",
  "base_asset": "hype", "market_type": "24h",
  "id": "1780…", "timestamp": "…",
  "yes": [[0.62, 1400], …], "no": [[0.38, 900], …]
}, "meta": { … } }
GET/v3/kalshi/{ticker}/snapshots

ال تاريخي سلسلة عمق نعم/لا لسوق مكتشف واحد بالضبط — نفس شكل الصف، مرتبة حسب وقت الاستلام، نافذة زمنية + ترقيم صفحات باستخدام المؤشر (include_count اختياري، الحد الأقصى 1000). تاريخ كتاب Kalshi الملتقط مقدمًا من حلقة استقصاء REST متدرجة. تختلف الوتيرة الفعالة مع مجموعة الأسواق النشطة وحدود API؛ يستخدم نفس نمط نقطة النهاية التاريخية مثل Polymarket و Limitless /snapshots، لذا فإن عمق Kalshi قابل للاختبار الرجعي أيضًا. تمرير سلسلة مثل KXBTC15M، أو رمز تاريخي مخترع، يعيد خطأ اكتشاف صريح بدلاً من صفحة فارغة مضللة.

GET/v3/kalshi/{ticker}/candles

ساعيًا OHLC من عرض سعر العرض، سعر الطلب والسعر المتداول، بالإضافة إلى volume و open_interest. هذا هو التاريخ الوحيد الموجود لمعظم كتالوج Kalshi: لا يقدم Kalshi سجل طلبات تاريخي، لذا السوق الذي أغلق قبل بدء التقاط كتابنا لا يحتوي على /snapshots ولا /ticks — لكنها تحتوي على شموع، تمتد حتى سنة كاملة.

مؤطر زمنياً ومصفح بمؤشر مثل /snapshots (الحد الأقصى 5000 صفوف)، مقيد بنافذة التاريخ في خطتك. ?interval= يختار فترة الشمعة؛ فقط 1h مسجل، وأي قيمة أخرى تعيد خطأ صريحًا يذكر الموجود بدلاً من صفحة فارغة. الشموع مخزنة كما تم تسجيلها ولا تُعاد عينتها أبدًا، لذا لا يتم توليد فترة أقصر من فترة أطول.

price هو null عندما لا يتم التداول في الفترة — حوالي 95% منها. جوانب العرض دائماً حقيقية، لذا ساعة هادئة لا تزال تخبرك بمكان وجود الدفتر. التغطية للأسواق طويلة الأمد (مفتوحة لأكثر من 24 ساعة)؛ سلالم العملات المشفرة قصيرة الأجل تُلتقط بدقة كاملة بواسطة /snapshots و /ticks بدلاً من ذلك، وطلب شموعهم يعيد 404 التي تقول ذلك.

json
{ "data": [{
  "ticker": "KXFEDDECISION-26JUL-H26", "series": "KXFEDDECISION",
  "market_type": "1w", "id": "1786168800000", "timestamp": "…",
  "period_minutes": 60,
  "yes_bid": { "open": 0.56, "high": 0.58, "low": 0.55, "close": 0.57 },
  "yes_ask": { "open": 0.64, "high": 0.65, "low": 0.62, "close": 0.63 },
  "price":   { "open": 0.60, "high": 0.61, "low": 0.59, "close": 0.61 },
  "volume": 240, "open_interest": 1180
}], "pagination": { … }, "meta": { … } }

تقارن جميع الأماكن الثلاثة مرة واحدة؟ ابدأ من مصفاة عبر المنصات بدلاً من ربط مكالمات كل مكان.

Polymarket US هو سوق عقود معين من CFTC ومنصة منفصلة عن Polymarket: الأسواق مرتبطة بـ slug، لا يوجد condition_id ولا asset_id, ولا شيء هنا يربط أسطح Polymarket أعلاه. الخطط المدفوعة فقط. هذه المنصة في اختبار مباشر: يتم تقديم الكتالوج والأسعار والصفقات عبر كل فئة، ولا يزال تغطية الكتاب تتوسع.

GET/v3/polymarket-us/markets

كتالوج المكان، كل فئة، أحدث إغلاق أولاً ومصفح بمؤشر. يحمل كل صف بيانات المكان الخاصة به category (رياضة, crypto, politics, climate, culture, macro, technology, finance, geopolitics, science). تصفية باستخدام ?category=politics,macro أو ?exclude_category=sports,crypto: مفصول بفواصل، غير حساس لحالة الأحرف، قابل للجمع. فلاتر أخرى: ?coin=, ?type= (15m, 1h, futures, …), ?series=, ?closed=, ?resolved=, start_time/end_time على وقت الإغلاق. للمرآة، ?updated_since= يعيد فقط الصفوف التي تغير محتواها منذ ذلك الوقت (قائمة، إغلاق، تغيير حالة)؛ كل صف updated_at هو ذلك الطابع. sports_market_type هو حقل مكان يملأه المكان أيضًا خارج الرياضة؛ ليس مميزًا رياضيًا, category هو.

GET/v3/polymarket-us/{slug}/orderbook/latest
GET/v3/polymarket-us/{slug}/snapshots

أحدث كتاب، وسلسلة الكتب الملتقطة، لرمز واحد. يتم تسجيل العمق على هذه المنصة من يوم بدء الالتقاط ويُحتفظ به لمدة 14 يومًا؛ السوق خارج هذه النافذة يعيد 404 هنا حتى عندما يوجد صف الفهرس الخاص به. التغطية لكل سوق: السلالم التصاعدية/التنازلية تُلتقط باستمرار، الفئات طويلة الأجل جزئيًا فقط.

GET/v3/polymarket-us/{slug}/prices
GET/v3/polymarket-us/{slug}/trades
GET/v3/polymarket-us/{slug}/settlement

أسعار دقيقة واحدة، شريط تنفيذ المنصة، وتسوية كل سوق على حدة. توجد الأسعار والصفقات لمعظم الأسواق المفهرسة في كل فئة؛ تظهر صفوف التسوية بمجرد أن تبلغ المنصة عن نتيجة.

بورصة Limitless — CLOB على Base تشغل أسواق تشفير متكررة صعودًا وهبوطًا عند 5م و 15م. يتم التقاط العمق مباشرة عبر websocket لسلم الطلب (حتى الكتب السريعة 5 دقائق مسجلة). {slug} يبدو مثل btc-up-or-down-15-min-1780798512077.

GET/v3/limitless/markets

الفتحات المفتوحة حاليًا. المرشحات: ?coin= و ?type= (5 دقائق/15 دقيقة).

GET/v3/limitless/{slug}/orderbook/latest

أحدث عمق L2 لرمز (العروض تنازلية، الطلبات تصاعدية):

json
{ "data": {
  "slug": "btc-up-or-down-15-min-1780798512077", "condition_id": "0x…",
  "base_asset": "btc", "market_type": "15m",
  "id": "1780798…", "timestamp": "2026-06-07 02:27:09.532", "midpoint": 0.5,
  "bids": [[0.45, 200.0], …], "asks": [[0.46, 120.0], …]
}, "meta": { … } }
GET/v3/limitless/{slug}/snapshots

ال تاريخي سلسلة العمق لرمز واحد — نفس شكل الصف، مرتبة حسب وقت الاستلام، مؤطرة زمنياً + موجهة بمؤشر. هذا هو تاريخ دفتر الأوامر الملتقط للأمام.

أسواق التنبؤ بالعملات المشفرة المدعومة من Predict.fun لمحفظة Binance، مُطَبَّعة في مساحة أسماء مخصصة لـ DepthFeed. يغطي الكتالوج الأولي أسواق ارتفاع/انخفاض BTC وETH وBNB.

GET/v3/binance-prediction/markets

تصفية باستخدام ?coin=btc, ?type=5m، أو ?status=resolved. تشمل النتائج معرفات السوق/الموضوع، الحالة وبيانات تعريف الرمز، القرار، النتيجة الفائزة، الحجم، السيولة، عدد المشاركين، السلسلة، وعقد التبادل.

GET/v3/binance-prediction/{market_id}/orderbook/latest
GET/v3/binance-prediction/{market_id}/snapshots

أحدث وعمق L2 كامل تاريخي. يبدأ لوحة دورة حياة BTC الموحدة 15 دقيقة 26 يونيو 2026; يبدأ التقاط مستقر لمدة دقيقة واحدة للأسواق الحية المتعقبة في 26 يوليو. لا يمكن إعادة بناء الكتب الراكدة السابقة من بيانات التسوية.

GET/v3/binance-prediction/{market_id}/timeseries?metric=chance
GET/v3/binance-prediction/{market_id}/timeseries?metric=price
GET/v3/binance-prediction/{market_id}/timeseries?metric=last_trade
GET/v3/binance-prediction/{market_id}/trades

يتم الاحتفاظ بعينات الاحتمالية والسعر المعروض وآخر تداول بشكل منفصل وتبدأ في 17 يوليو 2026. مسار التداولات محجوز بينما يتم إعادة بناء التنفيذات التاريخية من سجلات BNB Smart Chain ويعيد حالياً مجموعة بيانات تاريخية فارغة.

فهرس حتمي لمدة 5 دقائق و15 دقيقة، الدقة، الحجم، وتاريخ السيولة معاد تعبئته من 5 مايو 2026. المكافئ /v3/predictfun/* المسارات تبقى ألقابًا متوافقة. يستخدم العملاء مفتاح DepthFeed؛ لا حاجة لمفتاح Binance أو ربط المحفظة.

ابدأ هنا لأي شيء عبر المنصات. يجيب الفاحص على السؤال الأساسي — كيف يُسعر نفس سوق “صعود أو هبوط” على Polymarket وKalshi وLimitless الآن؟ — في طلب واحد، لذا لا تحتاج إلى ربط نقاط النهاية الثلاث لكل منصة (مع معرفاتها الثلاثة المختلفة) بنفسك. كل خطة ترى جميع المنصات الثلاث؛ نافذة تاريخ الخطة هي الاختلاف الوحيد عند متابعة خلية إلى تاريخها.

GET/v3/screener

الشبكة: خلية واحدة لكل أصل مع أحدث احتمال “صعود” لكل مكان، أفضل عرض/طلب، ومرجع التسوية. تقرير كتاب نائب/فارغ null بدلاً من 0.50 عديم المعنى.

json
{ "data": {
  "assets":  ["btc","eth","sol","xrp","doge","bnb","hype"],
  "windows": ["5m","15m","1h","4h","24h"],
  "cells": [{ "asset": "btc",
    "polymarket": { "up": 0.735, "down": 0.265, "best_bid": 0.73, "best_ask": 0.74, "price_to_beat": 62764.0 },
    "kalshi":     { "up": 0.71,  "down": 0.29,  … },
    "limitless":  { "up": 0.75,  "down": 0.25,  "slug": "btc-up-or-down-…", … } }],
  "paid": true
}, "meta": { … } }
GET/v3/screener/{asset}/{window}

التعمق في (الأصل، النافذة): كتاب L2 كامل على كل مكان جنبًا إلى جنب (books.polymarket / books.kalshi / books.limitless), بالإضافة إلى سلسلة السوق الفوري الأساسية والتسوية price_to_beat — المكالمة الوحيدة التي يحتاجها اختبار خلفي عبر المنصات أو شاشة التحكيم.

GET/v3/overviewبدون مصادقة

نظرة عامة على السلاسل الزمنية لكل أصل وعبر المنصات (مقاطع الأسعار لكل نافذة) — ما يغذي مخطط نظرة عامة لوحة التحكم. عام، لا حاجة لمفتاح; اختر مع ?asset=.

POST/v3/batch

تشغيل حتى 10 طلب GET /v3/ طلبات في رحلة ذهاب وإياب واحدة. كل طلب فرعي يُرسل بشكل مستقل ويحصل على حالته الخاصة.

شل
curl -X POST https://api.depthfeed.com/v3/batch \
  -H "Authorization: Bearer df_your_key" -H "Content-Type: application/json" \
  -d '{ "requests": [
    { "id": "a", "method": "GET", "path": "/v3/btc/markets?limit=1" },
    { "id": "b", "method": "GET", "path": "/v3/limitless/markets?type=5m&limit=1" },
    { "id": "c", "method": "GET", "path": "/v3/bars?symbols=BTCUSDT&timeframe=1Hour" }
  ] }'

عمق العقد وأشرطة أسعار الأصل الأساسي في رحلة ذهاب وإياب واحدة هو الاقتران الذي يوجد من أجله هذا — /v3/bars هو طلب فرعي مثل أي طلب آخر.

العوائد { data: [ { id, status, body }, … ] } مع خارجي 200. عبر 10 طلبات فرعية → 400 BATCH_TOO_LARGE; طلب غير GET أو غير/v3/ المسار يحصل على لكل مشترك 400 BATCH_INVALID_PATH.

تم التحديث في سبتمبر 19، 2026. انظر دليل التكامل الحالي للمعرفات، التصحيحات، الترقيم وفحوصات الاكتمال.

هويات التثبيت، المرشح والعقد

حقلالمعنى
game_slugمعرف اللعبة الخاص بالمنصة؛ ليس مفتاح ربط عبر المنصات.
cross_venue_keyنفس الحدث أو الموضوع المدعوم؛ ليست شروط دفع مكافئة.
contract_mapping.candidate_keyمجموعة موضوعات مدعومة تحتوي على تجهيز؛ قابلة للتغيير بعد التصحيحات وربما متعددة إلى متعددة.
contract_mapping.outcomes[].participant_keyالمشارك القانوني لرمز النتيجة، مستقل عن ترتيب المصفوفة.
cross_venue_market_keyمفتاح عقد مكافئ مؤكد؛ فارغ إلا إذا كانت الحالة متطابقة.
contract_mapping.outcomes[].cross_venue_outcome_keyمفتاح نتيجة مؤكد؛ فارغ بدون مراجعة تكافؤ العقد.

موجود kind, outcomes و tokens تبقى نصوصًا عادية أصلية خاصة بالمكان؛ النتائج والرموز تتطابق حسب الفهرس داخل صف واحد. fixture_participants تزود المشاركين الرسميين في الحدث بشكل مستقل عن نوع السوق. market_family و market_period تطبيع تسميات الأنواع المدعومة دون التأكيد على خطوط، جوانب أو قواعد متكافئة. تسميات نعم/لا العامة و فوق/تحت لا تُخصص لفريق. عقد Kalshi YES ذو رمز واحد يبقى رمزًا واحدًا؛ لا يُعتبر NO المكمل له تلقائيًا هو الخصم.

يتم تقييم مرشحي خط المال عبر الدوريات عندما يمكن تحديد النتائج الموسومة بالمشاركين والموعد. يستخدم الآن نصف وحدة الفارق المرتبط بالمصدر، والمقارنات الإجمالية وإجمالية الفريق مع sports-lines-v1، contract_spec وجانب كل نتيجة. تتجاوز الفترات الأصلية نصف/ربع الفترة التسميات العامة. يمكن للمقترحات الأصلية الصريحة للعدد التطبيع إلى حدود نصف وحدة عندما تتفق الضربة، المقياس والموضوع. تحتفظ ألعاب/مجموعات التنس، ألعاب/خرائط الرياضات الإلكترونية، الركنيات، الهبوطات، الأهداف الميدانية والأمتار الهجومية بمقاييس مميزة. يتم دمج إجماليات الخمس الأولى كجولات؛ تبقى نطاقات الشوط الفردي مميزة. الخطوط الصحيحة/الدفع والمقسمة، المقاييس المجهولة، العقود الآجلة والرهانات غير مدعومة؛ راجع عقد التعيين لمعاني الفارق الموقع. لا يحتوي سجل الملف الشخصي الحالي المعتمد على أزواج معادلة؛ لذلك المفاتيح المؤكدة فارغة. تدعم المفاتيح المرشحة تجميع الموضوع مع قرار تسوية مراجَع منفصل؛ لا تحل محل التكافؤ المؤكد. لا يوجد تاريخ لمطابقة أوسع مؤكدة.

المستوى الأعلى cross_venue_market_key و contract_mapping.cross_venue_market_key هي ألقاب متطابقة من خريطة واحدة. اقرأ الدليل المصدر الحالي مع GET /v3/sports/markets/{condition_id}/contract; الدليل الغائب هو null، والدليل المنتهي أو غير المتطابق مع المدخلات مميز صراحةً. GET /v3/sports/market-families يعيد جدول تحويل النوع القابل للقراءة آليًا.

الحالةالتفسير
matchedيشارك الطرف المقابل شروط تسوية مراجعة؛ استخدم المفاتيح المؤكدة.
unmatchedفرق معروف، نطاق غير مدعوم، أو طرف مقابل مفقود يمنع الانضمام.
needs_reviewالأدلة، الهوية أو توفر الخرائط غير كافٍ؛ لا تعاملها على أنها مكافئة.

تشمل المقارنات الفترة، الوقت الإضافي، التعادلات، التأجيل، الإلغاء، مصدر النتيجة، نهائية النتيجة، التخلي، الاستسلامات، تغييرات المكان والقواعد المادية الأخرى. لا يعد استخراج التشخيص دليلاً على التكافؤ: تتطلب الخرائط المؤكدة terms_verified: true, تجزئة دليل وأدلة مصدر جديدة.

بالنسبة لمباراة Rams ضد 49ers، هوية المشارك وحدها لا تحل اختلاف شروط التأجيل. يمكن أن تنتهي صلاحية الأدلة والتشخيصات؛ اقرأ رموز الأسباب الحالية والأدلة المصدرية بدلاً من ترميز حالة مثال ثابتة.

تشمل المفاتيح المرشحة هوية الحدث وقد تتغير أو تُمسح بعد تصحيحات الهوية أو الخط أو الفترة أو العائلة. أدرج أو حدّث بواسطة condition_id، استهلاك updated_since الفروق والاحتفاظ بالإصدارات السابقة للصفوف للانضمامات التاريخية. candidate_group يكشف عن عدد الأماكن الأصلية ومعرفات الشروط؛ لا يتم اختيار سوق موثوق به بين قوائم متعددة أصلية.

فارق الربع، الأنواع الإجمالية وإجمالي الفريق مصنفة صراحة. تستخدم المرشحات الثنائية المرتبطة بالمصدر sports-binary-v1 وقاعدة صريحة: لا تستنتج معنى من تسمية مثل nrfi. تنضم النتائج الخطية المدعومة حسب الجانب داخل المرشح؛ تنضم نتائج المال لاين حسب المشارك. انظر مرجع API الرياضة لمعلمات نقطة النهاية وحقول الاستجابة قبل دمج الانضمامات.

حبيبات الصفوف وفرز جودة البيانات

صف واحد هو سجل سوق في الكتالوج. بعض صفوف خط المال في Kalshi تجمع عقدي YES مستقلين؛ تكشف سجلات أخرى عن عقد واحد. يمكن لحدث أن ينتج نتائج خط مال منفصلة، فروق، إجماليات، إجماليات فرق، رهانات، متغيرات الخط وسجلات شرط تاريخية، لذا تُجمع العدادات حسب cross_venue_key لا يُتوقع أن تتطابق عبر المنصات. الفرق الكبير هو إشارة للمراجعة، وليس دليلاً على أن الصفوف مفقودة أو مكررة.

resolved=false يعني أن المكان لم يحدد تلك الحالة نهائية؛ لا يعني أن التعيين غير محلول. يمكن أن يكون السوق غير محلول بمفتاح تثبيت مرشح، أو محلول بتعيين فارغ أو ملغى. احتفظ resolved, contract_mapping.status وحضور المفتاح كمحاور منفصلة.

للتدقيق، قم بعدّ league, scope و kind مع GET /v3/sports/markets، ثم قارن الصفوف عند نفس التوقيع الموحد: المباراة، الفترة، المشارك، الخط، الجانب، النوع وملف التسوية. استخدم candidate_key لمجموعات المرشحين و cross_venue_market_key فقط للانضمامات المؤكدة. لا تملأ مفتاح فارغ من سبيكة، عنوان، موضع مصفوفة أو نسبة عدد الصفوف؛ احتفظ reason_codes وحالة الأدلة.

قد تختلف معرفات المنصة لنفس الحدث. على سبيل المثال، Kalshi kalshi-soccer-ieloak-2026-09-20 و Polymarket uslc-iel-oak-2026-09-20 يتطلب التحقق من التثبيت، المشارك، وقت البدء والتسوية قبل أي انضمام.

تصحيحات تدريجية

/v3/sports/markets?updated_since= يقبل ميلي ثانية الحقبة، ISO-8601 أو تاريخ. updated_at و updated_ms هي أوقات نشر الكتالوج. الهوية، بدء التشغيل، إلغاء الخرائط وتجديد الأدلة تنشر تحديثات.

  1. حفظ وقت بدء الاستطلاع ونقطة التحقق السابقة.
  2. احتفظ updated_since وفلاتر ثابتة عبر كل مؤشر.
  3. إدراج أو تحديث بواسطة condition_id، بما في ذلك القيم الفارغة التي تلغي الخرائط القديمة.
  4. تضمين الأسواق المحلولة أثناء تصحيح الاستطلاع.
  5. التقدم من بداية الاستطلاع مع تداخل فقط بعد نجاح كل صفحة.

يتم إعادة نشر التغييرات المستمرة على مفاتيح التثبيت، هويات المشاركين، بيانات نوع العائلة وأدلة العقد من خلال دلتا الكتالوج. انتهاء صلاحية الأدلة حسب الساعة الحائطية مختلف: توقف عن استخدام المفاتيح المؤكدة عند evidence_valid_until_ms حتى قبل وصول دلتا الإلغاء. انتهاء الصلاحية يحتفظ بهويات المرشحين والمشاركين. هذا يحل محل الإرشادات القديمة التي كانت تصحيحات التثبيت يمكن أن تتجاوز updated_at. اتبع سير عمل التصحيح أعلاه و قواعد التحقق من التكامل عند الاحتفاظ أو تحديث الخرائط.

تصحيحات البيانات الوصفية لا تصلح صفوف الكتاب التاريخية. أعد جلب التاريخ المتأثر بشكل منفصل.

التحقق من الاستجابة

تفقد meta.partial حتى بعد HTTP 200. حافظ على الأسعار الفارغة، واتبع مؤشرات التمرير الغامضة أثناء has_more صحيح، ولا تعامل العدادات أو بيانات الدقة كدليل على اكتمال شامل للمكان. الصفوف المعبأة للأمام هي ملاحظات محمولة، ليست لقطات جديدة.

في الوقت الحقيقي رياضة بيانات سوق التنبؤ — عمق دفتر الطلب الحي على Polymarket و Kalshi، إلى جانب احتمالات كتب الرياضة، النتائج الحية، وتغذية الإصابات عبر الدوريات الكبرى (NBA، NFL، MLB، NHL، كرة القدم، التنس، UFC، F1 والمزيد). كلا المكانين مشمولان معًا في كل مستوى؛ الخطط تغير نافذة التاريخ المشتركة، الإنتاجية، وتزامن الكتب الحية. نفس{ data, meta, pagination } المغلف، المصادقة، وترقيم الصفحات بالمؤشر مثل بقية API.

جارٍ اكتشاف سوق. تصفح القمع: /v3/sports/leagues → /v3/sports/markets?league=… → خذ من سوق tokens[] (كل منها هو نتيجة واحدة asset_id) → /v3/sports/books/{asset_id}/latest للكتاب المباشر.

GET/v3/sports/overview

التغطية وحالة الحساب. حقوق خطة الرياضة الخاصة بك، المنصات والدوريات المتتبعة، عدد الأسواق والكتب، ونافذة التاريخ المحتفظ بها، في مكالمة واحدة. لا تحمل بيانات سوق أو كتاب؛ القمع أعلاه هو الطريق إلى كتاب حي.

GET/v3/sports/leagues

الدوريات التي نتتبعها، كل منها مع عدد مبارياته وأسواقه — قمة قمع الاكتشاف.

GET/v3/sports/markets

أسواق الرياضة عبر Polymarket وKalshi. فلتر باستخدام ?league= (على سبيل المثال nba, mlb, soccer); التصفح باستخدام المؤشر مثل كل نقطة نهاية للقائمة (?limit=, ?cursor=). كل سوق يحمل condition_id, market_slug, outcomes, و tokens — لكل نتيجة asset_idالثواني التي تسلمها إلى نقطة نهاية الكتاب.

json
{ "data": [{
  "condition_id": "0xfb53…", "market_slug": "mls-nyc-laf-…-total-2pt5",
  "league": "soccer", "kind": "totals", "title": "New York City FC vs. Los Angeles FC",
  "outcomes": ["Over", "Under"],
  "tokens": ["45485059…", "38846626…"],   // one asset_id per outcome
  "game_start": "2026-11-05T00:30:00Z", "resolved": false
}], "pagination": { "next_cursor": "…", "has_more": true, "limit": 50 }, "meta": { … } }
GET/v3/sports/books/{asset_id}/latest

أحدث دفتر أوامر كامل مسجل لنتيجة واحدة — asset_id هو رمز منtokens[]. السلم يصل كمصفوفات أربعة متزامنة الفهرس (bid_prices مع bid_sizes, ask_prices مع ask_sizes) بدلاً من [price, size] الأزواج التي تعيدها طرق العملات المشفرة؛ ما تشاركه كل مسارات الكتب يسرد كل الفرق. للاستخدام الحي الحساس للكمون، يمكن لـ Quant والمستويات الأعلى الاشتراك في قنوات WebSocket الرياضية أدناه.

مسارات الدفتر تأخذ رمزًا، وليس condition_id. للسوق واحد condition_id ودخول واحد في tokens[] لكل نتيجة، والكتاب ينتمي إلى النتيجة. في صفوف Kalshi، السلسلتان متساويتان، لذا الكود الذي يقرأ condition_id يعمل على Kalshi ثم يعيد 404 SNAPSHOT_NOT_FOUND في كل سوق Polymarket. اقرأ tokens[].
GET/v3/sports/books/{asset_id}/history

لقطات سلم كاملة تاريخية للنتيجة. تصفح مع ?limit= و ?cursor=; ربط الوقت بـ ?start_time= / ?end_time= (الأقصر ?from= / ?to= تُقبل الأسماء المستعارة أيضًا). أضف ?interval=1m لإرجاع أحدث لقطة في كل دلو متوافق مع الحقبة؛ الوحدات المدعومة هي s, m, h, و d، من ثانية واحدة وحتى يوم واحد. احذفه، أو استخدمraw / tick، لكل لقطة مسجلة. عمق الرياضة يتم التقاطه مقدمًا: أرشيف Polymarket يبدأ 14 أبريل 2026 وأرشيف Kalshi يبدأ 12 يونيو 2026.

العينة الزمنية تقلل البيانات؛ لا تستوفي. يوجد دلو في الاستجابة فقط إذا تم التقاط الكتاب بداخله، لذا نافذة ساعتين عند ?interval=1m تمتد عبر دلاء 120 لكنها تعيد فقط الدقائق التي احتوت على التقاط. بالنسبة لنتيجة يتم تسعيرها بشكل غير متكرر — سوق لا يزال يبعد أيامًا عن البداية — عادة ما تكون عشر إلى عشرين صفًا، وهي الشريط الكامل للنافذة بدلاً من صفحة مقطوعة. كل استجابة استخدمت ?interval= يحمل resolution حظر حتى يكونا مميزين:

json
{ "data": [ … ],
  "pagination": { "count": 13, "has_more": false, "limit": 500 },
  "resolution": {
    "interval_secs": 60,
    "buckets_in_range": 121,   // minutes the window spans
    "buckets_filled": 13,      // minutes that held a capture
    "complete": true           // false while a next_cursor is outstanding
  } }

إذا buckets_filled هو أقل بكثير من buckets_in_range، يتم اقتباس النتيجة بشكل غير متكرر — اطلب فترة زمنية أكثر خشونة، أو احذفها واقرأ كل لقطة. تتتبع كثافة اللقطات نشاط التداول: تسجل نتيجة في لعبة جارية مئات إلى آلاف اللقطات خلال ساعتين، بينما تسجل نفس النتيجة بعد ثلاثة أسابيع بضعة عشرات فقط. لذا ?interval=1m يعيد سلسلة دقيقة شبه كاملة بمجرد بدء اللعبة، وسلسلة قصيرة لسوق لم يبدأ التداول بعد.

إضافة ?fill=ffill جنبًا إلى جنب interval للشبكة الكثيفة بدلاً من ذلك: صف واحد لكل دلو للنافذة بأكملها، يحمل آخر كتاب تم التقاطه إلى الدقائق التي لم تحتوي على التقاط، كل صف معلم filled ومختومة as_of_ts مع اللحظة التي تم فيها تسجيل ذلك الدفتر. نفس المعامل، نفس المعنى، نفس العلامات مثل كل مسار لقطة آخر — انظر سد الفجوات.

تعيد هذه المسار الأحدث أولاً, وهو المسار الوحيد للكتاب الذي يفعل ذلك. تُرجع مسارات اللقطة للعملات المشفرة والمنصة الأقدم أولاً. قم بالفرز حسب الطابع الزمني للصف بدلاً من الاعتماد على ترتيب الوصول إذا قرأت كلاهما.

الألعاب وسياق السوق المحسوم

GET/v3/sports/{league}/games

الألعاب والنتائج الحية لدوري (مثل nba, nfl, soccer/eng.1)، كل منها مع أسواقه المرتبطة Polymarket و Kalshi.

GET/v3/sports/games/{game_slug}

وثيقة اللعبة المدمجة: الجدول والنتيجة النهائية، الأسواق التنبؤية المرتبطة والتسويات، خطوط كتب الرياضة، وسياق الإصابات. استخدم المسارات المصاحبة أدناه عند الحاجة إلى طبقة حجم مرتفع فردية.

قائمة السوق المدمجة هي معاينة لما يصل إلى 1,000 سجل. تحقق markets_returned و markets_truncated، ثم اتبع markets_url ومؤشرها من البداية للمجموعة الكاملة. تعيد قراءات البيانات الفاشلة 503 CATALOGUE_UNAVAILABLE; احتفظ بسجلاتك السابقة وحاول مرة أخرى بدلاً من معاملة بحث غير متاح على أنه نتيجة فارغة.

GET/v3/sports/games/{game_slug}/markets
GET/v3/sports/games/{game_slug}/lines
GET/v3/sports/games/{game_slug}/box
GET/v3/sports/games/{game_slug}/plays
GET/v3/sports/games/{game_slug}/winprob

أسواق الألعاب، حركة الخط، نتائج الصناديق، اللعب باللعب، واحتمالية الفوز لكل لعب.

هذه الأربعة تحتاج إلى مباراة ESPN. كل شيء ما عدا /markets مرتبط بحدث ESPN، لذا لعبة لم نتمكن من مطابقتها تعيد 404 DATA_NOT_FOUND مع “game is not matched to an ESPN event” — اللعبة نفسها وأسواق التنبؤ الخاصة بها لا تزال متاحة. تحقق من espn تشغيل /v3/sports/games/{game_slug}: null يعني أن الطرق الأربعة أدناه ستُرجع 404 لها. معدل المطابقة هو خاصية الدوري، وليس اللعبة (تم القياس 2026-09-02): NHL 97%، NBA 91%، NFL 68%، WNBA 67%، EPL 66%، MLB 59%، UFC 56%، CFB 49% — وقريب من الصفر للرياضات الإلكترونية، الكريكيت، السهام والرجبي، حيث لا يرد ESPN على الكتالوج. قم بفرز المرشحين حسب الدوري قبل بناء خط أنابيب على نتائج المباريات.
GET/v3/sports/markets/{condition_id}

سوق موحد مع معرفات المنصة، النتائج، معرفات الرموز، انضمام اللعبة، وحالة التسوية.

اللاعبون، الخصائص، والإصابات

GET/v3/sports/{league}/players

ابحث في دليل الرياضيين في الدوري واسترجع معرفات الرياضيين الثابتة المستخدمة في انضمامات مراهنات اللاعبين.

GET/v3/sports/players/{athlete_id}
GET/v3/sports/players/{athlete_id}/injuries
GET/v3/sports/players/{athlete_id}/box
GET/v3/sports/players/{athlete_id}/markets

ملف اللاعب، سجل تغييرات الإصابات، سجل اللعبة في صندوق النقاط، وخصائص سوق التنبؤ المحللة للكيانات.

GET/v3/sports/{league}/injuries

تغذية الإصابات الحية لكل دوري — تغييرات الحالة قبل المباراة التي تحرك السوق.

احتمالات كتب الرياضة

GET/v3/sports/odds/lines

خطوط المال الحية، الفارق، الإجمالي، وخطوط الرهان الخاصة عبر الكتب، موحدة للمقارنة مع سعر السوق.

GET/v3/sports/odds/books

كتالوج الكتب الرياضية النشط وحداثة المصدر.

GET/v3/sports/{league}/odds-history

خطوط كتب الرياضة التاريخية لأربع دوريات: nfl (nflverse، المواسم 1999–2026) و epl, la-liga, soccer (football-data.co.uk، 2000/01 فصاعدًا). أي عائدات من دوري آخر 404 SPORTS_UNKNOWN_ROUTE تسمية هؤلاء الأربعة. الطلب يحتاج إلى فلتر واحد على الأقل: NFL يأخذ season, team, من، أو إلى; كرة القدم تأخذ رمز موسم بيانات كرة القدم (على سبيل المثال 2324) و/أو team. بدون واحد تحصل على 400 INVALID_PARAMETER يقول أيها.

كل موسم يمكن الوصول إليه في كل خطة، بما في ذلك الطبقة المجانية. نافذة تاريخ خطتك تحدد البيانات التي يلتقطها DepthFeed — دفاتر الطلبات، حالة اللعبة الحية، تغييرات الإصابات. لا تحد هذه الجداول الاثنين، التي تعيد توزيع مجموعات بيانات مرجعية عامة، لذا ?season=1999 يعيد 1999 على مفتاح Explorer. لا يزال الترقيم مطبقًا: NFL يعيد حتى 500 صف في الصفحة مع cursor، كرة القدم حتى 1,000.
GET/v3/sports/odds/stream

أحداث مرسلة من الخادم لتغيير خطوط كتب الرياضة. أرسل Accept: text/event-stream; تمر الأحداث كما تصل ويبقى الاتصال مفتوحًا. تستخدم كتب أوامر الرياضة DepthFeed WebSocket الرئيسي أدناه.

روابط الويب للإصابات

POST/v3/sports/webhooksخطة مدفوعة

سجل مستلم HTTPS مع عوامل تصفية الدوري والإصابات. يظهر السر الخاص بالتوقيع مرة واحدة. تشمل التسليمات X-DepthFeed-Event و X-DepthFeed-Signature; تحقق من توقيع HMAC-SHA256 فوق جسم الطلب الخام الدقيق قبل تحليل JSON.

شل
curl -X POST "https://api.depthfeed.com/v3/sports/webhooks" \
  -H "Authorization: Bearer df_your_key" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/depthfeed","leagues":["nba","nfl"],"statuses":["out","questionable"]}'
GET/v3/sports/webhooksخطة مدفوعة
POST/v3/sports/webhooks/{sub_id}/testخطة مدفوعة
DELETE/v3/sports/webhooks/{sub_id}خطة مدفوعة

قائمة الاشتراكات وصحة التسليم، إرسال حدث اختبار موقع، أو إلغاء الاشتراك.

شل
# discover a market, then pull its live book
curl "https://api.depthfeed.com/v3/sports/markets?league=mlb&limit=1" -H "Authorization: Bearer df_your_key"
# take tokens[0] from the response, then:
curl "https://api.depthfeed.com/v3/sports/books/<asset_id>/latest" -H "Authorization: Bearer df_your_key"

بيانات سوق FIX 4.4 عبر TLS

معاينة تكامل المؤسسات. التنفيذ اجتاز اختبارات شاملة معزولة؛ لم يتم الإعلان عن نقطة نهاية FIX عامة. الوصول يتطلب نقطة نهاية مخصصة ومعرفات CompIDs لحساب Desk (مؤسسي).

اتصل بنظام بيانات السوق FIX موجود إلى دفاتر الطلبات الموحدة من Binance وPolymarket وKalshi وLimitless والقنوات الرياضية المدعومة. يوفر الملف الشخصي لقطات أولية، تحديثات جديدة/تغيير/حذف لمستوى السعر، نبضات قلب، أرقام تسلسل مستمرة واسترداد ملء الفجوات يتبعه لقطات جديدة. يستهلك نفس التغذية مثل WebSocket.

الإعدادالعقد
الأهليةDesk / للمؤسسات فقط؛ مفتاح حي وفحوصات خطة، CompID مرتبط بالحساب
الجلسةFIX 4.4 عبر TLS موثق 1.2+؛ معرف SenderCompID وTargetCompID معين
تسجيل الدخولمفتاح API موجود في الوسم 554 عبر رد الاتصال بمحركك؛ نبض 5–30 ثانية
بيانات السوق35=V طلبات؛ 35=W لقطات؛ 35=X تغييرات مستوى السعر؛ 35=Y رفض طلبات
الاستردادحالة تسلسل مستمرة؛ إعادة إرسال ملء الفجوات؛ الانتظار للقطات بديلة
القيودتظل منح REST الحالية وحدود اتصال/اشتراك WebSocket دون تغيير

يبقى REST واجهة الاكتشاف والبيانات التاريخية. يغطي هذا الملف التعريفي FIX بيانات السوق؛ لا يوجه الأوامر أو يوفر إعادة تشغيل النقاط التاريخية. لا يضيف تغطية مستقلة أو ضمان زمن استجابة. طوابع المصدر وطوابع الإرسال مختلفة عن استلام العميل.

قراءة ملف FIX كامل للرموز، النتائج الثنائية، حقول الطلب، معرفات المستوى الحتمية، حدود الاسترداد والسلامة. اتصل بـ دعم المؤسسات لحالة التزويد. لا تخمن اسم مضيف أو ترسل مفتاح API إلى نقطة FIX غير موثوقة.

GET/v3/stream

WebSocket الذي يدفع كتب الأوامر والأسعار المباشرة مع تغيرها. حمولات الإطار هي نفس كائنات JSON التي تعيدها نقاط نهاية REST للقطات، لذا يُكتب الكود ضد REST مباشرة. قم بالمصادقة عند الاتصال باستخدام X-API-Key رأس, Authorization: Bearer، أو — للمتصفحات التي لا يمكنها تعيين رؤوس WebSocket — ?api_key=df_….

شل
# wscat -c "wss://api.depthfeed.com/v3/stream?api_key=df_your_key"
> {"op":"subscribe","channels":["book:polymarket:btc:2510645","price:btc"]}
< {"op":"subscribed","channels":[…],"active":2}
< {"channel":"price:btc","data":{"coin":"btc","price":63560.1,…},"ts":1781300671083}
< {"channel":"book:polymarket:btc:2510645","data":{…same shape as REST snapshot…},"ts":…}

القنوات

القناةالحمولةملاحظات
book:polymarket:<coin>:<market_id>كائن لقطة REST (مع دفاتر الطلبات)مستوى التيك عبر وصلة WebSocket لـ CLOB
book:kalshi:<coin>:<ticker>نفس الشكل مثل صفوف /v3/kalshi/…/snapshotsالتحديثات من حلقة استقصاء Kalshi المتدرجة
book:limitless:<coin>:<slug>نفس الشكل مثل صفوف /v3/limitless/…/snapshotsمعتمد على الدفع (socket.io tap)
book:binance:<coin>:<spot|futures>نفس الشكل مثل /v3/…/latest100 مللي ثانية تغذية العمق
book:sports:polymarket:<token_id>سلم رياضي كاملQuant+: تدفق CLOB مدفوع بالأحداث من الطرف الأول
book:sports:kalshi:<ticker>سلم رياضي كاملQuant+: WebSocket دلتا دفتر طلبات Kalshi بأفضل جهد، مع تحويل احتياطي؛ إطارات التغيير فقط
price:<coin>{ coin, price, source, venue, id, time }الأساس في Binance، ~4 نقرات/ثانية كحد أقصى

العمليات: subscribe · unsubscribe (كل منها يأخذ {"channels":[…]}, يُطبق بشكل ذري) و ping → pong. متتبع * قطاع السوق (مثلاً book:kalshi:btc:*) يشترك في منصة/عملة كاملة — خطة Desk فقط. مشاكل مستوى العملية (قناة سيئة، تجاوز حد اشتراكك) تعود كـ {"op":"error","code":…} إطارات ولا تسقط الاتصال أبدًا.

قنوات الرياضة تستخدم معرفات محددة ولا تدعم البدل. Quant وResearch وDesk تسمح بواحد، اثنين، وثلاثة كتب رياضية متزامنة على التوالي. كل إطار رياضي يشمل السلم الكامل، venue, asset_id، تبادل/استلام الطوابع الزمنية، full_ladder: true, وdelivery حقل يحدد مصدر كل إطار: polymarket_clob_ws,kalshi_orderbook_delta_ws، أو scoretape_relay عندما يكون الترحيل الرياضي يعمل. كتب الرياضة في Kalshi مدفوعة بـ websocket دلتا دفتر الأوامر المصدق من Kalshi، مع الترحيل كخطة بديلة، لذا توقيت الإطارات يتبع نشاط البورصة بدلاً من فترة استقصاء ثابتة. اقرأ الحداثة من الطوابع الزمنية لكل ملاحظة بدلاً من افتراض معدل تحديث.

شل
> {"op":"subscribe","channels":[
    "book:sports:polymarket:<token_id>",
    "book:sports:kalshi:<market_ticker>"
  ]}
< {"op":"subscribed","channels":[…],"active":2}

حدود لكل خطة

الخطةالاتصالاتالاشتراكاتالقنوات
Explorer11كل منصة، كل العملات؛ بدون كتاب رياضي
Quant15كل منصة، كل العملات؛ 1 كتاب رياضي
Research225كل منصة، كل العملات؛ 2 كتب رياضية
Desk5100كل منصة، كل العملات، بالإضافة إلى رموز البدل؛ 3 كتب رياضية

عمود القناة هو نفسه في كل صف لسبب: الخطة لا تشتري منصة أو عملة هنا أيضًا. Explorer يبث أي دفتر على أي من المنصات الأربع — يحتفظ باشتراك واحد فقط في كل مرة، لذا قناة ثانية في نفس subscribe يعيد SUB_LIMIT ولا يُطبق شيء. البدل وكتب الرياضة الحية هما الشيئان اللذان لا يغطيهما حد الاشتراك وحده.

إطارات أخطاء العمليات

تصل هذه كـ {"op":"error","code":…,"message":…} وتترك الاتصال مفتوحًا. هي رموز إطارات، ليست حالات HTTP.

رمزالمعنى
CHANNEL_INVALIDليس اسم قناة صالح. الأشكال هي book:<venue>:<coin>:<market> و price:<coin>.
UNKNOWN_OPليس واحدًا من subscribe, unsubscribe, ping.
SUB_LIMITكان الاشتراك سيتجاوز حد اشتراك خطتك. لم يتم الاشتراك في شيء — العملية تطبق بشكل ذري.
SPORTS_SUB_LIMITنفس الشيء، للحد المنفصل لكتب الرياضة المتزامنة.
SPORTS_NOT_IN_PLANخطةك لا تحتوي على اشتراك في دفتر رياضي منخفض الكمون.
VENUE_NOT_IN_PLANيُعاد فقط على واجهة العرض التجريبية المجهولة. تبث كل خطة حساب كل المنصات.
WILDCARD_NOT_IN_PLANمتتبع * قطاع السوق هو Desk فقط. سمِّ الأسواق بدلاً من ذلك.
SLOW_CONSUMERاتصالك تأخر كثيرًا عن التغذية ويتم إسقاط الإطارات. اقرأ أسرع، أو اشترك في قنوات أقل.

إغلاق الرموز وإعادة الاتصال

الرمزالمعنى
4001فشل المصادقة (مفتاح مفقود / غير معروف / ملغى)
4003تم الوصول إلى حد الاتصال بالخطة
4029تدفق العمليات — الرجاء الإبطاء
1013التحقق من المفتاح غير متاح مؤقتًا — حاول مرة أخرى قريبًا

يرسل الخادم نبضات بروتوكول كل 25 ثانية. تؤدي عمليات النشر والتبديل التلقائي إلى قطع الاتصالات حسب التصميم — تعامل قطع الاتصال → إعادة الاتصال مع تراجع أسي (250 مللي ثانية تتضاعف حتى ~5 ثوانٍ) وأعد إرسال اشتراكاتك كدورة حياة عادية، وليس كمسار خطأ.

الحداثة والكمون

تؤثر إيقاع الالتقاط، تأخير الترحيل، حجم الحمولة وموقع العميل على التسليم من الطرف إلى الطرف. إطار العمل ts هو وقت نشر البوابة؛ الطوابع الزمنية داخل data يمكن أن تمثل حدث منصة، أو التقاط، أو سجل مخزن، اعتماداً على القناة. عمر المصدر ووقت معالجة الخادم ليسا نفس تأخير استلام العميل.

قِس إيصال عميل مستقل مع ساعة متزامنة، احتفظ بأصل الطابع الزمني، وأبلغ عن كل منصة، منطقة، حمولة نافذة قياس بشكل منفصل. تاريخيdeploy/stream_freshness.py الملاحظات تصف تلك الجولات، بدلاً من ضمان الكمون الحالي لكل مشترك. يستخدم FIX المؤسسي نفس المصدر الأساسي؛ يتم وصف طوابع الإرسال والمصدر في ملف تعريف FIX أعلاه.

يتم قياس الرسائل المتدفقة ضمن استخدامك مثل استجابات REST. الاشتراكات محدودة حسب الخطة، والحصص لكل مستخدم عبر جميع الاتصالات. يتوفر تقييم Desk محدود الصلاحية لمدة 7 أيام عند الطلب للتحقق من زمن الاستجابة الإنتاجي.

Wallet Intelligence هو مساحة عمل بحث للقراءة فقط لمحافظ Polymarket العامة. احفظ قائمة مراقبة، اكتشف المتداولين من لوحة المتصدرين العامة لـ Polymarket، وراجع المراكز العامة، النشاط الأخير، العينات المحققة، ومقاييس مستوى المحفظة في مكان واحد. لا يتصل بمحفظة، ولا يوقع معاملة، ولا يضع أمرًا حقيقيًا.

تدقيق تنفيذ الكتاب التالي

لكل صفقة عامة مؤهلة، يجد DepthFeed أول كتاب Polymarket سجله بعد طابع وقت النشاط، ويتتبع سلم الأسعار المعروض لنفس عدد الأسهم، ويبلغ عن سعر الإعادة، والجزء القابل للتنفيذ، والتأخير الملحوظ، والفارق السعري الموقع مقابل الصفقة العامة. نافذة البحث هي 90 ثانية. يُعرض عدم وجود تطابق كمفقود؛ لا يُقدر أبداً.

الدرجات ميكانيكية: العمق المتبقي يعني أن ما لا يقل عن 95% من الحجم العام تم عرضه ضمن 1¢ من سعر المتداول; تحرك السعر يعني أن ما لا يقل عن 95% بقي ولكن بفارق أعلى من 1¢; الحجم غير متوفر يعني أن أقل من 95% من الحجم العام تم عرضه.

نسخة ورقية للإرسال

ابدأ مرآة ورقية من أي محفظة مفحوصة. فقط الصفقات العامة التي لوحظت بعد إنشاء المرآة مؤهلة: يقوم DepthFeed بإزالة التكرار لكل تنفيذ، ويطبق نسبة النسخ المحددة وحد أقصى لكل صفقة، ثم ينفذها بأقرب عرض حي متاح في سجل التداول الورقي العادي. يظهر النقد، والمراكز، والأرباح والخسائر، ومنحنى الأسهم، وقاطع الدائرة، وتاريخ التسوية تحت تداول ورقي.

استدعاء HTTPS اختياري يستقبل كل ملء منسوخ ناجح. سر التوقيع يظهر مرة واحدة. تحقق HMAC-SHA256(timestamp.body) ضد x-depthfeed-signature; يتم إرسال الطابع الزمني في x-depthfeed-timestamp. يتم رفض الوجهات المحلية، الخاصة بالشبكة، الحاملة للاعتماد، غير HTTPS، وإعادة التوجيه.

الخطةمحافظ محفوظةالتداولات المدققة لكل تحديثصفوف النشاط العامة
Explorer1330
Quant510100
Research1025250
Desk2050500

حدود التفسير

  • قد يكون العنوان العام مجرد محفظة واحدة للمتداول ولا يثبت الهوية أو الملكية.
  • طوابع زمنية للنشاط العام ليست طوابع زمنية لأوامر خاصة. يقيس التدقيق ما لاحظه DepthFeed بعد النشر، وليس زمن استجابة المتداول الأصلي.
  • يمكن مطابقة الصفقات فقط في تغطية Polymarket المسجلة بواسطة DepthFeed. تُعرض الأسواق غير المدعومة أو غير المسجلة بدون تدقيق.
  • يستهلك الإعادة الحجم المعروض رياضيًا؛ لا يمكنه نمذجة السيولة المخفية، أولوية الطابور، سباقات الإلغاء، الرسوم، أو تأثير السوق لطلب تابع حقيقي.
  • ترتيب لوحة المتصدرين، الأرباح والخسائر، المراكز، والنشاط تأتي من خدمات بيانات Polymarket العامة وقد تكون متأخرة، معدلة، غير مكتملة، أو غير متاحة مؤقتًا.
  • Wallet Intelligence ومرآته الورقية هي أدوات بحث — ليست تداول نسخ مباشر، أو نصيحة استثمارية، أو توصية، أو ضمان تنفيذ.
يخزن DepthFeed فقط عناوين قائمة المراقبة والتسميات التي أنشأها المستخدم. تُجلب بيانات المحفظة العامة عند الطلب وتُخزن مؤقتًا لفترة قصيرة؛ تُحسب تدقيقات التنفيذ مقابل دفاتر الطلبات المسجلة لدينا عند الطلب.

أدلة بحث المحفظة

ابدأ بـ دليل متتبع محافظ Polymarket، ثم قارن تحليلات المحفظة, بحث لوحة المتصدرين, و تحليل تنفيذ التداول النسخي.

مفتوح منشئ الاستراتيجية لوصف استراتيجية للمساعد، تشغيل اختبار رجعي تاريخي، وفحص النتائج. اللوحة المرئية متاحة على عرض المُنشئ. كلا العرضين يستخدمان نفس محرك الاستراتيجية.

بناء وتشغيل

  1. وصف السوق، شروط الدخول، الخروج وحجم المركز في المساعد، أو ربط العقد على اللوحة.
  2. راجع الاستراتيجية وإعدادات التنفيذ المولدة قبل تشغيلها.
  3. اختر عينة تاريخية متاحة ضمن نافذة تاريخ حسابك.
  4. تفقد سجل التداول، منحنى الأسهم، التنفيذات وتحذيرات جودة البيانات قبل استخلاص النتائج.

افتراضات التنفيذ

تعتمد النتائج على العينة المختارة، وإعدادات التنفيذ، والرسوم، والانزلاق، وحجم المركز. تؤثر الملاحظات المفقودة والعمق غير المتوفر على ما يمكن محاكاته. تحقق من افتراضات التحليل والتحذيرات؛ فالنتيجة التاريخية لا تضمن تنفيذًا حيًا أو أداءً مستقبليًا.

تابع التداول الورقي

راجع الاستراتيجية في المُنشئ واستخدم تدفق النشر الورقي لتتبعها باستخدام أموال محاكاة. التداول الورقي له مراكزه، ونقده، وسجل تداولاته الخاصة. لا يضع أوامر حقيقية في البورصة. تعتمد حدود استخدام المساعد والاستراتيجية الورقية على خطة حسابك.

تداول ورقي تشغيل الاستراتيجيات إلى الأمام على مباشر أسواق بالنقد الافتراضي. يتم تسعير التنفيذات، العلامات والتسويات كلها من دفاتر الطلبات الحية لـ DepthFeed — الشراء عند سعر الطلب، البيع عند سعر العرض، ويتم تسوية المراكز إلى $0/$1 تلقائيًا عند حل السوق. كل استراتيجية تحصل على منحنى حقوق ملكية خاص بها، عرض المراكز، وسجل تداول كامل.

ثلاث طرق للتداول

الوضعكيف يعمل
Webhookنظامك الخاص (بوت، كرون، مذكرة) يرسل إشارات شراء/بيع إلى عنوان URL لكل استراتيجية. منطقك يبقى لك — نحن نقوم بالتنفيذ، المحاسبة والرسوم البيانية.
قاعدة المختبرنشر إعداد مسبق لـ Polymarket أو Kalshi Backtest Lab (إدخال نافذة زمنية، عبور مستوى، ارتداد هبوطي) مع جوانب أصلية للمكان، جني الأرباح/وقف الخسارة، حد أقصى مفتوح، وتحديد حجم المركز (ثابت / نسبي / Kelly)؛ يتم تقييمه على الخادم مقابل عروض الأسعار الحية (~90 ثانية تواتر).
نسخة المحفظةعكس الصفقات العامة الجديدة من محفظة Polymarket المفحوصة بنسبة نسخ وحد أقصى لكل صفقة. تستخدم النتائج نفس دفتر الأستاذ الورقي وقد تصدر اختياريًا إشعارات HTTPS موقعة للصفقات.

إشارة webhook

POST/paper/hook/{token}بدون مصادقة

الرمز (يُعرض مرة واحدة عند الإنشاء/التدوير) هو المصادقة. الأسعار دائمًا ما تُحدد من الكتاب الحي عند وقت الإشارة — لا يمكن للحمل أن يحدد سعره الخاص. يتم تحديد الأسواق بواسطة venue + market: رمز Kalshi، أو معرف رمز Polymarket CLOB. يمكنك التداول أي سوق على المنصة، وليس فقط تلك التي يسجلها DepthFeed — إذا لم تكن متوفرة محليًا، يتم تسعير التنفيذ من قراءة مباشرة لدفتر الأوامر الخاص بالمنصة.

شل
curl -X POST 'https://api.depthfeed.com/paper/hook/pt_your_token' \
  -H 'content-type: application/json' \
  -d '{
    "action": "buy",
    "venue": "polymarket",
    "market": "REPLACE_WITH_CLOB_TOKEN_ID",
    "side": "yes",
    "usd": 100,
    "client_id": "sig-0042"
  }'
json
{ "data": { "filled": true, "action": "buy", "price": 0.62,
            "shares": 161.29, "cost_cents": 10000, "cash_cents": 990000,
            "position_id": "…" } }
خطأالمعنى
NO_FRESH_QUOTEلا يوجد كتاب مباشر لذلك السوق — معرف خاطئ، أو السوق مغلق / أصبح أحادي الجانب عند 0/1 (التسوية تغلق المراكز تلقائيًا).
INSUFFICIENT_CASHيتجاوز الطلب النقد الورقي للاستراتيجية.
NO_POSITIONبيع/إغلاق بدون حصة مفتوحة على ذلك السوق/الجانب.
RATE_LIMITEDأكثر من 120 إشارة/دقيقة للاستراتيجية.
PAUSEDتم إيقاف الاستراتيجية مؤقتًا في لوحة التحكم.

قاطع الدائرة

كل استراتيجية لها تتبع توقف أقصى انخفاض (افتراضي 60%، قابل للتعديل؛ اضبطه على 0 لتعطيله). إذا انخفضت الأسهم الحية إلى هذا الحد تحت أعلى مستوى لها، يتم تصفية الاستراتيجية تلقائيًا عند الأسعار الحالية و تم الإيقاف — توقف صارم ضد استراتيجية تتداول نفسها نحو الصفر. أعد تشغيلها في أي وقت؛ إعادة التشغيل تعيد تعيين علامة أعلى قيمة إلى حقوق الملكية الحالية لديك.

القيود

الاستراتيجيات المتزامنة لكل خطة: Explorer 1 · Quant 5 · Research 15 · Desk 40. حتى 100 مراكز مفتوحة لكل استراتيجية؛ الرصيد الابتدائي $100–$1,000,000 (الافتراضي $10,000). يتم تحديث العلامات بتواتر ~90 ثانية — هذا متتبع اختبار أمامي، وليس مكان تنفيذ.

تستخدم النتائج الورقية السيولة المعروضة الحقيقية للتسعير لكنها لا تستهلكها — قد ترى عمليات الملء الحية ذات الحجم انزلاقًا أكبر من الملء الورقي عند أعلى دفتر الطلبات. تُسعر الأسواق التي لا نسجلها محليًا من قراءة حية للمنصة ولن تُعاد تسويتها من بيانات الحل لدينا — تُغلق عند آخر علامة لها بعد بضعة أيام إذا لم تحلها المنصة عبر مسار نتابعه.

كل مسار كتاب طلب — ستة مسارات للعملات المشفرة والمنصات بالإضافة إلى الرياضة — يجيب على نفس العقد، لذا يمكن نقل الكود المكتوب ضد واحد إلى التالي بتغيير المسار والمعرف.

  • ال { data, pagination, meta } مغلف و meta.request_id.
  • مجموعة المفاتيح cursor ترقيم الصفحات و limit.
  • النافذة، كـ start_time/end_time أو من/إلى.
  • interval لكتاب واحد لكل دلو، و fill=ffill لشبكة كثيفة.
  • filled, as_of_ts, و as_of_ts_ms على الصفوف المنفذة.
  • ال resolution حظر على أي استجابة استخدمت interval.
  • نافذة تاريخ الخطة، و error.code تعداد.

أربعة أشياء لا تزال تختلف، كلها مرئية في الاستجابة بدلاً من أن تكون مخفية في السلوك.

طرق العملات المشفرة والأماكنتاريخ الرياضة
طابع زمني للصفtime أو timestamp كـ سلسلة، id كـ مللي ثانية منذ العصرts كـ ISO-8601، ts_ms كـ مللي ثانية منذ العصر
طلبالأقدم أولاًالأحدث أولاً
السلممضمنة، باستثناء مسار الحدث لكل عملة، الذي يحتاج include_orderbook=trueدائمًا مشمول
شكل المستوىالأزواج: bids / asks كـ [[price, size], …], الأفضل أولاً (Kalshi تسميها yes / لا)مصفوفات متوازية: bid_prices مع bid_sizes, ask_prices مع ask_sizes، محاذي للمؤشر

هذه هي الأشكال التي بُنيت عليها التكاملات الحالية، لذا تبقى كما هي. قم بالفرز حسب الطابع الزمني للصف بدلاً من ترتيب الوصول ويتوقف الفرق عن الأهمية.

تأتي الدقة من مصدر نفس المصادر العلوية التي تستخدمها الأسواق، لذا تتطابق القيم حسب البناء.

المكانالتقاطالنوافذملاحظات
PolymarketCLOB websocket — كل دفتر + حدث تغيير السعر5م · 15م · 1س · 4س · 24سعمق كامل، مدفوع بالأحداث. فتح/إغلاق التسوية من بيانات Polymarket الخاصة.
KalshiREST عام، استقصاء كامل العمق بوتيرة محددة15 دقيقة · 1 ساعة · 24 ساعة · 1 أسبوعكتاب نعم/لا، حتى 100 مستويات/جانب، 7 أصول؛ تختلف الوتيرة الفعالة حسب حمل السوق وحدود API.
Limitlesswebsocket socket.io (orderbookUpdate)5م · 15مCLOB على Base؛ الالتقاط الحي يدفع دفاتر 5 دقائق السريعة التي لا يمكن لـ REST التقاطها.
Binanceالفوري + العقود الآجلة @depth20@100مللي ثانية + @aggTrade—كتاب الأصل الأساسي + 1s OHLCV، المرساة الدقيقة لأسواق الصعود/الهبوط.

جميع الأصول 7 (btc · eth · sol · xrp · doge · bnb · hype) عبر كل منصة تسردها.

الطوابع الزمنية هي أزمنة إبوك-ميلي ثانية. exch_ts_ms = وقت البورصة، recv_ts_ms = وقت الاستلام لدينا (الفرق هو زمن الالتقاط). أدناه هي الأعمدة المخزنة. مسارات العملات المشفرة والمكان التجاري تضغط مصفوفات الأسعار/الأحجام الأربعة في bids / asks الأزواج قبل إرجاعها؛ تمرر طرق الرياضة الأزواج كما هي كمصفوفات الأربعة. كل شيء آخر يصل إليك تحت الاسم الذي يخزن به.

polymarket_book — لقطات كاملة لدفتر الطلب

asset_id, condition_id, slug, base_asset, market_type, exch_ts_ms, recv_ts_ms, hash, bid_prices[], bid_sizes[], ask_prices[], ask_sizes[]

polymarket_changes — فروق لإعادة التشغيل بين اللقطات

asset_id, condition_id, exch_ts_ms, recv_ts_ms, side, price, size

polymarket_markets — صف واحد لكل رمز

asset_id, market_id, event_id, condition_id, slug, outcome, base_asset, market_type, clob_token_up, clob_token_down, resolution_source, start_time, end_time, first_seen_ms

polymarket_reference — التسوية

slug, base_asset, market_type, start_ms, end_ms, price_to_beat, final_price, winner, final_volume, final_liquidity, resolved_at, captured_ms

binance_book — كتاب 20 مستوى (الفوري والعقود الآجلة)

venue, symbol, exch_ts_ms, recv_ts_ms, bid_prices[], bid_sizes[], ask_prices[], ask_sizes[]

binance_trades_1s — 1s OHLCV

venue, symbol, second_ms, open, high, low, close, volume, buy_volume, sell_volume, trades, recv_ts_ms

الأسعار — سلسلة السعر الأساسي الموحدة

asset, source (binance|chainlink), venue, exch_ts_ms, price

kalshi_book / kalshi_markets

kalshi_book: ticker, series, base_asset, market_type, recv_ts_ms, yes_prices[], yes_sizes[], no_prices[], no_sizes[]

kalshi_markets: ticker, event_ticker, series, base_asset, market_type, title, status, strike, open_time, close_time, first_seen_ms

limitless_book / limitless_markets

limitless_book: slug, condition_id, base_asset, market_type, recv_ts_ms, midpoint, bid_prices[], bid_sizes[], ask_prices[], ask_sizes[]

limitless_markets: slug, condition_id, base_asset, market_type, title, status, expiration_ms, first_seen_ms

كل نافذة خطة تُخدم من المتجر المباشر بالإضافة إلى الأرشيف البارد، لذا النافذة الكاملة متاحة دائمًا. Desk لا يحتوي على حد تاريخ متداول: يمكنه الاستعلام عن كل لقطة مسجلة من أرضية السلسلة المطبقة عبر التغذية المباشرة. تختلف الأرضيات لأن العقود والالتقاط المرخص لم يبدأا في نفس اليوم لكل تركيبة أصل/نافذة.

أدنى أرشيف عمق كامل لـ Polymarket (UTC)

الأرضية هي اليوم الأول الذي تم فيه تسجيل سلم، وهو ليس اليوم الأول لسلسلة غير منقطعة. أرشيف Polymarket يحتوي على لا شيء قبل 2026-01-03, ويناير هو خمسة أيام متفرقة (2026-01-03 إلى 01-06، و01-24). تبدأ التغطية اليومية المستمرة 2026-02-12. الاختبار الخلفي الذي يحتاج إلى سلسلة غير منقطعة يجب أن يبدأ هناك.

الأصول5m15m1h4h24h
BTC2026-02-122026-01-032026-01-032026-01-032026-01-03
ETH, SOL, XRP2026-02-182026-01-032026-01-032026-01-032026-01-03
BNB2026-03-132026-03-132026-03-062026-03-132026-03-07
DOGE2026-03-132026-03-132026-03-112026-03-132026-03-11
HYPE2026-03-132026-03-132026-03-062026-03-132026-03-07

هذه هي الأيام الأولى التي تم فيها تسجيل السلالم الكاملة، وليست ادعاءً بأن كل أصل/نافذة كانت موجودة قبل حدها الأدنى. تُرجع اللقطة السلم المسجل الكامل؛ يمكن أن تحتوي شرعيًا على مستويات صفر عندما لم يكن السوق نفسه يحتوي على أوامر راكدة في تلك اللحظة.

أدنى أرشيف Kalshi (UTC)

مستويات Kalshi هي منفصل عن Polymarket أعلاه وهي لاحقة. أقدم سلم Kalshi مسجل لأي سلسلة هو 2026-01-08. لسلسلة العملات المشفرة 15 دقيقة:

السلسلةأقدم سلم مسجل
KXBTC15M, KXETH15M2026-01-08
KXSOL15M2026-01-09
KXXRP15M2026-02-11
KXBNB15M, KXDOGE15M2026-03-07
KXHYPE15M2026-03-18

تحمل سلاسل Kalshi الساعية واليومية والأسبوعية حدودها الدنيا الخاصة بكل سلسلة، وتبدأ BTC وETH وXRP وDOGE في 2026-01-08 هناك أيضاً. بدلاً من نشر حد أدنى لكل سلسلة، اعتبر الاكتشاف موثوقاً: /v3/kalshi/markets?series=KXBTC15M&start_time=…&end_time=… يسرد بالضبط الرموز التي يمكن استرجاع عمقها في ذلك النطاق، ومعرفات رموز Kalshi محددة من قبل المكان، لذا يجب اكتشافها بدلاً من إنشائها من الطوابع الزمنية UTC.

تواتر وعمق التقاط Kalshi غير ثابت عبر الأرشيف. يلتقط الالتقاط الحالي السلم الكامل حتى 100 مستوى لكل جانب كل بضع ثوانٍ؛ الفترات السابقة أقل كثافة، وبعض أيام ربيع 2026 تحمل فقط عددًا قليلاً من الملاحظات لكل عقد. تُخزن صفوف اللقطة كما سُجلت، لذا يجب على سحب البحث عبر الأرشيف إعادة أخذ عينات على شبكة ثابتة وحمل عدد الملاحظات لكل دلو بدلاً من افتراض فترة أخذ عينات ثابتة.

يتم التقاط عمق دفتر الطلبات مباشرة ولا يمكن إعادة إنشائه بعد ذلك. يتم توفير الوصول إلى الأرشيف من خلال واجهات الاستعلام المقننة الموثقة؛ لا يوفر DepthFeed إعادة بناء حسب طلب العميل أو تسليم أرشيف جماعي.

مبيعات البيانات الضخمة أيام UTC كاملة من الأرشيف كملفات Parquet مختومة zstd، ملف واحد لكل جدول يوميًا، يتم تسليمها من تخزين الكائنات عبر رابط موقع موقع قصير العمر. تقع بجانب REST API، وليس أمامه: لا يزال API يخدم النافذة الساخنة ومسارات التاريخ، وتأخذ الملفات الكبيرة وظيفة "المشي عبر الأرشيف بالكامل" عنهم. مدفوعة مسبقًا، مسعرة لكل GiB، ومقيدة برخصة بيانات تقبلها مرة واحدة في لوحة التحكم.

المنتجات

المنتججدول الأرشيفيوم عمل نموذجي
polymarket-bookpolymarket_book0.35 جيجابايت
polymarket-us-bookpolymarket_us_book0.08 جيجابايت
polymarket-tickspolymarket_changes2.7 جيجابايت
kalshi-bookkalshi_book0.12 جيجابايت
kalshi-tickskalshi_changes3.4 جيجابايت

مجموعات الصفوف هي 5,000 صفوف في جداول الكتب و25,000 في أماكن أخرى، مرتبة حسب السوق أولاً، بحيث يمكن للقارئ قراءة سوق واحد من ملف يومي. تتبع جداول الرياضة بعد ختمها اليومي.

التسعير

عنصرالقيمة
السعر$40 لكل جيجابايت لـ polymarket-book و polymarket-us-book و polymarket-ticks؛ $80 لكل جيجابايت لـ kalshi-book و kalshi-ticks. يتم تحصيلها عند وقت الطلب مقابل أحجام البيان، مع التقريب مرة واحدة على إجمالي الطلب.
الحد الأدنى$5 لكل طلب
المبالغ المستردةلا شيء. كل أمر نهائي بمجرد تقديمه؛ لا تُعاد الأرصدة المصروفة. يطلب منك لوحة التحكم تأكيد ذلك قبل كل طلب.
الأرصدةمدفوع مسبقاً، 100 رصيد يساوي $1، تعبئة من $25 إلى $10,000، صالحة لمدة 12 شهراً
الروابط1 ساعة لكل منها، يصدر مرة أخرى بدون رسوم لمدة 30 يومًا بعد الطلب

الختم

يوم مدرج في الكتالوج فقط عند الختم: عمره ثلاثة أيام على الأقل، ملف بيانات واحد بالضبط، وETag مسجل في البيان. تجزئة البيان هي ما تشتريه. إذا تم ختم يوم مرة أخرى يصبح نسخة جديدة; تتوقف الروابط إلى الإصدار القديم عن الإصدار ويظهر صف الكتالوج الإصدار الجديد. الطلب الذي قمت بتقديمه يحتفظ بإصداره المسجل، وروابط الاستدعاء تميز تلك العناصر superseded بدلاً من إعادة عنوان URL.

الرخصة

الاقتباسات والأوامر تعود 403 DATA_LICENCE_REQUIRED حتى يقبل الحساب رخصة البيانات: للاستخدام الداخلي داخل مؤسستك، لا يُعاد توزيعه أو بيعه، التحليلات المشتقة مسموح بها. اقبله من لوحة التحكم أو بالاستدعاء أدناه. الحسابات التي لم يتم تمكين المنتج لها تتلقى 404 DATA_PRODUCTS_DISABLED على كل طريق هنا.

المسارات

GET/v3/data/products

الجداول القابلة للبيع مع معدلها.

شل
curl https://api.depthfeed.com/v3/data/products   -H "Authorization: Bearer df_your_key_here"
GET/v3/data/licence

ما إذا كان هذا الحساب قد قبل الترخيص، وأي نسخة.

شل
curl https://api.depthfeed.com/v3/data/licence   -H "Authorization: Bearer df_your_key_here"
POST/v3/data/licence/accept

تسجيل قبول النسخة المطبوعة على صفحة الترخيص.

شل
curl -X POST https://api.depthfeed.com/v3/data/licence/accept   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"version":"2026-10-06"}'
GET/v3/data/balance

الرصيد المدفوع مسبقاً كـ credits و usd. تتم عمليات التعبئة من لوحة التحكم.

شل
curl https://api.depthfeed.com/v3/data/balance   -H "Authorization: Bearer df_your_key_here"
GET/v3/data/catalogue

أيام مختومة لمنتج واحد بين من و إلى (تواريخ UTC، شاملة)، كل منها مع bytes, rows, etag, version و sealed_at. ترقيم المؤشر مثل كل قائمة.

شل
curl "https://api.depthfeed.com/v3/data/catalogue?product=kalshi-ticks&from=2026-09-01&to=2026-09-30&limit=100"   -H "Authorization: Bearer df_your_key_here"
POST/v3/data/quotes

تسعير اختيار. يعيد الاقتباس id, total_bytes, price_credits و expires_at (15 دقيقة). السعر هو عرض السعر، وليس المال: لا تحتاج إلى أرصدة مدفوعة مسبقًا لطلبه. عرض سعر جديد يلغي العروض المفتوحة السابقة ما لم يكن لديها دفع مباشر عبر البطاقة. ادفع يدويًا بالبطاقة باستخدام نقطة الدفع أدناه، أو قم بالتسوية من رصيد أرصدتك. كل عرض سعر وأمر يحمل non_refundable: true.

شل
curl -X POST https://api.depthfeed.com/v3/data/quotes   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"items":[{"product":"kalshi-ticks","from":"2026-09-01","to":"2026-09-07"}]}'
POST/v3/data/orders/checkout

اشترِ عبر API وادفع يدويًا. أرسل UUID العرض إلى هذه النقطة النهائية وافتح العائدpayment_url (يُعاد أيضًا كـ url) في المتصفح. إنها صفحة دفع بطاقة مستضافة من Stripe لهذا العرض بالضبط، وليست خصمًا فوريًا. تكرار هذا الطلب أثناء تفعيل صفحة الدفع يعيد نفس الرابط مع reused: true. استخدم expires_at.

شل
curl -X POST https://api.depthfeed.com/v3/data/orders/checkout   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"quote_id":"11111111-1111-1111-1111-111111111111"}'
json
{ "data": {
  "quote_id": "11111111-1111-1111-1111-111111111111",
  "payment_url": "https://checkout.stripe.com/c/pay/...",
  "payment_status": "awaiting_payment",
  "price_usd": 12.34,
  "expires_at": "2026-10-19T01:32:00Z",
  "reused": false
} }

بعد الدفع اليدوي، ينشئ webhook الذي تم التحقق منه بواسطة Stripe الطلب المدفوع. استطلاعGET /v3/data/orders مع تراجع محدود ومطابقة quote_id; صفحة إرجاع المتصفح لا تثبت الدفع. بمجرد أن يكون الطلب paid، اطلب روابط التنزيل الخاصة به. يتم أيضًا إرسال بريد إلكتروني للتنزيل إلى بريد الحساب. لا ينشئ الدفع غير المدفوع أو المنتهي صلاحية طلبًا مدفوعًا. يتم حظر الدفع بالرصيد على نفس العرض بينما يكون الدفع ببطاقة نشطًا.

POST/v3/data/orders

تسوية عرض. يتم خصم الاعتمادات الآن؛ يسرد الطلب كل يوم يغطيه.

شل
curl -X POST https://api.depthfeed.com/v3/data/orders   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"quote_id":"q_01J…"}'
GET/v3/data/orders
GET/v3/data/orders/{id}

طلباتك، الأحدث أولاً، وطلب واحد مع عناصره.

شل
curl https://api.depthfeed.com/v3/data/orders   -H "Authorization: Bearer df_your_key_here"
POST/v3/data/orders/{id}/links

إصدار روابط موقعة لكل عنصر في الطلب. كل رابط يدوم ساعة واحدة وهو رمز حامل لذلك الملف، لذا احتفظ به داخل أنظمتك. اطلب مرة أخرى متى ما احتجت مجموعة جديدة، مجانًا، لمدة 30 يومًا. يعود العنصر الذي تم ختم يومه مرة أخرى مع status: "reissued_new_version" وعنوان URL جديد. يوم بدون ملف حالي هو unavailable.

شل
curl -X POST https://api.depthfeed.com/v3/data/orders/ord_01J…/links   -H "Authorization: Bearer df_your_key_here"
json
{ "data": { "items": [
  { "item_id": "…", "product": "kalshi-ticks", "day": "2026-09-01", "bytes": 3650722201,
    "url": "https://<account>.r2.cloudflarestorage.com/…?X-Amz-Expires=3600&…",
    "expires_at": "2026-10-06T13:00:00Z", "status": "ready" }
] } }
لا يمر أي بايت من ملف عبر API: الروابط تشير مباشرة إلى تخزين الكائنات، والرسوم هي حجم البيان عند وقت الطلب، وليس الإخراج. تنزيل نفس الطلب مرتين لا يكلف شيئًا إضافيًا ضمن نافذة 30 يومًا.

تصفح تاريخ عمق السوق الكامل (Python)

بايثون
import requests

BASE = "https://api.depthfeed.com/v3"
H = {"Authorization": "Bearer df_your_key"}

# 1. find a market
m = requests.get(f"{BASE}/btc/markets?type=15m&limit=1", headers=H).json()["data"][0]
mid = m["market_id"]

# 2. page through its order-book snapshots
cursor, rows = None, []
while True:
    q = f"{BASE}/btc/markets/{mid}/snapshots?include_orderbook=true&limit=1000"
    if cursor: q += f"&cursor={cursor}"
    page = requests.get(q, headers=H).json()
    rows += page["data"]
    if not page["pagination"]["has_more"]: break
    cursor = page["pagination"]["next_cursor"]

print(len(rows), "snapshots")

أحدث عمق عبر المنصات لـ BTC صعودًا/هبوطًا (JavaScript)

جافا سكريبت
const h = { Authorization: "Bearer df_your_key" };

// One call → the full BTC 15m book on all three venues at once.
// (No stitching: the screener is the cross-venue entry point.)
const res = await fetch("https://api.depthfeed.com/v3/screener/btc/15m", { headers: h }).then(r => r.json());
const { books } = res.data;        // books.polymarket / books.kalshi / books.limitless

تم تصميم DepthFeed ليتم تشغيله بواسطة وكلاء: JSON عادي عبر HTTPS، مفتاح Bearer واحد، رموز خطأ مستقرة، ولا حاجة إلى SDK. يوجد ملخص منتج قابل للقراءة آلياً على /llms.txt.

كأداة استدعاء دالة / نمط MCP

لف أي نقطة نهاية كأداة — API موصوف ذاتيًا بما يكفي بحيث يغطي تعريف عام معظم سير العمل:

json
{
  "name": "depthfeed_get",
  "description": "Query DepthFeed prediction-market order-book data. Paths: /v3/{coin}/markets, /v3/{coin}/markets/{id}/snapshots, /v3/kalshi/markets, /v3/kalshi/{ticker}/snapshots, /v3/kalshi/{ticker}/candles, /v3/limitless/{slug}/snapshots, /v3/{coin}/{spot|futures}/latest. Coins: btc eth sol xrp doge bnb hype.",
  "parameters": {
    "type": "object",
    "properties": { "path": { "type": "string", "description": "GET path under /v3, with query params" } },
    "required": ["path"]
  }
}

جسم الأداة هو طلب GET موثق واحد:

شل
curl "https://api.depthfeed.com{path}" -H "Authorization: Bearer df_your_key"

بيانات حية في الوكلاء

ال تدفق WebSocket يستخدم ثلاث عمليات JSON (subscribe / unsubscribe / ping) ويصادق باستخدام ?api_key= حيث لا يمكن تعيين الرؤوس — من السهل تشغيله من أي بيئة تشغيل. الإطارات تحمل نفس كائنات JSON مثل REST، لذا كود التحليل للوكيل متطابق للتاريخ والحالي.

نصيحة للمساعدين: /v3/whoami يعكس خطة المفتاح، حدود المعدل، ونافذة التاريخ — اتصل به أولاً وقم بالتكوين الذاتي بدلاً من تخمين الحدود.

ما هو مباشر، الأحدث أولاً:

  • منشئ الاستراتيجية. اختبارات رجعية يقودها المساعد وقماش استراتيجية بصري يشتركان في نفس المحرك في /dashboard/backtest.
  • أشرطة الأسعار. /v3/bars يخدم الأسهم، صناديق الاستثمار المتداولة والعملات المشفرة OHLCV ضمن نافذة تاريخ خطتك.
  • تنزيلات البيانات الضخمة. يمكن شراء أيام كاملة بتوقيت UTC من ملفات Parquet المختومة بشكل منفصل عن وصول API.
  • بث مباشر. /v3/stream WebSocket — قنوات دفتر الأوامر والأسعار على كل منصة، التقاط وتسليم حسب المنصة، اشتراكات محكومة بالخطة.
  • منصة Limitless. الأسواق، أحدث دفتر أوامر، ولقطات عمق تاريخية — مع 5 دقائق + 15 دقيقة تم التقاطها مباشرة عبر websocket دفتر الأوامر.
  • Kalshi موسعة. 21 سلسلة لجميع 7 الأصول (15 دقيقة، العتبة، والاتجاه — الأخيران يعملان بالتزامن بالساعة/اليوم/الأسبوع); market_type معرضة وقابلة للتصفية.
  • API كامل الإصدار 3. أسواق Polymarket + لقطات، Binance الفوري/العقود الآجلة، دفعات، ترقيم مؤشرات، تطبيق تاريخ حسب الخطة، استخدام مقنن.
  • HTTPS عام. https://api.depthfeed.com عبر TLS.

التاريخ المتاح يختلف حسب المنصة والسلسلة. تحقق من التاريخ والتغطية واستجابة API لتأكيد الحد الأدنى للأرشيف للفترة المطلوبة. أسئلة أو طلب تعبئة خلفية؟ تواصل معنا.

ابدأ الاختبار الرجعي على عمق حقيقي.