GW BOT API DOCS
Integrate with our platform programmatically. Purchase gift cards, game keys, and game top-ups with our powerful REST API.
Lightning Fast
Instant delivery for gift cards and game keys. Real-time order processing.
Secure
API key authentication with IP whitelisting. Rate limiting for protection.
Easy Integration
RESTful API with clear documentation. Code examples in multiple languages.
Quick Start
Get up and running with GW BOT API DOCS in minutes.
1Base URL
# Production API Base URLhttps://api.sonofutred.uk/api/v12Authentication
Include your API key in the request headers:
X-API-Key: your_api_key_here# Or use Authorization headerAuthorization: Bearer your_api_key_here3Make Your First Request
curl -X GET "https://api.sonofutred.uk/api/v1/balance" \ -H "X-API-Key: your_api_key_here"Authentication
All API requests require authentication using an API key.
Getting Your API Key
- Open your Telegram bot profile
- Click on "π€ Profile"
- Click "π Create API Key" (or "π Regenerate API Key" if you already have one)
- If you need a new key, use "π Regenerate API Key" - this will revoke your old key immediately
Security Requirements
- β’ API access requires approval (beta program)
- β’ IP whitelist must be configured (max 2 IPs)
- β’ Use environment variables to store your API key
- β’ Never commit API keys to version control
Product IDs (PIDs)
Each product has a unique PID. Use the Price list to find products, then place orders with POST /orders/pid.
The product catalog below shows currently available products for ordering.
Product Catalog
Live product catalog. Refreshes automatically.
Games Endpoint Requirements
Supported games and required order input fields are listed below (server / zoneId / uid rules).
πServer Requirements Table
| Game | Parameter | Valid values |
|---|---|---|
| Genshin Impact | server | Asia, America, Europe, TW/HK/MO |
| Honkai Star Rail | server | Asia, America, Europe, TW/HK/MO |
| Zenless Zone Zero | server | Asia, America, Europe, TW/HK/MO |
| Heartopia | server | Global, Asia, America, Europe, Sea, TW/HK/MO |
| Identity V | server | Asia-Pacific, North America-Europe, Asia |
| Mobile Legends (and variants) | zoneId | Numeric zone ID (e.g. 1234) |
Games Requiring Server Selection
The following games require a server parameter:
- β’ Genshin Impact (genshin)
- β’ Honkai: Star Rail (honkai)
- β’ Zenless Zone Zero (zenless)
- β’ Heartopia (heartopia) β Global, Asia, America, Europe, Sea, TW/HK/MO
- β’ Identity V (identityv)
Games Using Zone ID
The following games use zoneId instead of server:
- β’ Mobile Legends (mobilelegend) - Requires numeric zone ID
- β’ Mobile Legends Indonesia (mlindo) - Requires numeric zone ID
- β’ Mobile Legends Philippines (mlph) - Requires numeric zone ID
- β’ Mobile Legends Russia (mlrussia) - Requires numeric zone ID
- β’ Magic Chess (magicchess) - Requires numeric zone ID
Example Usage
# Genshin Impact (server: Asia, America, Europe, TW/HK/MO)curl -X POST "https://api.sonofutred.uk/api/v1/orders/game" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "game": "genshin", "pack": "980", "uid": "123456789", "server": "Asia" }'# Heartopia (server: Global, Asia, America, Europe, Sea, TW/HK/MO)curl -X POST "https://api.sonofutred.uk/api/v1/orders/pid" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "pid": "GWHTP20", "uid": "123456789", "server": "Global" }'# Mobile Legends with zoneIdcurl -X POST "https://api.sonofutred.uk/api/v1/orders/game" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "game": "mobilelegend", "pack": "86", "uid": "1234567890", "zoneId": "1234" }'API Endpoints
Complete reference for all available API endpoints.
/profileGet User Profile
Get your complete user profile including balance, tier, and statistics.
curl -X GET "https://api.sonofutred.uk/api/v1/profile" \ -H "X-API-Key: your_api_key_here"/balanceGet Balance (Quick)
Get your current balance quickly without full profile data.
curl -X GET "https://api.sonofutred.uk/api/v1/balance" \ -H "X-API-Key: your_api_key_here"/player/verifyVerify Player Name
Verify a PUBG Mobile player UID and get their player name.
curl -X POST "https://api.sonofutred.uk/api/v1/player/verify" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "uid": "1234567890" }'/ml/check-regionMobile Legends Region Check
Check a Mobile Legends player's region by User ID and Zone ID. Returns in-game username and region. Use this to confirm the correct zoneId before placing ML orders. No third-party account details are exposed.
Notes:
- β’ Provide either "input" (e.g. "userId,zoneId" or "userId zoneId") or both "userId" and "zoneId".
- β’ Use the returned zone_id when placing Mobile Legends orders (POST /orders/game or POST /orders/pid with zoneId).
# Option 1: userId and zoneId in bodycurl -X POST "https://api.sonofutred.uk/api/v1/ml/check-region" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "userId": "1234567890", "zoneId": "1234" }'# Option 2: single "input" string (comma or space separated)curl -X POST "https://api.sonofutred.uk/api/v1/ml/check-region" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "input": "1234567890,1234" }'/productsGet Available Products
Get a complete list of all available products including games, gift cards, and game keys with prices and stock availability.
curl -X GET "https://api.sonofutred.uk/api/v1/products" \ -H "X-API-Key: your_api_key_here"/orders/pidPlace Order by PID
Place an order using a Product ID (PID). No game name or quantity neededβjust the PID and required identifiers (uid, zoneId for ML; uid, server for Genshin/Honkai/Zenless/Heartopia).
Notes:
- β’ pid: Required. Use product IDs from your active product list
- β’ uid: Required for game orders
- β’ zoneId: Required for Mobile Legends, ML Indo, ML Philippines, ML Russia, Magic Chess
- β’ server: Required for Genshin, Honkai, Zenless, Heartopia. Genshin/Honkai/Zenless: Asia, America, Europe, TW/HK/MO. Heartopia: Global, Asia, America, Europe, Sea, TW/HK/MO
- β’ webhookUrl: Optional. For gift cards and game keys, only pid is needed
# Game order (PUBG 60 UC)curl -X POST "https://api.sonofutred.uk/api/v1/orders/pid" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "pid": "GWP60", "uid": "1234567890" }'# Game order (Mobile Legends - requires zoneId)curl -X POST "https://api.sonofutred.uk/api/v1/orders/pid" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "pid": "GWM86", "uid": "1234567890", "zoneId": "1234" }'# Game order (Genshin - requires server)curl -X POST "https://api.sonofutred.uk/api/v1/orders/pid" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "pid": "GWG980", "uid": "123456789", "server": "Asia" }'# Game order (Heartopia - requires server: Global, Asia, America, Europe, Sea, TW/HK/MO)curl -X POST "https://api.sonofutred.uk/api/v1/orders/pid" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "pid": "GWHTP20", "uid": "123456789", "server": "Global" }'# Gift card order (no uid needed)curl -X POST "https://api.sonofutred.uk/api/v1/orders/pid" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "pid": "GWPSN50" }'/orders/giftcardPurchase Gift Cards
Purchase gift cards instantly. Codes are delivered immediately.
Notes:
- β’ Valid Platforms: psn, xbox, steam, itunes, googleplay, nintendo, roblox, valorant
- β’ Robux Cards: Use platform 'robux' with denominations: 800, 2000, 4500, 10000
- β’ Valorant Cards: Use platform 'valorant' with denominations: 5, 10, 15, 25, 50, 80
- β’ Codes are returned immediately in the response
curl -X POST "https://api.sonofutred.uk/api/v1/orders/giftcard" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "platform": "psn", "denomination": "50", "quantity": 2 }'/orders/gamekeyPurchase Game Keys
Purchase game keys instantly. Keys are delivered immediately.
curl -X POST "https://api.sonofutred.uk/api/v1/orders/gamekey" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "game": "pubg", "pack": "60_uc", "quantity": 1 }'/orders/gamePlace Game Order
Place an order for game top-ups (e.g., Mobile Legends diamonds, Genshin Impact crystals). These orders are processed automatically.
Notes:
- β’ zoneId: Required for Mobile Legends, ML Indo, ML Philippines, ML Russia, Magic Chess
- β’ server: Required for Genshin, Honkai, Zenless, Heartopia. Genshin/Honkai/Zenless: Asia, America, Europe, TW/HK/MO. Heartopia: Global, Asia, America, Europe, Sea, TW/HK/MO
- β’ serverRegion + serverId: Required for Once Human (serverRegion: Europe, North America, South America, Southeast Asia Server, HK/Macao/Taiwan, Korea Server, Japan Server)
- β’ webhookUrl: Optional HTTPS URL to receive order status updates
- β’ Orders will be auto completed by our API GW AUTO
curl -X POST "https://api.sonofutred.uk/api/v1/orders/game" \ -H "X-API-Key: your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "game": "mobilelegend", "pack": "86", "uid": "1234567890", "zoneId": "1234", "server": "Asia", "webhookUrl": "https://your-webhook-url.com/webhook" }'/orders/:orderIdGet Order Status
Get the status of a specific order.
curl -X GET "https://api.sonofutred.uk/api/v1/orders/GO-1234567890-123456" \ -H "X-API-Key: your_api_key_here"/ordersList User Orders
Get a list of all your orders with pagination.
Notes:
- β’ limit: Number of orders to return (default: 50, max: 100)
- β’ offset: Number of orders to skip (default: 0)
- β’ status: Filter by status (done, processing, cancelled)
curl -X GET "https://api.sonofutred.uk/api/v1/orders?limit=50&offset=0&status=done" \ -H "X-API-Key: your_api_key_here"/my-ipGet Current IP (IPv4 & IPv6)
Get your current client IP address (no authentication required). Returns both IPv4 and IPv6 when available. Use this to add your IP to the whitelist. Prefer IPv4 for better compatibility.
Notes:
- β’ ipv4 / ipv6: One will be set based on your connection; use IPv4 for whitelist when possible
- β’ Browser access: Redirects to UI showing both IPv4 and IPv6 with copy buttons
- β’ Recommendation: Use IPv4 and disable IPv6 if you experience connection issues
- β’ No authentication required for this endpoint
# API Call (returns JSON)curl -X GET "https://api.sonofutred.uk/api/v1/my-ip" \ -H "Accept: application/json"# Or open in browser for browser version:# https://api.sonofutred.uk/my-ipCode Examples
Integrate the API into your application with these ready-to-use examples.
JavaScript/Node.js
const API_BASE_URL = 'https://api.sonofutred.uk/api/v1';const API_KEY = 'your_api_key_here';async function getBalance() { const response = await fetch(`${API_BASE_URL}/balance`, { headers: { 'X-API-Key': API_KEY } }); const data = await response.json(); if (data.success) { console.log('Balance:', data.data.balance); } else { console.error('Error:', data.error); }}async function purchaseGiftCard(platform, denomination, quantity) { const response = await fetch(`${API_BASE_URL}/orders/giftcard`, { method: 'POST', headers: { 'X-API-Key': API_KEY, 'Content-Type': 'application/json' }, body: JSON.stringify({ platform, denomination, quantity }) }); const data = await response.json(); if (data.success) { console.log('Order ID:', data.data.orderId); console.log('Codes:', data.data.codes); } else { console.error('Error:', data.error); }}// UsagegetBalance();purchaseGiftCard('psn', '50', 2);Python
import requestsAPI_BASE_URL = 'https://api.sonofutred.uk/api/v1'API_KEY = 'your_api_key_here'headers = { 'X-API-Key': API_KEY}def get_balance(): response = requests.get(f'{API_BASE_URL}/balance', headers=headers) data = response.json() if data['success']: print(f"Balance: {data['data']['balance']}") else: print(f"Error: {data['error']}")def purchase_gift_card(platform, denomination, quantity): response = requests.post( f'{API_BASE_URL}/orders/giftcard', headers={**headers, 'Content-Type': 'application/json'}, json={ 'platform': platform, 'denomination': denomination, 'quantity': quantity } ) data = response.json() if data['success']: print(f"Order ID: {data['data']['orderId']}") print(f"Codes: {data['data']['codes']}") else: print(f"Error: {data['error']}")# Usageget_balance()purchase_gift_card('psn', '50', 2)Error Handling
All errors follow a consistent format with appropriate HTTP status codes.
Error Response Format
{ "success": false, "error": "Error message description"}Example error responses:
// 401 Unauthorized - missing or invalid API key{ "success": false, "error": "Invalid or revoked API key. Only active API keys are accepted." }// 403 Forbidden - IP not whitelisted{ "success": false, "error": "IP address 1.2.3.4 is not whitelisted...", "clientIP": "1.2.3.4" }// 400 Bad Request - insufficient balance{ "success": false, "error": "Insufficient balance", "balance": 5.00, "required": 14.99 }HTTP Status Codes
200- Success400- Bad Request401- Unauthorized403- Forbidden404- Not Found429- Rate Limit Exceeded500- Server Error
Rate Limiting
- β’ Limit: 10 requests per second per API key
- β’ Window: 1 second sliding window
- β’ Response: 429 status code when exceeded
- β’ Reset: Counter resets automatically after 1 second
Order Status Values
processing
Order is being processed
done
Order completed successfully
cancelled
Order was cancelled
failed
Order failed
Webhooks
Configure webhook URLs in your integration to receive asynchronous order status updates.
Security
Keep your API key private, use HTTPS, and enforce IP whitelist controls for production traffic.
Changelog
Documentation updates and endpoint changes are published in release notes.