启用开发者访问
打开设置 → 开发者,启用访问,然后创建 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"
商品API
商品标识符接受公共URL别名或数字ID。响应省略内部ID和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": "公开",
"categoryId": 12,
"offeringId": 34,
"thumbnail": "https://…",
"offerType": "账户",
"listingMode": "标准"
}发布(默认公开)
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":"公开"}'删除或归档
curl -X DELETE -H "Authorization: Bearer rmt_sk_live_…" https://rmt.gg/api/v1/offers/YOUR_OFFER_URL
发布要求
如果必填的商品字段不完整,发布将以400失败(与商品编辑器相同的验证)。成功的更新可以触发offer.updated webhook。
订单API
订单范围限于您的卖家账户。买方的账单详情可能会被删除。使用公共订单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? }。速率限制为每个API密钥每分钟300个请求。
- 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=/, "");