تخطّي إلى المحتوى

للأعمال

وثائق واجهة البيانات البرمجية

كل ما تحتاجه لاستخدام واجهة بيانات GCC Car Deals: المصادقة، ونقاط النهاية مع معلماتها واستجاباتها، والأخطاء والحدود.

البدء السريع

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

العنوان الأساسي: https://gcccardeals.com/api/b2b/v1

curl -s "https://gcccardeals.com/api/b2b/v1/valuation?make=Toyota&model=Camry&year=2019&km=90000" \
  -H "Authorization: Bearer $GCC_API_KEY"

المصادقة

أرسل مفتاحك في ترويسة Authorization رمزَ وصول من نوع Bearer، أو في ترويسة X-API-Key. ولا تضعه أبدًا في عنوان URL، فالعناوين تُسجَّل. المفاتيح سرّية وتُصدر لكل سوق، فلا يمكن استخدام مفتاح سوق للاستعلام عن سوق آخر. تتضمن باقة Starter مفتاحًا للسوق الذي تختاره، وتتضمن باقتا Pro وBusiness مفتاحًا لكل سوق. وتنشئ مفاتيحك من لوحة واجهة البيانات، ويظهر المفتاح كاملًا مرة واحدة فقط.

التقييم

متاح في جميع الباقات

GET https://gcccardeals.com/api/b2b/v1/valuation

القيمة السوقية لسيارة واحدة في تاريخ معين، مع الإعلانات المماثلة التي بُنيت عليها.

المعلمات

التقييم: المعلمات
المعلمةإلزاميةالوصف
makeنعمالماركة كما تكتبها، مثل Toyota. نتعرّف على الأسماء وصيغ كتابتها الشائعة.
modelنعمالطراز، مثل Camry.
yearنعمسنة الصنع، من 1950 إلى السنة القادمة.
trimلافئة التجهيز كما هي مكتوبة على السيارة، مثل GXR. تُضيّق نطاق المقارنة، ولا تغيّر السيارة التي يجري تقييمها.
kmلاقراءة عداد المسافة بالكيلومتر. عند إدخالها تستند القيمة بدرجة أكبر إلى سيارات ذات مسافة مقطوعة مقاربة.
as_ofلاتاريخ التقييم بصيغة YYYY-MM-DD وبالتوقيت العالمي. الافتراضي هو اليوم. ويجب أن يقع بين بداية سجل أسعار السوق واليوم، وضمن نطاق سجل باقتك.
conditionلاused (الافتراضي) أو new.
window_daysلاعدد الأيام التي يُرجَع إليها لجمع السيارات المماثلة، وتُحسب من تاريخ التقييم (ومن اليوم لجدول الأسعار)، من ٣٠ إلى ١٨٠. الافتراضي ٩٠.
comparablesلاعدد الإعلانات المماثلة التي تعيدها الواجهة بوصفها أدلة، من ٠ إلى ٢٥. الافتراضي ١٠.
marketلااختيارية. يجب أن يطابق السوق سوق مفتاحك، وأي اختلاف يُعدّ خطأ.

مثال على الطلب

curl -s "https://gcccardeals.com/api/b2b/v1/valuation?make=Toyota&model=Camry&year=2019&km=90000" \
  -H "Authorization: Bearer $GCC_API_KEY"

مثال على الاستجابة

قيم توضيحية لشرح الصيغة. ليست أسعارًا حالية، والإعلان مثال.

{
  "version": 1,
  "method": "comparable-median-v1",
  "market": "sa",
  "currency": "SAR",
  "as_of": "2026-09-15",
  "window_days": 90,
  "history_since": "2026-06-14",
  "subject": {
    "make": "toyota",
    "model": "camry",
    "model_year": 2019,
    "trim": null,
    "trim_label": null,
    "km": 90000,
    "condition": "used"
  },
  "valuation": {
    "value": 52000,
    "low": 47500,
    "high": 56000,
    "confidence": "high",
    "basis": "model_year",
    "premium_trim_group": null,
    "mileage_matched": true
  },
  "counts": {
    "candidates_total": 31,
    "truncated": false,
    "candidates": 31,
    "distinct_cars": 27,
    "outliers_dropped": 1,
    "pool": 26,
    "used": 13,
    "same_trim": 0
  },
  "year_counts": {
    "2019": 26
  },
  "pool": {
    "median_price": 53000,
    "p25": 48000,
    "p75": 57000,
    "median_km": 96000,
    "sources": 4
  },
  "comparables": [
    {
      "source": "Example marketplace",
      "url": "https://www.example.com/listing/12345",
      "model_year": 2019,
      "trim": null,
      "km": 88000,
      "asking_price": 51500,
      "price_date": "2026-09-10",
      "first_seen": "2026-08-30",
      "last_seen": "2026-09-16",
      "still_listed": true,
      "listed_on_as_of": true,
      "city": "riyadh"
    }
  ],
  "reason": null,
  "quota": {
    "monthly": 3000,
    "used_month": 12,
    "daily": null,
    "used_today": null
  },
  "notes": [
    "Prices are asking prices from the listings we observe, not transaction prices."
  ]
}

حقول الاستجابة

version
إصدار صيغة الاستجابة. تُضاف الحقول داخل الإصدار الواحد ولا تُحذف ولا يُغيَّر اسمها.
method
اسم الطريقة التي أنتجت الإجابة وإصدارها.
market
السوق الذي تخصه الإجابة: qa أو ae أو sa.
currency
عملة جميع الأسعار في الإجابة.
as_of
التاريخ الذي تخصه الإجابة، بالتوقيت العالمي.
window_days
عدد الأيام السابقة للتاريخ as_of التي أُخذت منها السيارات المماثلة.
history_since
أول تاريخ يتوفر منه سجل أسعار لهذا السوق.
subject
السيارة كما فهمناها: make وmodel وmodel_year وtrim وtrim_label وkm وcondition.
valuation.value
القيمة السوقية: السعر المطلوب المعتاد للسيارات المماثلة. تكون null حين لا تتوفر سيارات مماثلة كافية، ويبيّن reason السبب.
valuation.low
الحد الأدنى للنطاق الذي يقع فيه النصف الأوسط من الأسعار المطلوبة للسيارات المماثلة.
valuation.high
الحد الأعلى لذلك النطاق.
valuation.confidence
مقدار الأدلة التي تستند إليها القيمة: high أو medium أو low.
valuation.basis
ما قورنت به السيارة: فئة تجهيزها أو مجموعة فئتها أو سنة صنعها أو نطاق من سنوات الصنع المجاورة.
valuation.premium_trim_group
مجموعة الفئات المؤثرة في السعر التي قُيّمت السيارة على أساسها، حين تنتمي فئتها إلى إحدى هذه المجموعات.
valuation.mileage_matched
تكون true حين تستند القيمة بدرجة أكبر إلى سيارات ذات مسافة مقطوعة مقاربة لمسافة سيارتك.
counts.candidates_total
جميع الإعلانات المطابقة التي رصدناها ضمن النافذة الزمنية.
counts.truncated
تكون true حين يزيد candidates_total على عدد الإعلانات المقروءة.
counts.candidates
الإعلانات المقروءة لهذا التقييم.
counts.distinct_cars
عدد السيارات المختلفة التي تمثلها تلك الإعلانات؛ فالسيارة المعلن عنها أكثر من مرة تُحتسب مرة واحدة.
counts.outliers_dropped
سيارات استُبعدت لأن سعرها غير معتاد في هذه المقارنة.
counts.pool
السيارات المتبقية في المقارنة بعد ذلك.
counts.used
السيارات التي أُخذت منها القيمة.
counts.same_trim
عدد السيارات التي أُخذت منها القيمة وتشترك في الفئة التي أدخلتها.
year_counts
عدد السيارات المماثلة لكل سنة صنع، ويبيّن إلى أي جهة يميل نطاق السنوات.
pool.median_price
وسيط الأسعار المطلوبة في مجموعة المقارنة كلها.
pool.p25
الحد الأدنى للنصف الأوسط من الأسعار المطلوبة في تلك المجموعة.
pool.p75
الحد الأعلى للنصف الأوسط من الأسعار المطلوبة في تلك المجموعة.
pool.median_km
وسيط المسافة المقطوعة للمجموعة بالكيلومتر.
pool.sources
عدد المنصات التي جاءت منها المجموعة.
comparables[].source
المنصة التي وُجد فيها الإعلان.
comparables[].url
رابط الإعلان الأصلي.
comparables[].model_year
سنة صنع السيارة في الإعلان.
comparables[].trim
فئة تجهيز السيارة في الإعلان، حين يذكرها.
comparables[].km
قراءة عداد المسافة في الإعلان بالكيلومتر، حين يذكرها.
comparables[].asking_price
السعر المطلوب في الإعلان بتاريخ price_date بعملة السوق.
comparables[].price_date
تاريخ السعر المطلوب الذي استُخدم في التقييم.
comparables[].first_seen
تاريخ أول رصد لنا للإعلان.
comparables[].last_seen
تاريخ آخر رصد لنا للإعلان.
comparables[].still_listed
ما إذا كان الإعلان لا يزال معروضًا اليوم.
comparables[].listed_on_as_of
ما إذا كان الإعلان معروضًا في تاريخ as_of نفسه.
comparables[].city
المدينة الواردة في الإعلان، حين يذكرها.
reason
حين يتعذّر إعطاء قيمة، سبب ذلك بلغة واضحة. وإلا فهو null.
quota
حصتك وما استهلكته منها: monthly وused_month وdaily وused_today.
notes
ملاحظات بلغة واضحة عن طريقة قراءة الأرقام.

أسعار السوق

متاح في جميع الباقات

GET https://gcccardeals.com/api/b2b/v1/market-prices

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

المعلمات

أسعار السوق: المعلمات
المعلمةإلزاميةالوصف
makeنعمالماركة كما تكتبها، مثل Toyota. نتعرّف على الأسماء وصيغ كتابتها الشائعة.
modelنعمالطراز، مثل Camry.
conditionلاused (الافتراضي) أو new.
window_daysلاعدد الأيام التي يُرجَع إليها لجمع السيارات المماثلة، وتُحسب من تاريخ التقييم (ومن اليوم لجدول الأسعار)، من ٣٠ إلى ١٨٠. الافتراضي ٩٠.
marketلااختيارية. يجب أن يطابق السوق سوق مفتاحك، وأي اختلاف يُعدّ خطأ.

مثال على الطلب

curl -s "https://gcccardeals.com/api/b2b/v1/market-prices?make=Toyota&model=Camry" \
  -H "Authorization: Bearer $GCC_API_KEY"

مثال على الاستجابة

قيم توضيحية لشرح الصيغة. ليست أسعارًا حالية، والإعلان مثال.

{
  "version": 1,
  "method": "market-prices-v1",
  "market": "sa",
  "currency": "SAR",
  "as_of": "2026-09-29",
  "window_days": 90,
  "history_since": "2026-06-14",
  "make": "toyota",
  "model": "camry",
  "condition": "used",
  "cells": [
    {
      "model_year": 2019,
      "trim_family": null,
      "mileage_band": "100-150k",
      "cars": 12,
      "median_price": 52000,
      "p25_price": 48000,
      "p75_price": 56000,
      "median_km": 128000
    }
  ],
  "quota": {
    "monthly": 3000,
    "used_month": 12,
    "daily": null,
    "used_today": null
  },
  "notes": [
    "Prices are asking prices from the listings we observe, not transaction prices."
  ]
}

حقول الاستجابة

version
إصدار صيغة الاستجابة. تُضاف الحقول داخل الإصدار الواحد ولا تُحذف ولا يُغيَّر اسمها.
method
اسم الطريقة التي أنتجت الإجابة وإصدارها.
market
السوق الذي تخصه الإجابة: qa أو ae أو sa.
currency
عملة جميع الأسعار في الإجابة.
as_of
التاريخ الذي تخصه الإجابة، بالتوقيت العالمي.
window_days
عدد الأيام السابقة للتاريخ as_of التي أُخذت منها السيارات المماثلة.
history_since
أول تاريخ يتوفر منه سجل أسعار لهذا السوق.
make
الماركة كما ندرجها.
model
الطراز كما ندرجه.
condition
used أو new.
cells
جدول الأسعار لهذه الماركة والطراز: عنصر لكل سنة صنع وعائلة فئة وشريحة مسافة مقطوعة.
cells[].model_year
سنة الصنع.
cells[].trim_family
عائلة الفئة، أو null للفئات الأساسية.
cells[].mileage_band
شريحة المسافة المقطوعة التي تقع فيها السيارات.
cells[].cars
عدد السيارات المختلفة في المجموعة.
cells[].median_price
السعر المطلوب المعتاد للمجموعة. يكون null إذا كانت المجموعة أصغر من أن تُسعَّر.
cells[].p25_price
الحد الأدنى للنصف الأوسط من الأسعار المطلوبة، أو null.
cells[].p75_price
الحد الأعلى للنصف الأوسط من الأسعار المطلوبة، أو null.
cells[].median_km
وسيط المسافة المقطوعة للمجموعة بالكيلومتر.
quota
حصتك وما استهلكته منها: monthly وused_month وdaily وused_today.
notes
ملاحظات بلغة واضحة عن طريقة قراءة الأرقام.

جدول السوق الكامل (CSV)

متاح في باقتي Pro وBusiness

GET https://gcccardeals.com/api/b2b/v1/market-prices.csv

جدول أسعار السوق كاملًا في ملف CSV واحد، يُحدَّث يوميًا. ويُحتسب التنزيل طلبًا واحدًا.

المعلمات

جدول السوق الكامل (CSV): المعلمات
المعلمةإلزاميةالوصف
marketلااختيارية. يجب أن يطابق السوق سوق مفتاحك، وأي اختلاف يُعدّ خطأ.

مثال على الطلب

curl -s "https://gcccardeals.com/api/b2b/v1/market-prices.csv" \
  -H "Authorization: Bearer $GCC_API_KEY" \
  -o market-prices.csv

يُرسَل الملف تدريجيًا. وإذا انقطع الاتصال قبل اكتماله فاحذفه ولا تعتمد عليه: تبيّن لك ترويسة X-Total-Rows عدد الصفوف المتوقع.

الأعمدة

make
الماركة كما ندرجها.
model
الطراز كما ندرجه.
model_year
سنة الصنع.
trim_family
عائلة الفئة، أو null للفئات الأساسية.
condition
used أو new.
mileage_band
شريحة المسافة المقطوعة التي تقع فيها السيارات.
cars
عدد السيارات المختلفة في المجموعة.
median_price
السعر المطلوب المعتاد للمجموعة. يكون null إذا كانت المجموعة أصغر من أن تُسعَّر.
p25_price
الحد الأدنى للنصف الأوسط من الأسعار المطلوبة، أو null.
p75_price
الحد الأعلى للنصف الأوسط من الأسعار المطلوبة، أو null.
median_km
وسيط المسافة المقطوعة للمجموعة بالكيلومتر.
currency
عملة جميع الأسعار في الإجابة.
computed_on
تاريخ حساب الجدول بالتوقيت العالمي.

الأخطاء

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

الأخطاء
الحالةالرمزالمعنى
400bad_requestإحدى المعلمات مفقودة أو غير صالحة، وتبيّن الرسالة أيّها. ولا يُخصم الطلب من حصتك.
401unauthorizedالمفتاح غير موجود أو غير صحيح الصيغة أو منتهي الصلاحية أو ملغى.
403plan_limitباقتك لا تشمل هذا الطلب، مثل الجدول الكامل في باقة Starter أو تاريخ أبعد من نطاق سجل باقتك. تبيّن الرسالة ما ينقص.
422unknown_vehicleلا نتعرّف على الماركة أو الطراز، وتسرد الإجابة بعض الطرازات التي نعرفها. أما الطراز المدرج لدينا الذي لا تتوفر له سيارات مماثلة ضمن النافذة الزمنية فلا يُعدّ خطأ، بل تأتي الإجابة دون قيمة مع بيان السبب.
429rate_limitedطلبات كثيرة في وقت قصير. انتظر عدد الثواني الوارد في الترويسة Retry-After.
429busyما زال هناك طلب آخر بالمفتاح نفسه قيد التنفيذ. أرسل طلبًا واحدًا في كل مرة.
429quota_exceededاستُنفدت حصتك الشهرية لهذا السوق. تتجدد مع بداية الشهر الميلادي التالي (بالتوقيت العالمي).
503unavailableتعذّرت قراءة البيانات الآن. أعد المحاولة بعد عدد الثواني الوارد في الترويسة Retry-After. وليست هذه إجابة عن السيارة.

الحدود وترويسات الحصة

لكل باقة حصة شهرية من الطلبات في كل سوق تغطيه، تُحتسب من بداية الشهر الميلادي (بالتوقيت العالمي). ويُحتسب كل تقييم أو استعلام عن أسعار السوق أو تنزيل للجدول الكامل طلبًا واحدًا. ويمكن لكل عنوان IP للعميل إرسال ما يصل إلى ١٢٠ طلبًا في الدقيقة، ولا يمكن أن يكون قيد التنفيذ سوى طلب واحد لكل مفتاح في الوقت نفسه.

تُبلغك الإجابة الناجحة بحصتك في ثلاث ترويسات. وهناك ترويستان أخريان تستحقان أن تعرفهما.

الحدود وترويسات الحصة
الترويسةالوصف
X-RateLimit-Limitحصتك لهذا السوق في الفترة الحالية.
X-RateLimit-Remainingالطلبات المتبقية في الفترة بعد هذا الطلب.
X-RateLimit-Resetموعد تجدد الحصة، بصيغة الطابع الزمني Unix بالثواني (بالتوقيت العالمي).
Retry-Afterعند خطأ تجاوز المعدل أو عدم التوفر: الثواني التي تنتظرها قبل إعادة المحاولة.
X-Total-Rowsعند تنزيل CSV: عدد صفوف البيانات في الملف، للتحقق من وصوله كاملًا.

الحدود بحسب الباقة

الحدود بحسب الباقة
الباقةالطلبات لكل سوق شهريًاالأسواقالتقييم بتاريخ سابقالجدول اليومي الكامل (CSV)
Starter٣٠٠سوق واحد تختارهآخر ٩٠ يومًاغير مشمول
Pro٣٬٠٠٠جميع الأسواقآخر ٩٠ يومًامشمول
Business١٥٬٠٠٠جميع الأسواقالسجل كاملًامشمول

سجل الأسعار

يبدأ سجل أسعار كل سوق في تاريخ ثابت. ويمكن طلب تقييم لأي تاريخ (as_of) منذ ذلك اليوم، ضمن نطاق سجل باقتك.

سجل الأسعار
السوقالسجل منذ
قطر٧ يونيو ٢٠٢٦
الإمارات١٢ يونيو ٢٠٢٦
السعودية١٤ يونيو ٢٠٢٦

احصل على مفتاح

التسجيل والدفع ومفاتيح الواجهة كلها عبر dealers.gcccardeals.com: اشترك، ثم أنشئ مفتاحًا لكل سوق من لوحة واجهة البيانات.

جرّب شكل البيانات قبل الاشتراك: ملف CSV مجاني من جداول الأسعار في السعودية.

اقرأ شروط واجهة البيانات