البداية

واجهة برمجية JSON للقراءة فقط تعمل على البيانات نفسها التي يعمل بها الموقع: البطاقات والمجموعات والبطولات ونتائج اللاعبين.

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

كل طلب هو GET. تُمرَّر كل المعاملات في سلسلة الاستعلام.

الرابط الأساسي
https://cardsrealm.com/ar-eg/api/

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

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

مثال على الطلب
curl "https://cardsrealm.com/en-us/api/getRecentDecks?game_id=1&limit=2"
الأسعار أعداد صحيحة بالسنت. قيمة price تساوي 77 مع currency_prefix بالرمز $ تعني 0.77. اقسم على 100 قبل العرض.
الاستخدام العادل. لا يوجد حد صارم للطلبات مطبَّق اليوم، لذا كن معقولًا: خزّن مؤقتًا ما تستطيع، وفضّل طلبًا واحدًا مقسّمًا على صفحات بدل طلبات صغيرة كثيرة. الإفراط هو ما يحوّل واجهة مفتوحة إلى مغلقة.

cardinfo

GET/ar-eg/api/cardinfo

كل ما يعرفه الموقع عن بطاقة واحدة يتم البحث عنها بالاسم: النص وتكلفة المانا والندرة والإصدارات والأسعار الحالية.

المعاملالنوعنمطملحوظات
cardnamestringPath to exileبحد أقصى 50 حرفًا.
currencystringعملة اللغة المحددةثلاثة أحرف.
game_idintلعبة النطاق1 = Magic, 2 = Yu-Gi-Oh, 3 = Pokémon, 4 = Runeterra.
language_codestringلغة المسارلغة اسم البطاقة ونصها المُعادين.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/cardinfo?cardname=Lightning%20Bolt&currency=USD"
مثال على الاستجابة
{
  "name_of_card": "Lightning Bolt",
  "name_ing": "Lightning Bolt",
  "type_of_card": "Instant",
  "text_of_card": "Lightning Bolt deals 3 damage to any target.",
  "price": 77,
  "currency_prefix": "$",
  "path_of_card": "oj7-lightning-bolt",
  "card_url": "https://mtg.cardsrealm.com/en-us/card/lightning-bolt"
}

getRecentDecks

GET/ar-eg/api/getRecentDecks

أحدث المجموعات المنشورة، الأحدث أولًا.

المعاملالنوعنمطملحوظات
pageint1رقم الصفحة.
limitint50عدد المجموعات في الصفحة. الحد الأقصى 500؛ وما فوقه يعيد الطلب خطأً.
game_idint1مثل cardinfo.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/getRecentDecks?page=1&limit=2"
مثال على الاستجابة
[
  {
    "deck_id": 374859,
    "deck_title": "Attack of the myrs",
    "deck_owner": "jarrod long",
    "deck_format_name": "Commander",
    "deck_colours": "B G R U W",
    "total_cards": 100,
    "deck_url": "https://cardsrealm.com/decks/en-us/l8dh-attack-of-the-myrs"
  }
]

getDeckByID

GET/ar-eg/api/getDeckByID

قائمة مجموعة كاملة. تأتي قائمة البطاقات ضمن المفتاح cards، مع الكمية وboard (main أو side) وسعر كل بطاقة.

المعاملالنوعنمطملحوظات
deck_idint0المعرّف الرقمي للمجموعة.
currencystringBRLثلاثة أحرف.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/getDeckByID?deck_id=374859&currency=USD"
مثال على الاستجابة
{
  "deck_title": "Attack of the myrs",
  "user_name": "jarrod long",
  "tour_type_name": "Commander",
  "deck_quantity_main": 99,
  "deck_quantity_side": 1,
  "cards": [
    {
      "name_ing": "Command Tower",
      "deck_quantity": 1,
      "deck_sideboard": 0,
      "card_price_total": 18
    }
  ]
}
المعرّف deck_id غير الموجود يعيد 200 مع كائن شبه فارغ، لا خطأ. تحقق من وجود deck_title قبل استخدام البقية.

getDeckResults

GET/ar-eg/api/getDeckResults

أداء نمط اللعب: السجل العام، مع تفصيل by_meta لنتائجه أمام كل نمط آخر.

المعاملالنوعنمطملحوظات
deck_namestringفارغاسم نمط اللعب، بحد أقصى 40 حرفًا.
weekint4كم أسبوعًا إلى الوراء. الحد الأقصى 52.
formatstringStandardبحد أقصى 20 حرفًا.
game_idint1مثل cardinfo.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/getDeckResults?deck_name=Grixis%20Affinity&format=Pauper&week=8"

getPlayerResults

GET/ar-eg/api/getPlayerResults

سجل اللاعب، مع تفصيل by_meta لأدائه مع كل نمط لعب.

المعاملالنوعنمطملحوظات
player_namestringفارغبحد أقصى 40 حرفًا.
weekint52كم أسبوعًا إلى الوراء.
player_platformstringcardsrealm_nicknameبأي اسم تبحث. واحد من cardsrealm_nickname أو mtgo أو arena أو riot أو display. وأي قيمة أخرى تعيد خطأ.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/getPlayerResults?player_name=Carrubs&player_platform=mtgo"

getPastTournaments

GET/ar-eg/api/getPastTournaments

البطولات التي أُقيمت بالفعل، الأحدث أولًا.

المعاملالنوعنمطملحوظات
pageint1رقم الصفحة.
formatstringفارغبحد أقصى 20 حرفًا. الفراغ يعني كل الصيغ.
game_idint1مثل cardinfo.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/getPastTournaments?format=Pauper&page=1"
مثال على الاستجابة
[
  {
    "tournament_id": 810845,
    "tournament_name": "Domingooouuu Pauper 86",
    "tournament_path": "https://cardsrealm.com/tournament/en-us/1k3c9-domingooouuu-pauper-86",
    "format_name": "Pauper",
    "game_name": "Magic: the Gathering",
    "datetime_utc": "Sun, 16 Aug 2026 16:30:00 GMT"
  }
]

getTournamentInfo

GET/ar-eg/api/getTournamentInfo

بطولة كاملة: الحدث، وجولاته ضمن round_info، والجدول النهائي ضمن standings. المعرّف غير الموجود يعيد قائمة فارغة لا خطأ.

المعاملالنوعنمطملحوظات
tournament_idint1المعرّف الرقمي للبطولة.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/getTournamentInfo?tournament_id=810845"

getUserTournaments

GET/ar-eg/api/getUserTournaments

البطولات التي نظّمها حساب واحد.

المعاملالنوعنمطملحوظات
nicknamestringCards Realmبحد أقصى 30 حرفًا.
مثال على الطلب
curl "https://cardsrealm.com/ar-eg/api/getUserTournaments?nickname=leon-diniz"

الأخطاء والدعم

شفرةمعنى
200نجاح. جسم الاستجابة دائمًا JSON.
404رُفض الطلب. جسم الاستجابة سلسلة JSON توضّح الخطأ: اسم طويل جدًا، أو قيمة ليست رقمًا، أو قيمة خارج القائمة المسموح بها.

لديك سؤال، أو تحتاج حقلًا غير موجود هنا؟ تحدث إلينا على Discord. Discord