Integrate high-speed automated Free Fire top-ups into your bot, website, or desktop application.
The Seniya Topup Developer API allows you to automate Free Fire diamond top-ups, weekly/monthly subscriptions, EVO passes, and level up passes using your own Garena Shells account.
By saving your Garena Shells account credentials in your dashboard once, you can execute top-up requests from any server or platform with only your Seniya API token.
All protected endpoints require your developer API key. You can authenticate by sending the token in the Authorization header, via the query parameter, or in the JSON payload:
| Method | Format | Example |
|---|---|---|
| HTTP Header (Recommended) | Authorization: Bearer <token> |
Authorization: Bearer SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX |
| Query String | ?token=<token> |
https://ff-api.seniyatopup.com.lk/api/v1/topup-sync?token=SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX |
| JSON Body | "token": "<token>" |
{"token": "SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX", "playerid": "..."} |
All production API calls should be directed to our high-availability API gateway:
Region supported: Singapore Server (Code: lkshell or lksgshell). Compatible with MY Shell accounts top-up into SG Gamer UIDs.
Direct synchronous top-up. The server completes the Garena Shell deduction and Free Fire diamond delivery in real-time and returns the transaction ID and shell balances in the immediate response (< 2s).
| Field | Type | Required | Description |
|---|---|---|---|
playerid |
string | Required | Free Fire Gamer UID (e.g. 2378357572). |
package |
string | Required | Package code (e.g. 25, 100, WEEKLY, or comma-separated combo 25,100). |
orderid |
string | Optional | Unique order reference ID in your system. Auto-generated if omitted. |
code |
string | Optional | Server type: lkshell (default) or lksgshell. |
curl -X POST https://ff-api.seniyatopup.com.lk/api/v1/topup-sync \
-H "Authorization: Bearer SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"orderid": "ORD-2026-001",
"playerid": "2378357572",
"code": "lkshell",
"package": "100"
}'
<?php
$payload = [
'orderid' => 'ORD-' . time(),
'playerid' => '2378357572',
'code' => 'lkshell',
'package' => '100'
];
$ch = curl_init('https://ff-api.seniyatopup.com.lk/api/v1/topup-sync');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($response, true);
if ($httpCode === 200 && ($data['status'] ?? '') === 'success') {
echo "Top-Up Success! Trx ID: " . $data['trx_id'] . "\n";
} else {
echo "Failed: " . ($data['error'] ?? 'Unknown error') . "\n";
}
?>
const response = await fetch('https://ff-api.seniyatopup.com.lk/api/v1/topup-sync', {
method: 'POST',
headers: {
'Authorization': 'Bearer SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX',
'Content-Type': 'application/json'
},
body: JSON.stringify({
orderid: 'ORD-' + Date.now(),
playerid: '2378357572',
code: 'lkshell',
package: '100'
})
});
const data = await response.json();
console.log(data);
import requests
url = "https://ff-api.seniyatopup.com.lk/api/v1/topup-sync"
headers = {
"Authorization": "Bearer SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX",
"Content-Type": "application/json"
}
payload = {
"orderid": "ORD-2026-001",
"playerid": "2378357572",
"code": "lkshell",
"package": "100"
}
response = requests.post(url, json=payload, headers=headers)
data = response.json()
print(data)
{
"status": "success",
"orderid": "ORD-2026-001",
"playerid": "2378357572",
"nickname": "ZxㅤMINZO亗",
"package": "100",
"trx_id": "149422587379225395",
"pre_balance": 5000,
"post_balance": 4910,
"balance_used": 90
}
Check gamer UID validity and retrieve in-game nickname before making top-up orders.
curl -X POST https://ff-api.seniyatopup.com.lk/api/v1/player-lookup \
-H "Authorization: Bearer SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{"playerid": "2378357572"}'
// Response (HTTP 200):
{
"status": "success",
"player_id": "2378357572",
"nickname": "ZxㅤMINZO亗",
"region": "SG/Universal"
}
Check your developer account health, subscription validity, remaining days, and total orders placed.
curl "https://ff-api.seniyatopup.com.lk/api/v1/status" \
-H "Authorization: Bearer SHELLAPI-XXXXXXXXXXXXXXXXXXXXXXXX"
// Response (HTTP 200):
{
"status": "success",
"data": {
"username": "seniya_bot_user",
"account_status": "active",
"garena_shells_configured": true,
"subscription": {
"is_active": true,
"plan_name": "Starter Developer",
"expiry_date": "2026-11-15 12:00:00",
"days_left": 30,
"hours_left": 14
},
"orders": {
"total": 352,
"success": 349,
"failed": 3
}
}
}
Pass any of the following values in the package field:
| Code | Item Name | Category |
|---|---|---|
25 |
25 Diamond | Diamonds |
100 |
100 Diamond | Diamonds |
310 |
310 Diamond | Diamonds |
520 |
520 Diamond | Diamonds |
1060 |
1060 Diamond | Diamonds |
2180 |
2180 Diamond | Diamonds |
5600 |
5600 Diamond | Diamonds |
11500 |
11500 Diamond | Diamonds |
LITE |
Weekly Lite Pack | Subscriptions |
WEEKLY |
Weekly Subscription | Subscriptions |
MONTHLY |
Monthly Subscription | Subscriptions |
3D |
EVO 3 Days | EVO |
7D |
EVO 7 Days | EVO |
30D |
EVO 30 Days | EVO |
lvl6 |
Level Up 6 (L6) | Level Up |
lvl10 |
Level Up 10 (L10) | Level Up |
lvl15 |
Level Up 15 (L15) | Level Up |
lvl20 |
Level Up 20 (L20) | Level Up |
lvl25 |
Level Up 25 (L25) | Level Up |
lvl30 |
Level Up 30 (L30) | Level Up |
| HTTP Code | Message / Error | Resolution |
|---|---|---|
401 |
Missing or Invalid API Token | Verify the Authorization Bearer header contains an active API key. |
402 |
Subscription Expired / Inactive | Renew your subscription plan in the dashboard via eZ Cash or Bank Transfer. |
400 |
Garena Shells credentials not found | Connect your Garena username, password, and autocode in your dashboard. |
400 |
Shell balance is low | Your connected Garena account is out of shells. Top up your Garena Shell balance. |
409 |
Duplicate order ID detected | An order with this orderid was already submitted. Use a new unique ID. |