Geliştirici erişimini etkinleştir
Ayarlar → Geliştirici'yi açın, erişimi etkinleştirin, ardından bir API anahtarı ve isteğe bağlı webhook uç noktaları oluşturun.
- Anahtarlar, satıcı hesabınıza göre kapsamlandırılır ve her zaman iptal edilebilir.
- Açık API trafiği, her satıcı için dakikada 300 istekle sınırlıdır.
- GET /api/v1, mevcut kaynaklar için keşif meta verilerini döndürür.
API'yi kimlik doğrulama ve çağırma
Canlı gizli anahtarınızla Authorization: Bearer gönderin. Sadece HTTPS tercih edin. Anahtarları kamuya açık istemcilerde asla gömün.
- offers:read: teklifleri listele ve al.
- offers:write: teklifler oluştur, güncelle, yayınla ve sil.
- orders:read: satıcı siparişlerini listele ve al.
- orders:write: siparişleri teslim edildi olarak işaretle.
Son siparişleri listeleyin
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders
Anahtarları döndürün
Bir anahtar sızarsa, Geliştirici ayarlarında iptal edin ve yenisini oluşturun. Canlıysanız iptal etmeden önce otomasyonunuzu güncelleyin.
Açık API uç noktası haritası
Temel yol /api/v1. Başarılı yanıtlar X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset içerir. GET /api/v1, bu makaleye uyan makine tarafından okunabilir bir işlem kataloğu döner.
- GET /api/v1: keşif (herhangi bir geçerli anahtar).
- GET /api/v1/offers: teklifleri listele (offers:read).
- POST /api/v1/offers: taslak oluştur (offers:write).
- GET /api/v1/offers/:urlOrId: teklifi al (offers:read).
- PATCH /api/v1/offers/:urlOrId: teklif alanlarını güncelle (offers:write).
- DELETE /api/v1/offers/:urlOrId: sil veya arşivle (offers:write).
- POST /api/v1/offers/:urlOrId/publish: yayınla (offers:write).
- GET /api/v1/orders: satışları listele (orders:read).
- GET /api/v1/orders/:uid: siparişi al (orders:read).
- POST /api/v1/orders/:uid/deliver: teslim edildi olarak işaretle (orders:write).
Canlı işlem kataloğunu yazdır
curl -s -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1 | jq ".operations"
Teklifler API'si
Teklif tanımlayıcıları, genel url slug'ını veya sayısal kimliği kabul eder. Yanıtlar iç kimlik ve sellerId'yi atlar. Stok satırları, seçenek fiyatları, medya ve özellikler satıcı editöründe (veya gelecekteki uç noktalar) yönetilir, henüz PATCH ile değil.
Aktif teklifleri listele
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/offers?archive=active"
Bir taslak teklif oluştur
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers
İlişkileri olan bir teklifi al
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL
İzin verilen alanları güncelle
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
İzin verilen PATCH gövde alanları
{
"title": "Güncellenmiş başlık",
"description": "Alıcıya yönelik açıklama",
"visibility": "GENEL",
"categoryId": 12,
"offeringId": 34,
"thumbnail": "https://…",
"offerType": "HESAP",
"listingMode": "STANDART"
}Yayınla (varsayılan GENEL)
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":"GENEL"}'Sil veya arşivle
curl -X DELETE -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL
Yayınlama gereksinimleri
Yayınlama, gerekli listeleme alanları eksik olduğunda 400 ile başarısız olur (teklif editörü ile aynı doğrulama). Başarılı güncellemeler, bir offer.updated webhook'u yayabilir.
Siparişler API'si
Siparişler, satıcı hesabınıza bağlıdır. Alıcı fatura bilgileri gizlenebilir. Al ve teslim için genel sipariş uid'sini (sadece opak referans değil) kullanın.
Son ödenmiş satışları listele
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/orders?status=PAID&limit=20&sort=newest"
Bir siparişi satır öğeleriyle al
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders/ORDER_UID
Teslim edildi olarak işaretle
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
Opsiyonel kanıt gövdesi
{
"evidence": [
"https://cdn.example.com/proof-1.png"
]
}Hatalar ve oran limitleri
Hatalar JSON { error, code? } döner. Oran limiti, her API anahtarı için dakikada 300 istektir.
- 401 API_KEY_REQUIRED veya API_KEY_INVALID.
- 403 SCOPE_MISSING, anahtar uç nokta kapsamına sahip değilse.
- 404 Teklifler veya sahip olmadığınız siparişler için bulunamadı (her iki durumda da aynı mesaj).
- 429 RATE_LIMITED, Retry-After ve X-RateLimit-* başlıkları ile.
- 400 doğrulama hataları için (yayınlama eksik, teslimat izin verilmedi, boş PATCH).
429 ile başa çık
Retry-After saniyeleri kullanarak geri çekilin. Limitleri aşmak için anahtarları döndürmeyin; limit her anahtar için ve tüm satıcılar için sabittir.
Dışa aktarılan sipariş web kancaları
order.paid, order.delivered, order.completed, order.refunded ve order.disputed'e abone olun. Sunucunuz için JSON veya kanal gömme için Discord'u seçin. İsteğe bağlı imzalama, X-RMT-Timestamp ve X-RMT-Signature kullanır.
- Discord formatı, bir sipariş bağlantısı ve teklif adı ile zengin gömme gönderir.
- JSON formatı, teklif adları ve satır öğelerini içeren yapılandırılmış bir gövde gönderir.
- Bir gizli ayarlarsanız, timestamp.body'nin HMAC-SHA256'sinin v1= imza hex'ine eşit olduğunu doğrulayın.
- Teslimat geçmişi, her uç noktada görünür, böylece hataları yeniden deneyebilirsiniz.
Örnek imzalı başlıklar
{
"X-RMT-Event": "order.paid",
"X-RMT-Timestamp": "1710000000",
"X-RMT-Signature": "v1=abc123…"
}İmzaları doğrulayın
timestamp + "." + rawBody dizesi üzerinde HMAC-SHA256 hesaplayın ve v1='den sonraki hex ile karşılaştırın.
Node.js taslağı
import crypto from "crypto";
const expected = crypto
.createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
const ok = expected === signature.replace(/^v1=/, "");