Aktifkan akses pengembang
Buka Pengaturan → Pengembang, aktifkan akses, lalu buat kunci API dan titik akhir webhook opsional.
- Kunci dibatasi pada akun penjual Anda dan dapat dicabut kapan saja.
- Lalu lintas API terbuka dibatasi hingga 300 permintaan per menit untuk setiap penjual.
- GET /api/v1 mengembalikan metadata penemuan untuk sumber daya yang tersedia.
Autentikasi dan panggil API
Kirim Authorization: Bearer dengan kunci rahasia langsung Anda. Utamakan HTTPS saja. Jangan pernah menyematkan kunci di klien publik.
- offers:read: daftar dan ambil tawaran.
- offers:write: buat, perbarui, terbitkan, dan hapus tawaran.
- orders:read: daftar dan ambil pesanan penjual.
- orders:write: tandai pesanan sebagai terkirim.
Daftar pesanan terbaru
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders
Putar kunci
Jika kunci bocor, cabut di pengaturan Pengembang dan buat yang baru. Perbarui otomatisasi Anda sebelum mencabut jika Anda sedang aktif.
Buka peta endpoint API
Path dasar adalah /api/v1. Respons yang berhasil mencakup X-RateLimit-Limit, X-RateLimit-Remaining, dan X-RateLimit-Reset. GET /api/v1 mengembalikan katalog operasi yang dapat dibaca mesin yang sesuai dengan artikel ini.
- GET /api/v1: penemuan (kunci valid apa pun).
- GET /api/v1/offers: daftar tawaran (offers:read).
- POST /api/v1/offers: buat draf (offers:write).
- GET /api/v1/offers/:urlOrId: ambil tawaran (offers:read).
- PATCH /api/v1/offers/:urlOrId: perbarui bidang tawaran (offers:write).
- DELETE /api/v1/offers/:urlOrId: hapus atau arsipkan (offers:write).
- POST /api/v1/offers/:urlOrId/publish: terbitkan (offers:write).
- GET /api/v1/orders: daftar penjualan (orders:read).
- GET /api/v1/orders/:uid: ambil pesanan (orders:read).
- POST /api/v1/orders/:uid/deliver: tandai terkirim (orders:write).
Cetak katalog operasi langsung
curl -s -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1 | jq ".operations"
API Tawaran
Identifikasi tawaran menerima slug url publik atau id numerik. Respons menghilangkan id internal dan sellerId. Baris stok, harga opsi, media, dan atribut dikelola di editor penjual (atau endpoint masa depan), bukan melalui PATCH untuk saat ini.
Daftar tawaran aktif
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/offers?archive=active"
Buat tawaran draf
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers
Ambil satu tawaran dengan relasi
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL
Perbarui bidang yang diizinkan
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
Bidang body PATCH yang diizinkan
{
"title": "Judul yang diperbarui",
"description": "Deskripsi untuk pembeli",
"visibility": "PUBLIK",
"categoryId": 12,
"offeringId": 34,
"thumbnail": "https://…",
"offerType": "AKUN",
"listingMode": "STANDAR"
}Terbitkan (default PUBLIK)
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":"PUBLIK"}'Hapus atau arsipkan
curl -X DELETE -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL
Persyaratan penerbitan
Penerbitan gagal dengan 400 jika bidang listing yang diperlukan tidak lengkap (validasi yang sama seperti editor tawaran). Pembaruan yang berhasil dapat memicu webhook offer.updated.
API Pesanan
Pesanan terbatas pada akun penjual Anda. Detail penagihan pembeli mungkin disunting. Gunakan uid pesanan publik (bukan referensi opak saja) untuk ambil dan kirim.
Daftar penjualan yang baru dibayar
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/orders?status=PAID&limit=20&sort=newest"
Ambil satu pesanan dengan item
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders/ORDER_UID
Tandai terkirim
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
Body bukti opsional
{
"evidence": [
"https://cdn.example.com/proof-1.png"
]
}Kesalahan dan batasan laju
Kesalahan mengembalikan JSON { error, code? }. Batasan laju adalah 300 permintaan per menit per kunci API.
- 401 API_KEY_REQUIRED atau API_KEY_INVALID.
- 403 SCOPE_MISSING ketika kunci tidak memiliki ruang lingkup endpoint.
- 404 Tidak ditemukan untuk tawaran atau pesanan yang tidak Anda miliki (pesan yang sama baik cara).
- 429 RATE_LIMITED dengan Retry-After dan header X-RateLimit-*.
- 400 untuk kegagalan validasi (penerbitan tidak lengkap, pengiriman tidak diizinkan, PATCH kosong).
Tangani 429
Kurangi penggunaan dengan detik Retry-After. Jangan ganti kunci untuk menghindari batas; batasan adalah per kunci dan sama untuk semua penjual.
Webhook pesanan keluar
Langganan order.paid, order.delivered, order.completed, order.refunded, dan order.disputed. Pilih JSON untuk server Anda atau Discord untuk penyematan saluran. Penandatanganan opsional menggunakan X-RMT-Timestamp dan X-RMT-Signature.
- Format Discord memposting penyematan kaya dengan tautan pesanan dan nama tawaran.
- Format JSON memposting tubuh terstruktur termasuk nama tawaran dan item baris.
- Jika Anda mengatur rahasia, verifikasi HMAC-SHA256 dari timestamp.body sama dengan tanda tangan v1= hex.
- Riwayat pengiriman muncul di bawah setiap titik akhir sehingga Anda dapat mencoba ulang kegagalan.
Contoh header yang ditandatangani
{
"X-RMT-Event": "order.paid",
"X-RMT-Timestamp": "1710000000",
"X-RMT-Signature": "v1=abc123…"
}Verifikasi tanda tangan
Hitung HMAC-SHA256 di atas string timestamp + "." + rawBody menggunakan rahasia titik akhir Anda. Bandingkan dengan hex setelah v1=.
Sketsa Node.js
import crypto from "crypto";
const expected = crypto
.createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
const ok = expected === signature.replace(/^v1=/, "");