Skip to main content

API Endpoints

Reseller

Get Profile

Get your reseller profile and current balance.

GET /api/v1/reseller/profile

Headers:

HeaderValue
X-API-KeyYour 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:

HeaderValue
X-API-KeyYour 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:

ParameterTypeDescription
game_codestringGame 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:

HeaderValue
X-API-KeyYour API key
Content-Typeapplication/json

Request Body:

{
"game": "mlbb",
"user_id": "123456",
"server_id": "3543"
}
FieldTypeRequiredDescription
gamestringYesGame code
user_idstringYesPlayer user ID
server_idstringNoServer/zone ID (required for some games)
charnamestringNoCharacter 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:

HeaderValue
X-API-KeyYour API key
Content-Typeapplication/json

Request Body:

{
"product_code": "mlbb_100_diamonds",
"game_user_id": "123456",
"game_zone_id": "3543",
"callback_url": "https://your-server.com/webhook"
}
FieldTypeRequiredDescription
product_codestringYesProduct code from catalogue
game_user_idstringYesPlayer user ID
game_zone_idstringNoServer/zone ID
callback_urlstringNoWebhook 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:

ParameterTypeDefaultDescription
limitinteger20Number 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:

ParameterTypeDefaultDescription
limitinteger10Number 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'}
)