API Documentation
Base URL: https://your-domain.com/api/v1 · Interactive docs at /docs
Authentication
All endpoints require authentication via one of:
- JWT Bearer —
Authorization: Bearer <token> - API Key —
X-API-Key: vx_...
Register
POST/auth/register
Request → Response
{
"username": "myuser",
"email": "user@example.com",
"password": "securepass123"
}
// 201 Created
{
"access_token": "eyJhbG...",
"token_type": "bearer",
"user_id": 1,
"username": "myuser"
}Login
POST/auth/login
Same response format as register.
Generate API Key
POST/auth/api-key
Returns
vx_... key. Store it securely — shown only once.Products
GET/products
| Product ID | Robux | Tokens | USD |
|---|---|---|---|
| robux_88 | 88 R$ | 11 | $0.99 |
| robux_550 | 550 R$ | 25 | $4.99 |
| robux_1000 | 1,000 R$ | 45 | $9.99 |
| robux_2200 | 2,200 R$ | 100 | $19.99 |
Create Order
POST/orders
Without WLID (full token cost)
Request
{
"login": "user@roblox.com",
"password": "account_password",
"product": "robux_2200",
"quantity": 1,
"backup_code": null,
"webhook_url": "https://your-site.com/hook"
}With WLID (3 tokens/order fee)
Request
{
"login": "user@roblox.com",
"password": "account_password",
"product": "robux_2200",
"wlid_tokens": {
"refresh_token": "M.C507_BAY...",
"wlid_token": "EwA..."
}
}
// 201 Created
{
"order_uid": "VX-5A8115EA",
"status": "pending",
"tokens_charged": 3,
"product_robux": 2200
}List Orders
GET/orders?status=completed&limit=50&offset=0
Filter by status. Paginate with limit/offset. Returns
{ total, orders[] }Get Order Status
GET/orders/{order_uid}
Response
{
"order_uid": "VX-5A8115EA",
"status": "completed",
"product_name": "2200 Robux",
"tokens_charged": 100,
"robux_before": 150,
"robux_after": 2350,
"robux_granted": 2200
}Submit 2FA Code
POST/orders/{order_uid}/2fa
For orders in
waiting_2fa status. Submit the code from email/authenticator.{ "code": "847291" }Create Pack
POST/packs
Request → Response
{
"name": "Starter Bundle",
"items": [
{ "product": "robux_550", "quantity": 2 },
{ "product": "robux_1000", "quantity": 1 }
]
}
// total_tokens: 95 (25*2 + 45)
// total_robux: 2100 (550*2 + 1000)Also: GET /packs · DELETE /packs/{id}
Order Pack
POST/packs/{id}/order
Creates one order per item in the pack. Returns array of orders. Supports
wlid_tokens for reduced fee.Get Balance
GET/balance
{ "tokens": 485, "pending_topups": 0 }Top Up (USDT → Tokens)
POST/balance/topup
Request → Response
{ "amount_usdt": 50.00 }
// 201 Created
{
"tokens_amount": 250,
"wallet_address": "TXkG9f3w...Rp4mD7",
"status": "pending"
}
// Send USDT TRC-20 to this address
// Admin approves → tokens creditedWebhooks
When an order completes or fails, RomplHub sends a POST to your webhook_url:
Webhook payload
{
"event": "order.completed",
"order": {
"id": "VX-5A8115EA",
"status": "completed",
"product": "2200 Robux",
"robux_granted": 2200,
"tokens_charged": 100
}
}Order Statuses
pendingQueued for processingauthenticatingLogging into Roblox accountwaiting_2faNeeds 2FA code — submit via /orders/{uid}/2fapurchasingBuying from Microsoft StoregrantingGranting Robux to accountcompletedDone. Robux delivered.failedError occurred. Check error_message. Tokens auto-refunded.Error Codes
| Code | Meaning |
|---|---|
| 401 | Invalid or missing authentication |
| 402 | Insufficient token balance |
| 403 | Admin access required |
| 404 | Resource not found |
| 422 | Validation error (check detail) |
| 429 | Rate limit exceeded (60/min) |
Interactive docs with try-it-out
/docs (Swagger UI) →