Aktiviere den Entwicklerzugang
Öffne Einstellungen → Entwickler, aktiviere den Zugang und erstelle dann einen API-Schlüssel und optionale Webhook-Endpunkte.
- Schlüssel sind auf dein Verkäuferkonto beschränkt und können jederzeit widerrufen werden.
- Öffentlicher API-Verkehr ist auf 300 Anfragen pro Minute für jeden Verkäufer begrenzt.
- GET /api/v1 gibt Entdeckungsmetadaten für verfügbare Ressourcen zurück.
Authentifizieren und die API aufrufen
Sende Authorization: Bearer mit deinem aktiven geheimen Schlüssel. Bevorzuge nur HTTPS. Betten Sie niemals Schlüssel in öffentlichen Clients ein.
- angebote:lesen: Angebote auflisten und abrufen.
- angebote:schreiben: Angebote erstellen, aktualisieren, veröffentlichen und löschen.
- bestellungen:lesen: Verkäuferbestellungen auflisten und abrufen.
- bestellungen:schreiben: Bestellungen als geliefert markieren.
Liste der letzten Bestellungen
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/orders
Schlüssel rotieren
Wenn ein Schlüssel geleakt wird, widerrufe ihn in den Entwicklereinstellungen und erstelle einen neuen. Aktualisiere deine Automatisierung, bevor du widerrufst, wenn du live bist.
API-Endpunktkarte öffnen
Basis-Pfad ist /api/v1. Erfolgreiche Antworten enthalten X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset. GET /api/v1 gibt einen maschinenlesbaren Katalog der Operationen zurück, der zu diesem Artikel passt.
- GET /api/v1: Entdeckung (jeder gültige Schlüssel).
- GET /api/v1/angebote: Angebote auflisten (angebote:lesen).
- POST /api/v1/angebote: Entwurf erstellen (angebote:schreiben).
- GET /api/v1/angebote/:urlOderId: Angebot abrufen (angebote:lesen).
- PATCH /api/v1/angebote/:urlOderId: Angebotsfelder aktualisieren (angebote:schreiben).
- DELETE /api/v1/angebote/:urlOderId: löschen oder archivieren (angebote:schreiben).
- POST /api/v1/angebote/:urlOderId/veröffentlichen: veröffentlichen (angebote:schreiben).
- GET /api/v1/bestellungen: Verkäufe auflisten (bestellungen:lesen).
- GET /api/v1/bestellungen/:uid: Bestellung abrufen (bestellungen:lesen).
- POST /api/v1/bestellungen/:uid/liefern: als geliefert markieren (bestellungen:schreiben).
Den aktuellen Operationskatalog drucken
curl -s -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1 | jq ".operations"
Angebote API
Angebotsidentifikatoren akzeptieren den öffentlichen URL-Slug oder die numerische ID. Antworten lassen interne ID und sellerId weg. Lagerbestandszeilen, Optionspreise, Medien und Attribute werden im Verkäufer-Editor (oder zukünftigen Endpunkten) verwaltet, nicht über PATCH.
Aktive Angebote auflisten
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/angebote?archive=aktiv"
Einen Entwurf für ein Angebot erstellen
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/angebote
Ein Angebot mit Beziehungen abrufen
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/angebote/IHR_ANGEBOT_URL
Erlaubte Felder aktualisieren
curl -X PATCH -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/angebote/IHR_ANGEBOT_URL -d @body.json
Erlaubte PATCH-Body-Felder
{
"titel": "Aktualisierter Titel",
"beschreibung": "Beschreibung für Käufer",
"sichtbarkeit": "ÖFFENTLICH",
"kategorieId": 12,
"angebotId": 34,
"thumbnail": "https://…",
"angebotstyp": "KONTO",
"listungsmodus": "STANDARD"
}Veröffentlichen (Standard ÖFFENTLICH)
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/angebote/IHR_ANGEBOT_URL/veröffentlichen -d '{"sichtbarkeit":"ÖFFENTLICH"}'Löschen oder archivieren
curl -X DELETE -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/angebote/IHR_ANGEBOT_URL
Veröffentlichungsanforderungen
Die Veröffentlichung schlägt mit 400 fehl, wenn erforderliche Angebotsfelder unvollständig sind (gleiche Validierung wie im Angebotseditor). Erfolgreiche Aktualisierungen können ein offer.updated Webhook auslösen.
Bestellungen API
Bestellungen sind auf Ihr Verkäuferkonto beschränkt. Käuferabrechnungsdetails können geschwärzt sein. Verwenden Sie die öffentliche Bestell-UID (nicht nur die undurchsichtige Referenz) für Abruf und Lieferung.
Letzte bezahlte Verkäufe auflisten
curl -H "Authorization: Bearer rmt_sk_live_…" "https://rmt.gg/api/v1/bestellungen?status=BEZAHLT&limit=20&sort=neueste"
Eine Bestellung mit Positionen abrufen
curl -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/bestellungen/BESTELL_UID
Als geliefert markieren
curl -X POST -H "Authorization: Bearer rmt_sk_live_…" -H "Content-Type: application/json" https://rmt.gg/api/v1/bestellungen/BESTELL_UID/liefern -d @evidence.json
Optionale Nachweis-Body
{
"evidence": [
"https://cdn.example.com/proof-1.png"
]
}Fehler und Ratenlimits
Fehler geben JSON { error, code? } zurück. Das Ratenlimit beträgt 300 Anfragen pro Minute pro API-Schlüssel.
- 401 API_KEY_REQUIRED oder API_KEY_INVALID.
- 403 SCOPE_MISSING, wenn der Schlüssel den Endpunktbereich nicht hat.
- 404 Nicht gefunden für Angebote oder Bestellungen, die Sie nicht besitzen (gleiche Nachricht in beide Richtungen).
- 429 RATE_LIMITED mit Retry-After und X-RateLimit-* Headern.
- 400 bei Validierungsfehlern (Veröffentlichung unvollständig, Lieferung nicht erlaubt, leeres PATCH).
429 behandeln
Reduzieren Sie die Nutzung mit Retry-After Sekunden. Rotieren Sie keine Schlüssel, um Limits zu umgehen; das Limit gilt pro Schlüssel und ist für alle Verkäufer gleich.
Ausgehende Bestell-Webhooks
Abonniere order.paid, order.delivered, order.completed, order.refunded und order.disputed. Wähle JSON für deinen Server oder Discord für Kanal-Embeds. Optionale Signierung verwendet X-RMT-Timestamp und X-RMT-Signature.
- Discord-Format postet reichhaltige Embeds mit einem Bestelllink und Angebotsnamen.
- JSON-Format postet einen strukturierten Body, einschließlich Angebotsnamen und Einzelposten.
- Wenn du ein Geheimnis festlegst, überprüfe, ob HMAC-SHA256 von timestamp.body gleich dem v1= Signaturhex ist.
- Die Lieferhistorie erscheint unter jedem Endpunkt, sodass du Fehler erneut versuchen kannst.
Beispiel signierter Header
{
"X-RMT-Event": "order.paid",
"X-RMT-Timestamp": "1710000000",
"X-RMT-Signature": "v1=abc123…"
}Signaturen überprüfen
Berechne HMAC-SHA256 über den String timestamp + "." + rawBody unter Verwendung deines Endpunktgeheimnisses. Vergleiche mit dem Hex nach v1=.
Node.js-Skizze
import crypto from "crypto";
const expected = crypto
.createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
const ok = expected === signature.replace(/^v1=/, "");