Developer Documentation
Complete reference for integrating Smile Bot services into your application.
Overview
The Smile Bot API provides programmatic access to our top-up services. Use standard HTTP methods to interact with resources like products, orders, and user balance.
https://mlbbapi.topupnation.xyz
Authentication
Authenticate your requests by including your API Key in the Authorization header using
the Bearer scheme.
Authorization: Bearer YOUR_API_KEY
IP Access Control
Security is paramount. Access to the API is restricted by IP address. Requests from unauthorized IPs
will be rejected with 403 Forbidden.
API Standards
Rate Limiting
The default rate limit is 1000 requests per hour. Check the following headers in the response to track your usage:
X-RateLimit-Limit: Total requests allowed.X-RateLimit-Remaining: Requests remaining in the current window.X-RateLimit-Reset: Time when the limit resets.
Error Handling
| Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing token |
| 402 | Payment Required - Insufficient balance |
| 403 | Forbidden - IP not whitelisted |
| 404 | Not Found - Resource (product/order) not found |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Products
Get Categories
List all available product categories.
{
"success": true,
"data": [
{
"id": "mobilelegends_category",
"name": "mobilelegends",
"count": 9
},
{
"id": "freefire_category",
"name": "freefire",
"count": 9
}
]
}
Get Category Products
Retrieve products under a specific category.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| category_name | path | string | Yes | Category identifier (e.g. mobilelegends) |
| page | query | int | No | Default: 1 |
{
"success": true,
"data": [
{
"id": "22590",
"name": "mobilelegends",
"spu": "mobilelegends BR 55 Diamond",
"price": 40.0,
"api_price": 4.0,
"is_active": true
}
],
"pagination": { "page": 1, "total": 15 }
}
Get Product Details
Fetch details for a single product ID.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| product_id | path | string | Yes | Unique product identifier |
{
"success": true,
"data": {
"id": "22590",
"name": "mobilelegends",
"spu": "mobilelegends BR 55 Diamond",
"denomination": "Diamond",
"price": 40.0,
"api_price": 4.0,
"is_active": true
},
"timestamp": "2026-01-23T20:40:22.000000"
}
Search Products
Query products by name.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| query | query | string | Yes | Search keyword (e.g. 'mobilelegends') |
{
"success": true,
"data": [
{
"id": "22590",
"name": "mobilelegends",
"spu": "mobilelegends BR 55 Diamond",
"price": 40.0
}
]
}
Orders
Create Order
Place a new order. User inputs depend on the product type.
{
"product_id": "22590",
"user_inputs": {
"userid": "98223878",
"zoneid": "2507"
}
}
{
"success": true,
"data": {
"order_id": "TNCRMO2695",
"status": "pending",
"total_price": 40.0
}
}
Get Order History
Retrieve past orders with pagination.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| page | query | int | No | Default: 1 |
| limit | query | int | No | Max: 100, Default: 50 |
{
"success": true,
"data": [
{
"id": "TNCRMO2695",
"product_name": "mobilelegends",
"price": 40.0,
"status": "completed",
"created_at": "2026-01-23T20:40:24.667061"
}
],
"pagination": { "page": 1, "total": 1 }
}
Get Order Details
Check the status of a specific order.
{
"success": true,
"data": {
"id": "TNCRMO2695",
"product_id": "22590",
"product_name": "mobilelegends",
"price": 40.0,
"status": "completed",
"user_inputs": {
"userid": "98223878",
"zoneid": "2507"
},
"created_at": "2026-01-23T20:40:24.667061"
}
}
Balance
Get Balance
Check your current account balance.
{
"success": true,
"data": {
"balance": 1500.50,
"currency": "COIN"
}
}
Balance History
View transaction logs.
{
"success": true,
"data": [
{
"id": 72079579,
"type": "order",
"amount": -40.0,
"reason": "Order TNCRMO2695",
"timestamp": "2026-01-23T20:40:24.667061"
}
],
"pagination": { "page": 1, "total": 1 }
}