تمكين الوصول للمطورين
افتح الإعدادات → المطور، قم بتمكين الوصول، ثم أنشئ مفتاح API ونقاط نهاية ويب هوك اختيارية.
- تكون المفاتيح محددة لحساب البائع الخاص بك ويمكن إبطالها في أي وقت.
- يتم تحديد حركة مرور API المفتوحة بمعدل 300 طلب في الدقيقة لكل بائع.
- GET /api/v1 يعيد بيانات الاكتشاف للموارد المتاحة.
المصادقة واستدعاء API
أرسل Authorization: Bearer مع مفتاحك السري المباشر. يفضل HTTPS فقط. لا تقم أبدًا بتضمين المفاتيح في العملاء العامة.
- offers:read: عرض والحصول على العروض.
- offers:write: إنشاء، تحديث، نشر، وحذف العروض.
- orders:read: عرض والحصول على طلبات البائع.
- orders:write: وضع علامة على الطلبات كتم تسليمها.
قائمة الطلبات الأخيرة
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders
تدوير المفاتيح
إذا تسرب مفتاح، قم بإبطاله في إعدادات المطور وأنشئ مفتاحًا جديدًا. قم بتحديث الأتمتة الخاصة بك قبل إبطالها إذا كنت مباشرًا.
فتح خريطة نقاط نهاية API
المسار الأساسي هو /api/v1. تشمل الاستجابات الناجحة X-RateLimit-Limit و X-RateLimit-Remaining و X-RateLimit-Reset. GET /api/v1 يعيد كتالوج العمليات القابل للقراءة آليًا الذي يتطابق مع هذه المقالة.
- GET /api/v1: اكتشاف (أي مفتاح صالح).
- GET /api/v1/offers: عرض العروض (offers:read).
- POST /api/v1/offers: إنشاء مسودة (offers:write).
- GET /api/v1/offers/:urlOrId: الحصول على عرض (offers:read).
- PATCH /api/v1/offers/:urlOrId: تحديث حقول العرض (offers:write).
- DELETE /api/v1/offers/:urlOrId: حذف أو أرشفة (offers:write).
- POST /api/v1/offers/:urlOrId/publish: نشر (offers:write).
- GET /api/v1/orders: عرض المبيعات (orders:read).
- GET /api/v1/orders/:uid: الحصول على طلب (orders:read).
- POST /api/v1/orders/:uid/deliver: وضع علامة على التسليم (orders:write).
طباعة كتالوج العمليات المباشر
curl -s -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1 | jq ".operations"
واجهة برمجة تطبيقات العروض
معرفات العروض تقبل شريحة URL العامة أو المعرف الرقمي. تستبعد الاستجابات المعرف الداخلي و sellerId. يتم إدارة صفوف المخزون، أسعار الخيارات، الوسائط، والسمات في محرر البائع (أو نقاط النهاية المستقبلية)، وليس عبر PATCH بعد.
عرض العروض النشطة
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/offers?archive=active"
إنشاء عرض مسودة
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers
الحصول على عرض واحد مع العلاقات
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL
تحديث الحقول المسموح بها
curl -X PATCH -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL -d @body.json
حقول جسم PATCH المسموح بها
{
"title": "عنوان محدث",
"description": "وصف موجه للمشتري",
"visibility": "PUBLIC",
"categoryId": 12,
"offeringId": 34,
"thumbnail": "https://…",
"offerType": "ACCOUNT",
"listingMode": "STANDARD"
}نشر (افتراضي PUBLIC)
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL/publish -d '{"visibility":"PUBLIC"}'حذف أو أرشفة
curl -X DELETE -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL
متطلبات النشر
يفشل النشر مع 400 إذا كانت حقول الإدراج المطلوبة غير مكتملة (نفس التحقق مثل محرر العرض). يمكن أن تصدر التحديثات الناجحة webhook offer.updated.
واجهة برمجة تطبيقات الطلبات
الطلبات مرتبطة بحساب البائع الخاص بك. قد يتم حذف تفاصيل الفوترة الخاصة بالمشتري. استخدم معرف الطلب العام uid (ليس المرجع الغامض وحده) للحصول على الطلب والتسليم.
عرض المبيعات المدفوعة الأخيرة
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/orders?status=PAID&limit=20&sort=newest"
الحصول على طلب واحد مع عناصر السطر
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders/ORDER_UID
وضع علامة على التسليم
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/orders/ORDER_UID/deliver -d @evidence.json
جسم الأدلة الاختياري
{
"evidence": [
"https://cdn.example.com/proof-1.png"
]
}الأخطاء وحدود المعدل
ترجع الأخطاء JSON { error, code? }. حد المعدل هو 300 طلب في الدقيقة لكل مفتاح API.
- 401 API_KEY_REQUIRED أو API_KEY_INVALID.
- 403 SCOPE_MISSING عندما يفتقر المفتاح إلى نطاق نقطة النهاية.
- 404 غير موجود للعروض أو الطلبات التي لا تملكها (نفس الرسالة في كلتا الحالتين).
- 429 RATE_LIMITED مع Retry-After ورؤوس X-RateLimit-*.
- 400 لفشل التحقق (نشر غير مكتمل، تسليم غير مسموح به، PATCH فارغ).
التعامل مع 429
تراجع باستخدام Retry-After ثواني. لا تقم بتدوير المفاتيح لتجاوز الحدود؛ الحد هو لكل مفتاح وثابت لجميع البائعين.
ويب هوكس الطلب الصادرة
اشترك في order.paid وorder.delivered وorder.completed وorder.refunded وorder.disputed. اختر JSON لخادمك أو Discord لتضمينات القناة. يستخدم التوقيع الاختياري X-RMT-Timestamp وX-RMT-Signature.
- تقوم تنسيقات Discord بنشر تضمينات غنية مع رابط الطلب واسم العرض.
- تقوم تنسيقات JSON بنشر جسم منظم يتضمن أسماء العروض وعناصر السطر.
- إذا قمت بتعيين سر، تحقق من HMAC-SHA256 من timestamp.body يساوي v1= التوقيع السداسي.
- تظهر تاريخ التسليم تحت كل نقطة نهاية حتى تتمكن من إعادة محاولة الفشل.
مثال على رؤوس موقعة
{
"X-RMT-Event": "order.paid",
"X-RMT-Timestamp": "1710000000",
"X-RMT-Signature": "v1=abc123…"
}تحقق من التوقيعات
احسب HMAC-SHA256 على السلسلة timestamp + "." + rawBody باستخدام سرك في نقطة النهاية. قارن مع السداسي بعد v1=.
رسم تخطيطي لـ Node.js
import crypto from "crypto";
const expected = crypto
.createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
const ok = expected === signature.replace(/^v1=/, "");