الانتقال إلى المحتوى
رينيوبل فيجن
EN

المطورون

البيانات خلف اللوحات، لبرمجياتك الخاصة.

كل سجل وسلسلة ورقم محسوب تقرؤه اللوحات يُقدَّم من هذا النطاق بصيغة JSON، وعبر بروتوكول سياق النموذج لمساعدي الذكاء الاصطناعي. لا تحتاج معظم النقاط إلى مفتاح، أما طبقات أطلس الطاقة فمجانية بالعضوية وتحتاج إلى مفتاح عضو. ويضيف المفتاح المجاني حصة يومية خاصة به وعدًّا لما استُخدم منها.

منصة تجربة الواجهة البرمجية

استدعِ أي نقطة وصول مباشرةً، واطّلع على ما تعيده.

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

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

GET/api/data/projects/sudair-pv-1500-mw
محسوبةgetProject
في المسارمطلوب

يبقى المفتاح في هذه الصفحة، أو في هذه النافذة إن اخترت ذلك، ولا يُرسل إلا إلى الواجهة البرمجية لهذا الموقع. وتقرأ الأمثلة البرمجية المفتاح من RV_API_KEY ولا تتضمنه أبدًا.

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

curl -sS 'https://renewablevision.com.sa/api/data/projects/sudair-pv-1500-mw'

تُرسل الطلبات إلى هذا الموقع وحده. وتُحتسب الطلبات دون مفتاح من الحصة المتاحة لعنوانك خلال عشر دقائق، وتُحتسب مع المفتاح من حصته اليومية، كما تبيّن الترويسات.

نظرة عامة

ما تقدّمه الواجهة.

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

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

دون مفتاح

تجيب كل نقطة أي طالب كما كانت دائمًا، عدا طبقات أطلس الطاقة. وتُحدّ الطلبات لكل عنوان، في الذاكرة، على فترات مدتها عشر دقائق. وقد تُقدَّم الاستجابات من ذاكرة الحافة المؤقتة.

مع مفتاح مجاني

حصة يومية لا يشاركك فيها أي طالب آخر خلف العنوان نفسه، وعدّاد لطلبات اليوم في صفحة حسابك، واستجابات تصل دائمًا من الخادم الأصلي. وتُصدَر المفاتيح لأعضاء العضوية المجانية.

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

المصادقة

المفتاح اختياري لمعظم النقاط، ويُرسَل في إحدى ترويستين.

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

إحدى الترويستين

Authorization: Bearer rv_live_…
X-API-Key: rv_live_…

طبقات أطلس الطاقة تحتاج إلى مفتاح عضو

طبقة المشاريع في الأطلس (/api/data/atlas)، وشبكة الموارد (/api/data/resource/grid)، وسلاسل دول الخليج (/api/data/gcc-series)، وملف متتبّع المملكة (/data/saudi-renewables.json)، والإنتاج التقديري لكل مشروع متتبَّع (/api/data/project-output، وسجلات PVGIS في /api/data/integrations/pvgis)، والملفات الكاملة التي تحملها (gcc-renewables وsaudi-captive-solar وresource-grid وgcc-series وproject-output)، وأدوات MCP التي تقرؤها، مجانيةٌ بالعضوية. أرسل مفتاح عضو، أو استدعِها من الموقع وأنت مسجّل الدخول. ودون أيٍّ منهما تكون الإجابة 401 membersOnly، مع السبب بالعربية والإنجليزية ورابط للانضمام.

المفتاح المُرسَل يجب أن يكون صالحًا

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

احفظ المفاتيح على الخادم. فالمفتاح المكتوب في شيفرة المتصفح يطّلع عليه كل من يفتح الصفحة.

حدود الطلبات

الحصص بحسب الطالب.

تحافظ الحدود على إتاحة الخدمة لكل طالب. تُحدّ الطلبات دون مفتاح لكل عنوان على مدى عشر دقائق، وتُحدّ طلبات المفتاح لكل يوم بالتوقيت العالمي.

الطالبالنقاطالحصةأساس العدّ
دون مفتاح/api/status, /api/data/*, /api/brief*, /api/reports*300 طلب كل 10 دقائقالعنوان، لكل نسخة من الخادم
دون مفتاح/api/search240 طلب كل 10 دقائقالعنوان، لكل نسخة من الخادم
دون مفتاح/api/mcp300 طلب كل 10 دقائقالعنوان، لكل نسخة من الخادم
مفتاح مجانيكل النقاط المحسوبة5,000 طلب لكل يوم بالتوقيت العالميالمفتاح، عبر كل النسخ
مفتاح مرخّصكل النقاط المحسوبةيحددها الترخيصالمفتاح، عبر كل النسخ

كل استجابة محسوبة تبيّن موقعك من الحصة

X-RateLimit-Limit
الحصة في الفترة الحالية.
X-RateLimit-Remaining
الطلبات المتبقية بعد هذا الطلب.
X-RateLimit-Reset
موعد بدء الفترة من جديد بثواني حقبة يونكس. وللمفتاح: منتصف الليل التالي بالتوقيت العالمي.
Retry-After
مع الرمز 429 فقط: الثواني اللازمة قبل إعادة المحاولة.

عند تجاوز الحد

تكون الإجابة برمز 429 مع نص JSON يسمّي الحد: نطاقه وفئته والحصة والفترة وموعد بدئها من جديد.

HTTP/1.1 429 Too Many Requests

{
  "ok": false,
  "error": "tooManyRequests",
  "message": "This key has made its 5,000 requests for the day. The count starts again at 00:00 UTC (2026-09-25T00:00:00.000Z).",
  "limit": {
    "scope": "key",
    "tier": "free",
    "requests": 5000,
    "window": "day",
    "windowSeconds": 86400,
    "resetAt": "2026-09-25T00:00:00.000Z"
  },
  "retryAfter": 3600,
  "docs": "https://renewablevision.com.sa/en/developers#limits"
}

قد تُقدَّم الاستجابات دون مفتاح من ذاكرة الحافة المؤقتة، فلا تُعَدّ ولا تُحدَّث ترويساتها. أما استجابات المفتاح فتُعلَّم خاصةً وتصل دائمًا إلى الخادم الأصلي، فيُعَدّ كل منها.

النقاط

كل نقطة عامة، من وثيقة OpenAPI.

يُعرض هذا المرجع من وثيقة OpenAPI 3.1 نفسها التي تقرؤها أدوات توليد الشيفرة. استخدمها لتوليد عميل برمجي، أو استوردها في أداة واجهات برمجية.

وثيقة OpenAPI 3.1 · https://renewablevision.com.sa/api/openapi.json

المصادر المدمجة · كل مصدر خارجي مع ترخيصه ووتيرة تحديثه وحالته.

البيانات

النقطةما تُعيدهالمعاملاتحقول الاستجابة
GET /api/status

محسوبة

حداثة كل سلسلة وسجل منسوخ

  • endpoints

checkedAt, sources, stale, degraded, series, registers, summary, feeds, endpoints, historySince, method

حقول الاستشهاد: series[].publisher, registers[].publisher, checkedAt

GET /api/data/portal/{series}

محسوبة

سلسلة منسوخة واحدة: بياناتها الوصفية وكل نقاطها

  • series (إلزامي)

series, points

حقول الاستشهاد: series.publisher, series.source_url, series.licence, series.last_success_at

GET /api/data/registers/{register}

محسوبة

سجل رسمي كما نُسخ آخر مرة، أو كما كان في يوم سابق

  • register (إلزامي)
  • asOf

register, rows, vintage

حقول الاستشهاد: register.publisher, register.source_url, register.last_success_at, vintage.asOf

GET /api/data/projects/{id}

محسوبة

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

  • id (إلزامي)
—

حقول الاستشهاد: source, asOf, citation, note

GET /api/data/companies/{company}

محسوبة

مطوّر أو مساهم واحد، وكل مشروع مرصود يرد فيه اسمه

  • company (إلزامي)
—

حقول الاستشهاد: source, asOf, citation, note

GET /api/data/gcc-projects

محسوبة

متتبع الطاقة المتجددة في دول الخليج: مشاريع بحجم المرافق في خمس دول خليجية

  • country
  • technology
  • status
—

حقول الاستشهاد: source, asOf, citation, note, projects[].sources

GET /api/data/gcc-projects/{id}

محسوبة

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

  • id (إلزامي)
—

حقول الاستشهاد: source, asOf, citation, note, project.sources

GET /api/data/changes

محسوبة

سجل التغيّرات: كل تغيّر على مستوى الصف، الأحدث أولًا

  • since
  • domain
  • source
  • limit
  • before

count, nextBefore, changes

حقول الاستشهاد: changes[].sourceId, changes[].occurredOn

GET /api/data/due

محسوبة

ما يُتوقَّع تحديثه تاليًا، وما تأخر

  • days

asOf, windowDays, overdue, items, note

حقول الاستشهاد: items[].publisher, asOf

GET /api/data/power-balance

محسوبة

القدرة التشغيلية مقابل المشاريع المتعاقد عليها ومستهدف 2030

  • asOf

month, operational, construction, tendered, trackedMw, target, system, reconciliation, stageOverrides, change, comparedWith, vintage, sources, method

حقول الاستشهاد: sources[], method, month, vintage.computedAt

GET /api/data/oil-model

محسوبة

نموذج توازن النفط على المدخلات الحية

  • scenario
  • horizon

asOf, scenario, levers, sources, context, calibration, summary, months, method

حقول الاستشهاد: sources[], method, asOf

GET /api/data/fleet-outlook

محسوبة

الأسبوع المقبل للأسطول الشمسي السعودي المتتبَّع

لا شيء

asOf, stale, days, plants, capacityMw, expectedGwh, normalGwh, deltaPct, daily, heat, sources, method

حقول الاستشهاد: sources[], method, asOf

GET /api/data/resource

محسوبة

موارد الشمس والرياح لخلية واحدة بدقة 0.5° من شبكة NASA POWER

  • point
  • cell
  • project
—

حقول الاستشهاد: source, asOf, citation, note, licence, acknowledgement, period

GET /api/data/resource/grid

محسوبة

شبكة موارد NASA POWER كاملةً، وهي أساس أطلس الطاقة (للأعضاء)

لا شيء
—

حقول الاستشهاد: source, asOf, citation, note, meta.licence, meta.acknowledgement

GET /api/data/gcc-series

محسوبة

سلاسل بيانات لدول الخليج الست: القدرة والتوليد والطلب والانبعاثات (للأعضاء)

  • metric
  • country
—

حقول الاستشهاد: source, asOf, citation, note, metrics[].source

GET /api/data/news

محسوبة

عناوين إخبارية عن الطاقة في دول الخليج، من خلاصات الناشرين ومن GDELT

  • project
  • company
  • topic
  • limit
—

حقول الاستشهاد: source, asOf, citation, note, headlines[].url, headlines[].domain

GET /api/data/atlas

محسوبة

طبقة المشاريع في أطلس الطاقة، مُحدَّدة على مستوى البلدة (للأعضاء)

  • segment

projects, undated, storage, dataCentres, sources

حقول الاستشهاد: source, asOf, citation, note, sources, storage[].reports, storage[].sources

GET /api/data/projects

محسوبة

كل المشاريع من كل المتتبعات، مع التصفية بأي سمة (للأعضاء)

  • place
  • sector
  • tech
  • stage
  • commitment
  • cod
  • fid
  • date
  • investment
  • capacity
  • unit
  • actor
  • developer
  • programme
  • topic
  • source
  • verification
  • q
  • sort
  • format
  • limit
  • offset
—

حقول الاستشهاد: source, asOf, citation, note, projects[].provenance

GET /api/data/largest

محسوبة

أكبر مشاريع الطاقة الشمسية وطاقة الرياح والمشاريع الهجينة في المملكة في ملف Excel (للأعضاء)

  • l
—

حقول الاستشهاد: Source sheet

GET /api/tenders/xlsx

محسوبة

مناقصات الطاقة والمياه في ملف Excel (للأعضاء)

  • l
—

حقول الاستشهاد: About sheet

GET /api/data/integrations

محسوبة

جميع المصادر الخارجية التي يقرأ منها الموقع، مع ترخيص كل مصدر وحالته

لا شيء
—

حقول الاستشهاد: source, asOf, citation

GET /api/data/integrations/{source}

محسوبة

سجلات مصدر واحد من المصادر المدمجة، مع عوامل التصفية وترخيص المصدر الأصلي

  • source (إلزامي)
  • country
  • year
  • sector
  • indicator
  • product
  • partner
  • topic
  • city
  • company
  • format
—

حقول الاستشهاد: source, asOf, citation, note, licence

GET /api/data/project-output

محسوبة

الإنتاج السنوي التقديري لكل مشروع شمسي متتبَّع، منمذجًا بأداة PVGIS (للأعضاء)

  • tracker
  • stage
  • country
  • modelled
  • format
—

حقول الاستشهاد: source, asOf, citation, note, licence

GET /api/data/project-output/{id}

محسوبة

الإنتاج السنوي التقديري لمشروع واحد، مع إجماليات المتتبع حسب المرحلة

  • id (إلزامي)
—

حقول الاستشهاد: source, asOf, citation, note, licence

GET /api/data/trade

محسوبة

واردات دول الخليج من معدات الطاقة النظيفة حسب المنتج والسنة والشريك

  • country
  • product
  • hs
  • partner
  • year
—

حقول الاستشهاد: source, asOf, citation, note, licence

GET /api/data/equipment-flows

محسوبة

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

  • country
  • partner
  • product
  • year
  • format
—

حقول الاستشهاد: source, asOf, citation, note, licence

GET /api/data/emissions

محسوبة

انبعاثات الغازات الدفيئة في دول الخليج حسب المصدر والدولة والقطاع والسنة

  • source
  • country
  • sector
  • year
  • format
—

حقول الاستشهاد: source, asOf, citation, note, licence

GET /api/data/oil-strategy/outlook

محسوبة

توقعات أسعار النفط: مسار النموذج ونطاق عدم اليقين والمقارنات المرجعية

لا شيء
—

حقول الاستشهاد: source, asOf, citation, note

GET /api/data/oil-strategy/presets

محسوبة

مقارنة خمسة مسارات للإنتاج

  • shocks
—

حقول الاستشهاد: source, asOf, citation, note

GET /api/data/oil-strategy/scenario

محسوبة

مسار إنتاج جاهز واحد بكامل تفاصيله

  • preset
  • shocks
  • format
—

حقول الاستشهاد: source, asOf, citation, note

POST /api/data/oil-strategy/scenario

محسوبة

تشغيل سيناريو إنتاج مع محاكاة مونت كارلو والحد الكفء

  • format
  • preset (في نص الطلب)
  • path (في نص الطلب)
  • params (في نص الطلب)
  • shocks (في نص الطلب)
  • monteCarlo (في نص الطلب)
  • frontier (في نص الطلب)
—

حقول الاستشهاد: source, asOf, citation, note

GET /api/data/oil-strategy/backtest

محسوبة

تقييم النموذج قصير الأجل مقابل الأسعار الفعلية

لا شيء
—

حقول الاستشهاد: source, asOf, citation, note

GET /api/data/bulk

محسوبة

كل مجموعات البيانات، وما يمكن تنزيله منها كاملًا

  • sizes

weight, available, datasets

حقول الاستشهاد: source, asOf, citation, datasets[].licence, datasets[].asOf

GET /api/data/bulk/{file}

محسوبة

مجموعة بيانات كاملة في ملف CSV أو JSON واحد، مع بيان تراخيصها

  • file (إلزامي)

dataset, citation, manifest, excluded, count, rows

حقول الاستشهاد: dataset.licence, dataset.asOf, manifest[].licence, manifest[].attribution, citation

المنشورات

النقطةما تُعيدهالمعاملاتحقول الاستجابة
GET /api/brief

محسوبة

كل موجز أسبوعي منشور، الأحدث أولًا

  • limit

count, briefs

حقول الاستشهاد: briefs[].url, briefs[].issued

GET /api/brief/latest

محسوبة

الموجز الأسبوعي الحالي

  • locale

week, issued, locale, subject, preheader, blocks, social, summary, url, api

حقول الاستشهاد: url, issued, week

GET /api/brief/{week}

محسوبة

موجز أسبوع واحد بعنوانه الدائم

  • week (إلزامي)
  • locale

week, issued, locale, subject, preheader, blocks, social, summary, url, api

حقول الاستشهاد: url, issued, week

GET /api/reports

محسوبة

كل تقرير منشور، الأحدث إصدارًا أولًا

  • limit

count, reports

حقول الاستشهاد: reports[].url, reports[].edition, reports[].contentUpdated

GET /api/reports/{id}

محسوبة

تقرير واحد: النص التعريفي والتعريفات المقتبسة والمصادر وصفحات المعاينة

  • id (إلزامي)

report

حقول الاستشهاد: report.url, report.sources, report.definitions, report.contentUpdated

البحث

النقطةما تُعيدهالمعاملاتحقول الاستجابة
GET /api/search

محسوبة

نتائج مرتبة عبر مجموعات البيانات والسلاسل والتحليلات والمشاريع

  • q (إلزامي)
  • locale

groups

حقول الاستشهاد: groups[].items[].href

MCP

النقطةما تُعيدهالمعاملاتحقول الاستجابة
POST /api/mcp

محسوبة

بروتوكول سياق النموذج على نقل Streamable HTTP

  • jsonrpc (في نص الطلب، إلزامي)
  • id (في نص الطلب)
  • method (في نص الطلب، إلزامي)
  • params (في نص الطلب)
—

حقول الاستشهاد: result.structuredContent.source, result.structuredContent.asOf, result.structuredContent.citation

GET /api/mcp

غير محسوبة

لا يُفتح بث أحداث من الخادم

لا شيء
—
DELETE /api/mcp

غير محسوبة

إنهاء الجلسة

لا شيء
—

البطاقات والخصائص

النقطةما تُعيدهالمعاملاتحقول الاستجابة
GET /api/cards/{card}

غير محسوبة

بطاقة مشاركة بمقاس 1200 × 630 بالأرقام الحالية

  • card (إلزامي)
  • locale
—
GET /api/properties

غير محسوبة

خصائص ديناميكا حرارية من معادلات الحالة المرجعية في CoolProp

  • op (إلزامي)
  • fluid
  • T
  • P
  • pathway
—

نقاط المطورين

النقطةما تُعيدهالمعاملاتحقول الاستجابة
GET /api/openapi.json

غير محسوبة

وثيقة OpenAPI 3.1 لكل النقاط العامة

لا شيء
—
POST /api/licence-requests

غير محسوبة

طلب ترخيص بيانات

  • name (في نص الطلب، إلزامي)
  • email (في نص الطلب، إلزامي)
  • organisation (في نص الطلب، إلزامي)
  • role (في نص الطلب)
  • licence_type (في نص الطلب، إلزامي)
  • datasets (في نص الطلب)
  • use_case (في نص الطلب، إلزامي)
  • language (في نص الطلب)
  • consent (في نص الطلب، إلزامي)

message

GET /api/postman.json

غير محسوبة

هذه الواجهة البرمجية في صورة مجموعة Postman مولّدة من وثيقة OpenAPI

لا شيء
—

نماذج الموقع

تخدم نماذج الموقع صفحات هذا الموقع نفسه، وتُدرج هنا لتكتمل الوثيقة. ولا تقبل مفتاحًا، وليست جزءًا من واجهة البيانات.

النقطةما تُعيدهالمعاملاتحقول الاستجابة
POST /api/privacy-requests

غير محسوبة

تقديم طلب وفق نظام حماية البيانات الشخصية

  • type (في نص الطلب، إلزامي)
  • email (في نص الطلب، إلزامي)
  • details (في نص الطلب)
  • language (في نص الطلب)
  • consent (في نص الطلب، إلزامي)

message

POST /api/inquiries

غير محسوبة

نموذج التواصل

لا شيء

message

POST /api/coverage-requests

غير محسوبة

طلب تغطية بيانات لا يغطيها الموقع بعد

  • kind (في نص الطلب، إلزامي)
  • slug (في نص الطلب)
  • title (في نص الطلب)
  • details (في نص الطلب)
  • sectors (في نص الطلب)
  • places (في نص الطلب)
  • topics (في نص الطلب)
  • urgency (في نص الطلب)
  • attribution (في نص الطلب)
  • locale (في نص الطلب)

message

POST /api/coverage-requests/{id}/vote

غير محسوبة

التصويت لطلب على لوحة طلبات البيانات

  • id (إلزامي)
  • voted (في نص الطلب)

voted, votes

POST /api/coverage-requests/{id}/brief

غير محسوبة

طلب أحد طلبات اللوحة موجزًا مخصصًا

  • id (إلزامي)
  • note (في نص الطلب)
  • locale (في نص الطلب)

already

POST /api/subscribe

غير محسوبة

الانضمام إلى قائمة مواد RV Plus وRV X بتأكيد مزدوج

لا شيء

message

GET /api/subscribe/confirm

غير محسوبة

رابط التأكيد: ينقل الزائر إلى صفحة التأكيد

لا شيء
—
POST /api/subscribe/confirm

غير محسوبة

تأكيد الاشتراك من صفحة التأكيد

لا شيء
—
GET /api/subscribe/unsubscribe

غير محسوبة

رابط إلغاء الاشتراك: يفتح الصفحة التي تؤكد الإزالة

لا شيء
—
POST /api/subscribe/unsubscribe

غير محسوبة

مغادرة القائمة من الصفحة، أو بنقرة واحدة من برنامج البريد

لا شيء

message

GET /api/subscribe/weekly

غير محسوبة

ما إذا كان العضو المسجّل دخوله يستلم الموجز الأسبوعي

لا شيء

message

POST /api/subscribe/weekly

غير محسوبة

الموجز الأسبوعي بحقل واحد: تأكيد مزدوج لعنوان بريد إلكتروني، أو نقرة واحدة من العضو على عنوانه

لا شيء

message

POST /api/experts/read

غير محسوبة

قراءة السيرة الذاتية لعضو مسجّل الدخول (PDF) وتعبئة حقول الطلب منها

لا شيء

message

POST /api/experts/apply

غير محسوبة

التقدّم بطلب بصفة متخصص (عضو مسجّل الدخول)

لا شيء

message

POST /api/experts/briefs

غير محسوبة

إرسال سؤال إلى محللي رينيوبل فيجن

لا شيء

message

POST /api/ask

غير محسوبة

RV Analyst: إجابة عن سؤال من بيانات هذا الموقع (للأعضاء)

لا شيء
—
GET /api/assistant

غير محسوبة

جاهزية مساعد الموقع للإجابة الآن (docs/ASSISTANT.md)

لا شيء

ready

POST /api/assistant

غير محسوبة

مساعد الموقع: إجابة عن سؤال الزائر من صفحات الموقع وبياناته

لا شيء
—
GET /api/discover

غير محسوبة

بطاقات «اكتشف»: بطاقات لمتتبعات الموقع وخرائطه ومشاريعه، مع أرقام حية

  • locale
  • path
—
GET /api/materials/{id}

غير محسوبة

ملف للأعضاء: تقرير بصيغة PDF أو حزمة بيانات

  • id (إلزامي)
—

أمثلة برمجية

طلب واحد بثلاث طرق.

يجلب كل مثال أحدث موجز أسبوعي باستخدام مفتاح ويطبع ترويسات حدود الطلبات. احذف سطر المفتاح لإرسال الطلب دون مفتاح.

curl

curl -i https://renewablevision.com.sa/api/brief/latest \
  -H "Authorization: Bearer $RV_API_KEY"

Python

import os
import requests

res = requests.get(
    "https://renewablevision.com.sa/api/brief/latest",
    headers={"Authorization": f"Bearer {os.environ['RV_API_KEY']}"},
    timeout=30,
)
res.raise_for_status()
brief = res.json()
print(brief["subject"], brief["url"])
print(res.headers["X-RateLimit-Remaining"], "requests left today")

JavaScript

const res = await fetch('https://renewablevision.com.sa/api/brief/latest', {
  headers: { Authorization: `Bearer ${process.env.RV_API_KEY}` }
});
if (res.status === 429) {
  const { limit, retryAfter } = await res.json();
  throw new Error(`Limit of ${limit.requests} per ${limit.window}; retry in ${retryAfter} s`);
}
const brief = await res.json();
console.log(brief.subject, brief.url);
console.log(res.headers.get('X-RateLimit-Remaining'), 'requests left today');

المكتبات البرمجية

مكتبتان للغتي TypeScript وPython، مولّدتان من وثيقة OpenAPI.

دالة محددة الأنواع لكل عملية، بالأسماء نفسها في اللغتين، مع ما يحتاجه أي عميل منضبط: الانتظار بعد الاستجابة 429 قبل إعادة المحاولة، وقراءة سجل التغيّرات صفحة بعد صفحة، والتحقق من الملفات الكاملة بوسم ETag، والتحقق من تواقيع الإشعارات الفورية.

TypeScript

دون أي اعتماديات خارجية: تستخدم fetch المدمجة في Node 18 وما بعده وDeno وBun والمتصفح، مع أنواع لمعاملات كل عملية.

الحزمة: @renewable-vision/sdk · المصدر: sdk/typescript

import { RenewableVision, verifyWebhook } from '@renewable-vision/sdk';

const rv = new RenewableVision({ apiKey: process.env.RV_API_KEY });

// Typed calls, one per operation, with rate-limit-aware retry built in.
const { data, rateLimit } = await rv.getProject({ id: 'sudair-pv-1500-mw' });
console.log(data.project, rateLimit.remaining);

// Every page of the change ledger since a date.
for await (const change of rv.paginateChanges({ since: '2026-09-01' })) {
  console.log(change.entityName, change.change);
}

// A whole dataset, revalidated with its ETag.
const file = await rv.downloadBulk('gcc-renewables', 'csv');

Python

مبنية على مكتبة requests، ومحددة الأنواع عبر TypedDict وdataclasses، لإصدار Python 3.9 وما بعده.

الحزمة: renewable-vision · المصدر: sdk/python

import os
from renewable_vision import RenewableVision, verify_webhook

rv = RenewableVision(api_key=os.environ.get("RV_API_KEY"))

res = rv.get_project(id="sudair-pv-1500-mw")
print(res.data["project"], res.rate_limit.remaining)

for change in rv.paginate_changes(since="2026-09-01"):
    print(change["entityName"], change["change"])

file = rv.download_bulk("gcc-renewables", "csv")
  • تُعاد محاولة الطلب بعد الاستجابة 429 عقب المدة التي تحددها ترويسة Retry-After، حتى ثلاث مرات، وتُعاد محاولة الاستجابات 5xx بعد مهلة قصيرة متزايدة.
  • يُقرأ سجل التغيّرات صفحة بعد صفحة بمؤشر تاريخي، فلا يحتاج التاريخ الطويل إلى أي متابعة يدوية.
  • تتحقق الدالتان verifyWebhook وverify_webhook من ترويسة RV-Signature والطابع الزمني وكل قيمة v1 بمقارنة ثابتة الزمن.
  • الإصدار الأول على npm وPyPI قيد الإعداد، وتُستخدم الاستدعاءات كما هو معروض هنا.

مجموعة Postman · وثيقة OpenAPI 3.1

الإشعارات الفورية

طلب POST موقّع إلى عنوانك عند حدوث أي تغيير.

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

الحدثيُرسل عندما
project.stage_changedتغيّرت مرحلة مشروع في أحد السجلات أو المتتبعات.
project.addedأُضيف مشروع إلى أحد السجلات أو المتتبعات.
project.updatedتغيّرت سعة مشروع أو أحد تواريخه أو إدراجه.
dataset.refreshedحُدّث سجل أو سلسلة أو متتبع أو مصدر من جهته الناشرة.
news.mentionذكر عنوان إخباري مشروعًا أو شركة من المتتبَّعة.
brief.publishedنُشر الموجز الأسبوعي.

التوقيع والحماية من إعادة الإرسال

تحمل الترويسة RV-Signature القيمة t، وهي وقت التوقيع بتوقيت يونكس، والقيمة v1، وهي بصمة HMAC-SHA256 للطابع الزمني متبوعًا بنقطة ثم المتن الخام، باستخدام مفتاحك السري. أعد حسابها على البايتات نفسها التي استلمتها، وقارن بمقارنة ثابتة الزمن. وارفض أي طابع زمني يبتعد عن ساعتك أكثر من 300 ثانية، واحتفظ بمعرّفات الأحداث التي عالجتها، لأن إعادة المحاولة تحمل المعرّف نفسه.

RV-Signature: t=1790236800,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd

التسليم وإعادة المحاولة

أجب بأي رمز 2xx خلال عشر ثوانٍ، وإلا أُعيدت المحاولة بعد 1 د، 5 د، 30 د، 2 س، 12 س، أي 6 محاولات في المجموع. وإذا لم تُقبل المحاولة الأخيرة يُوقف الاشتراك ويُبلَّغ صاحب المفتاح بالبريد الإلكتروني. أما الاستجابة 410 Gone فتوقفه فورًا. ويعرض السجل في صفحة مفاتيح الواجهة البرمجية كل محاولة: رمز الحالة وزمن الاستجابة وفئة المشكلة، دون أي نص من استجابتك.

بعد تجديد المفتاح السري يستمر المفتاح السابق في التوقيع إلى جانب الجديد مدة يوم، فتحمل الترويسة قيمتين من نوع v1، ويمكنك قبول أيٍّ منهما خلال الانتقال.

يجب أن يستخدم عنوان الاستقبال بروتوكول https على عنوان عام. وتُرفض العناوين الخاصة وعناوين الاسترجاع المحلي والعناوين المحلية للوصلة عند حفظ الاشتراك، ثم عند اتصال كل تسليم، ولا تُتّبع عمليات إعادة التوجيه.

التحقق عبر مكتبة TypeScript

import { verifyWebhook } from '@renewable-vision/sdk';

// Express, with the raw body kept: the signature is over the exact bytes.
app.post('/hooks/rv', express.raw({ type: 'application/json' }), async (req, res) => {
  const ok = await verifyWebhook({
    payload: req.body,
    header: req.get('RV-Signature'),
    secret: process.env.RV_WEBHOOK_SECRET
  });
  if (!ok) return res.sendStatus(400);
  const event = JSON.parse(req.body);
  if (alreadySeen(event.id)) return res.sendStatus(200); // retries reuse the id
  queue(event);
  res.sendStatus(204);
});

التحقق عبر المكتبة القياسية في Python

import hmac, hashlib, time

def verify(header: str, body: bytes, secret: str, tolerance: int = 300) -> bool:
    parts = [p.split("=", 1) for p in header.split(",") if "=" in p]
    t = next((int(v) for k, v in parts if k == "t"), None)
    sigs = [v for k, v in parts if k == "v1"]
    if t is None or abs(time.time() - t) > tolerance:
        return False
    expected = hmac.new(secret.encode(), f"{t}.".encode() + body, hashlib.sha256).hexdigest()
    return any(hmac.compare_digest(expected, s) for s in sigs)

التنزيل الكامل

مجموعات بيانات كاملة بصيغتي CSV وJSON، حيث تسمح تراخيصها.

يمكن تنزيل 12 من أصل 35 مجموعة بيانات كاملة. ويحمل كل ملف بيانًا للتراخيص يسمّي الجهة الناشرة والترخيص لكل مجموعة من الأعمدة، ووسم ETag للتحقق من التحديث، ويُحتسب بعدد 10 طلبات، بينما تُحتسب الاستجابة 304 بطلب واحد.

curl -sS -D - -o global-ccus.csv https://renewablevision.com.sa/api/data/bulk/global-ccus.csv
# later: ask again with the ETag; 304 costs one request, not 10
curl -sS -D - -H 'If-None-Match: "<etag>"' https://renewablevision.com.sa/api/data/bulk/global-ccus.csv

جميع مجموعات البيانات وأحجامها وتراخيصها

MCP

اربط مساعدًا ذكيًا.

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

POST https://renewablevision.com.sa/api/mcp

إعداد العميل

{
  "mcpServers": {
    "renewable-vision": {
      "type": "http",
      "url": "https://renewablevision.com.sa/api/mcp",
      "headers": {
        "Authorization": "Bearer rv_live_…"
      }
    }
  }
}

لاحتساب طلبات المساعد على مفتاحك، أضف المفتاح في ترويسة Authorization ضمن إعداد العميل. ودونه تجيب النقطة وفق الحد المتاح لكل عنوان، وترفض الأدوات التي تقرأ طبقات أطلس الطاقة (search_projects على متتبّعات المملكة والطاقة الشمسية المخصصة ودول الخليج ومراكز البيانات، وgcc_series، وproject_output_estimate دون تحديد مشروع)، لأنها مجانية بالعضوية.

سجل الاستكشاف: /.well-known/mcp/server.json

ذكر المصدر

اذكر الجهة الناشرة ورينيوبل فيجن.

لكل رقم مصدران يُذكران: الجهة التي نشرته، وهذه المنصة التي جمعته أو نسخته أو حسبته.

  1. اذكر الجهة الناشرة الأصلية الواردة في الاستجابة، ورينيوبل فيجن، مع الصفحة التي تشير إليها الاستجابة.
  2. اذكر تاريخ سريان الرقم كما يرد في الاستجابة، لا تاريخ جلبه.
  3. أبقِ الرقم المنمذج موصوفًا بأنه منمذج، إذ تبيّن الاستجابة الأرقام المنمذجة.
  4. تحتفظ سلاسل الأطراف الثالثة بتراخيص جهاتها الناشرة. وحيث تقصر شروط المصدر الاستخدام على الأغراض غير التجارية، تسري الشروط نفسها على أي إعادة استخدام.
  5. تجميعات رينيوبل فيجن مرخّصة بموجب CC BY-NC 4.0 ما لم ينص ترخيص على خلاف ذلك.

التراخيص وشروط المصادر · شروط الاستخدام

سجل الإصدارات

ما تغيّر، ومتى.

تُضاف النقاط دون تغيير ما نُشر منها. ويُدرج هنا كل تغيير قد يلاحظه المستخدم.

القيود نفسها، مع سائر تغييرات المنصة، في سجل التحديثات

التاريخالتغييرالنقاط
2026-10-01متاحة للأعضاء فقط بدءًا من هذا الإصدار: `/api/data/project-output` (بصيغتي JSON وCSV)، و`/api/data/integrations/pvgis`، والملف الكامل `project-output`، وأداة MCP ‏project_output_estimate دون تحديد `project`. ويحصل مفتاح API لعضو أو جلسة عضو مسجّل الدخول على الإجابة نفسها كما كانت، وتكون إجابة غيرهما 401 `membersOnly`. ويبقى `/api/data/project-output/{id}` وproject_output_estimate مع تحديد `project` متاحَين للجميع. ولم تتغير بنية الاستجابات./api/data/project-output, /api/data/integrations/{source}, /api/mcp
2026-09-28متاحة للأعضاء فقط بدءًا من هذا الإصدار: بمفتاح API لعضو، أو بجلسة عضو مسجّل الدخول في الموقع. ودون أيٍّ منهما تكون الإجابة 401 `membersOnly` مع السبب بالعربية والإنجليزية ورابط للانضمام، ويُجاب المفتاح الذي تعذّر التحقق منه برمز 503 `keyUnverified`. وينطبق ذلك على /data/saudi-renewables.json وعلى أداتَي MCP ‏search_projects (متتبّعات المملكة والطاقة الشمسية المخصصة ودول الخليج ومراكز البيانات) وgcc_series. ولم تتغير بنية الاستجابات./api/data/atlas, /api/data/resource/grid, /api/data/gcc-series, /api/mcp
2026-09-27قائمة `storage` جديدة والمعامل `segment=storage`: كل مشروع لتخزين الطاقة بالبطاريات في المملكة مع سعته بالميجاواط ساعة ومرحلته ومعرّف التقرير وصفحته والمصادر التي يستشهد بها التقرير وأي رقم مختلف يذكره مصدر آخر. ولم تتغير الحقول الحالية./api/data/atlas
2026-09-24التوقعات مع مقاييسها المرجعية ومعايرتها، والمسارات الخمسة حتى عام 2050، وسيناريو واحد بطلب GET أو بطلب POST مُتحقَّق منه (المعاملات والصدمات، وللأعضاء وأصحاب المفاتيح مسار مخصص ومحاكاة مونت كارلو والحد الكفء، ويُحتسب بخمسة طلبات)، والاختبار الرجعي. وأداتا MCP هما oil_outlook وoil_scenario. وتحمل كل استجابة مصدرها وتاريخ صحتها وملاحظة بأنها منمذجة./api/data/oil-strategy/outlook, /api/data/oil-strategy/presets, /api/data/oil-strategy/scenario, /api/data/oil-strategy/backtest
2026-09-24تأتي العناوين الآن من خلاصات الناشرين أولًا ثم من GDELT، كل ثلاث ساعات، دون تغيير في بنية الاستجابة./api/data/news
2026-09-24جديد: واردات دول الخليج من معدات الطاقة النظيفة بحسب المستورد والمصدّر ومجموعة المنتجات والسنة، من 2017 فصاعدًا، من قاعدة BACI لدى CEPII، بصيغة JSON أو CSV./api/data/equipment-flows
2026-09-24ملفات كاملة لكل مجموعة بيانات يسمح ترخيصها بإعادة التوزيع، مع بيان للتراخيص ووسم ETag، ويُحتسب الملف بعشرة طلبات والاستجابة 304 بطلب واحد، أما المجموعات الأخرى فتُجيب بالرمز 403 مع السبب. ومجموعة Postman مولّدة من وثيقة OpenAPI، التي أصبحت تصف أحداث الإشعارات الفورية الستة في قسم webhooks. ويقبل سجل التغيّرات مؤشر before ويُعيد nextBefore عند امتلاء الصفحة./api/data/bulk, /api/data/bulk/{file}, /api/postman.json, /api/data/changes
2026-09-24موارد NASA POWER لأي خلية بدقة 0.5° والشبكة كاملة؛ وسلاسل بيانات الدول الخليجية من IRENA وOur World in Data والبنك الدولي؛ وطبقة مشاريع الأطلس على مستوى البلدة؛ والعناوين الإخبارية المطابَقة مع المشاريع والشركات. ويحمل كلٌّ منها مصدره وترخيصه وتاريخ صحته./api/data/resource, /api/data/resource/grid, /api/data/gcc-series, /api/data/atlas, /api/data/news
2026-09-24ست نقاط وصول محسوبة: فهرس المصادر مع حالتها، وسجلات أي مصدر مدمج بعوامل التصفية الخاصة به، وتقديرات إنتاج المشاريع مع إجمالياتها حسب المرحلة، ومجاميع تجارة المعدات، وانبعاثات دول الخليج. ويتوفر ملف CSV حيث يسمح ترخيص المصدر، وتجيب نقطتا الأمم المتحدة للتجارة وPeeringDB عن طلب الملف بالرمز 403./api/data/integrations, /api/data/integrations/{source}, /api/data/project-output, /api/data/project-output/{id}, /api/data/trade, /api/data/emissions
2026-09-24تضيف نقطة الحالة وتيرة كل مصدر وحالته وآخر خطأ سُجّل له، وفحصًا ذاتيًا لكل نقطة وصول عامة، وسجل الفحوص المحفوظة حيثما وُجد. وتُقدَّم طلبات الخصوصية من النموذج المتاح في الموقع./api/status, /api/privacy-requests
2026-09-24مفاتيح API اختيارية بحصة يومية وعدّاد للاستخدام، وترويسات حدود الطلبات في كل استجابة محسوبة، ووثيقة OpenAPI 3.1، وطلبات تراخيص البيانات./api/openapi.json, /api/licence-requests
2026-09-24مشروع واحد من المتتبّع وشركة واحدة بصيغة JSON، مع حقول الإسناد./api/data/projects/{id}, /api/data/companies/{company}
2026-09-22نقطة بروتوكول سياق النموذج./api/mcp
2026-09-22مكتبة التقارير بصيغة JSON./api/reports, /api/reports/{id}
2026-09-21الموجز الأسبوعي بصيغة JSON، بعنوان دائم لكل أسبوع./api/brief, /api/brief/latest, /api/brief/{week}
2026-09-20سجل التغيّرات، وجدول ما يُتوقَّع تحديثه، وميزان القدرات، وتوقعات إنتاج الأسطول الشمسي./api/data/changes, /api/data/due, /api/data/power-balance, /api/data/fleet-outlook
2026-09-20المعامل asOf: السجل كما كان في نهاية يوم سابق، وميزان القدرات كما حُفظ لشهر سابق./api/data/registers/{register}, /api/data/power-balance
2026-09-14نموذج توازن النفط، مع سيناريوهات مسمّاة وإمكانية ضبط كل رافعة عبر الاستعلام./api/data/oil-model
2026-09-13حداثة البيانات، والبحث في الموقع، وبطاقات المشاركة./api/status, /api/search, /api/cards/{card}
2026-09-12السلاسل المنسوخة من بوابة بيانات الطاقة لدى كابسارك، والسجلات الرسمية الثلاثة./api/data/portal/{series}, /api/data/registers/{register}

هل تحتاج إلى استخدام البيانات تجاريًا أو إعادة توزيعها؟

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