API Endpoints
Reseller
Get Profile
Get your reseller profile and current balance.
GET /api/v1/reseller/profile
Headers:
| Header | Value |
|---|---|
| X-API-Key | Your API key |
Response:
{
"id": 1,
"username": "demo_reseller",
"balance": 250.00,
"status": "active",
"role": "reseller",
"allowed_ips": "192.168.1.1, 10.0.0.1",
"total_spent": 1250.50,
"today_spent": 85.00,
"total_orders": 45,
"success_orders": 40,
"pending_orders": 2,
"failed_orders": 3,
"created_at": "2026-06-25T12:00:00.000Z"
}
Catalogue
Get Categories
List all available game categories.
GET /api/v1/catalogue/categories
Headers:
| Header | Value |
|---|---|
| X-API-Key | Your API key |
Response:
[
{
"game_code": "mlbb",
"name": "Mobile Legends",
"description": "Not available for Indonesia users",
"image_url": "https://gemgoapi.dinotopup.com/images/mlbb.png",
"game_fields": ["userid", "serverid"]
}
]
Get Products
Get packages/products for a specific game.
GET /api/v1/catalogue/products/{game_code}
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
| game_code | string | Game code (e.g., mlbb, valorant) |
Response:
{
"status": "SUCCESS",
"game": {
"game_code": "mlbb",
"name": "Mobile Legends"
},
"products": [
{
"product_code": "mlbb_100_diamonds",
"name": "100 Diamonds",
"sell_price": 1.50,
"status": "active"
}
]
}
Orders
Check Player ID
Validate a player ID before placing an order.
POST /api/v1/orders/check_player
Headers:
| Header | Value |
|---|---|
| X-API-Key | Your API key |
| Content-Type | application/json |
Request Body:
{
"game": "mlbb",
"user_id": "123456",
"server_id": "3543"
}
| Field | Type | Required | Description |
|---|---|---|---|
| game | string | Yes | Game code |
| user_id | string | Yes | Player user ID |
| server_id | string | No | Server/zone ID (required for some games) |
| charname | string | No | Character name (optional) |
Response (Valid):
{
"valid": "valid",
"name": "PlayerName123"
}
Response (Invalid):
{
"valid": "invalid",
"message": "Player not found"
}
Create Order
Place a top-up order for a player.
POST /api/v1/orders/create_order
Headers:
| Header | Value |
|---|---|
| X-API-Key | Your API key |
| Content-Type | application/json |
Request Body:
{
"product_code": "mlbb_100_diamonds",
"game_user_id": "123456",
"game_zone_id": "3543",
"callback_url": "https://your-server.com/webhook"
}
| Field | Type | Required | Description |
|---|---|---|---|
| product_code | string | Yes | Product code from catalogue |
| game_user_id | string | Yes | Player user ID |
| game_zone_id | string | No | Server/zone ID |
| callback_url | string | No | Webhook URL for order status updates |
Response (Success):
{
"transaction_id": "TX-20260626-1234",
"status": "success",
"product_name": "100 Diamonds",
"game_user_id": "123456",
"sell_price": 1.50,
"created_at": "2026-06-26T12:00:00Z"
}
Response (Failed):
{
"status": "FAILED",
"message": "Insufficient balance",
"reference": "TX-20260626-1234"
}
Order History
Get your order transaction history.
GET /api/v1/orders/order_history?limit=50
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | integer | 20 | Number of records to return |
Response:
{
"status": "SUCCESS",
"count": 1,
"orders": [
{
"transaction_id": "TX-20260626-1234",
"product_name": "100 Diamonds",
"game_code": "mlbb",
"game_user_id": "123456",
"sell_price": 1.50,
"status": "success",
"created_at": "2026-06-26T12:00:00Z"
}
]
}
Funding History
Get your deposit/funding history.
GET /api/v1/orders/funding_history?limit=20
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | integer | 10 | Number of records to return |
Response:
{
"status": "SUCCESS",
"count": 1,
"history": [
{
"invoice_id": "INV-45",
"amount": 50.00,
"payment_method": "USDT",
"status": "completed",
"created_at": "2026-06-20T09:15:42Z"
}
]
}
Examples
cURL
Get Categories:
curl -X GET "https://gemgoapi.dinotopup.com/api/v1/catalogue/categories" \
-H "X-API-Key: YOUR_API_KEY"
Check Player:
curl -X POST "https://gemgoapi.dinotopup.com/api/v1/orders/check_player" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"game": "mlbb", "user_id": "123456"}'
Create Order:
curl -X POST "https://gemgoapi.dinotopup.com/api/v1/orders/create_order" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_code": "mlbb_100_diamonds", "game_user_id": "123456"}'
JavaScript (fetch)
const API_KEY = 'your_api_key';
const BASE_URL = 'https://gemgoapi.dinotopup.com';
// Get categories
const res = await fetch(`${BASE_URL}/api/v1/catalogue/categories`, {
headers: { 'X-API-Key': API_KEY }
});
const categories = await res.json();
// Create order
const order = await fetch(`${BASE_URL}/api/v1/orders/create_order`, {
method: 'POST',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
product_code: 'mlbb_100_diamonds',
game_user_id: '123456'
})
});
Python (requests)
import requests
API_KEY = 'your_api_key'
BASE_URL = 'https://gemgoapi.dinotopup.com'
headers = {'X-API-Key': API_KEY}
# Get categories
res = requests.get(f'{BASE_URL}/api/v1/catalogue/categories', headers=headers)
categories = res.json()
# Create order
order = requests.post(f'{BASE_URL}/api/v1/orders/create_order',
headers={**headers, 'Content-Type': 'application/json'},
json={'product_code': 'mlbb_100_diamonds', 'game_user_id': '123456'}
)