Overview
For more information, please contact support@hlgamingofficial.com.
The Free Fire Player Stats API (sectionName=free_fire_stats) is your one-stop solution for retrieving
up-to-the-moment performance metrics for any Free Fire account on Garena’s global servers.
Whether you’re powering a tournament dashboard, a community leaderboard, or an in-game companion app, this API surfaces every
dimension of player performance—from aggregate career summaries down to per-mode breakdowns and match-level details.
Architectural Highlights
- Intelligent Caching: Multi-layer cache (in-memory + global CDN) ensures fresh data while minimizing Garena upstream calls.
- Auto-Scaling: Horizontal auto-scaling under the hood means you can support sudden spikes (e.g., livestreamed tournaments).
- Data Freshness: Every API call fetches the latest stats in real time; there is no batch delay or staleness window.
Ideal Use Cases
- Live Leaderboards: Pull Solo/Duo/Squad kill/death ratios and show top players in real time.
- Tournament Brackets: Automatically seed players based on their Career/Ranked performance.
- Streamer Overlays: Display current match metrics (damage dealt, distance traveled, etc.) via periodic polling.
- Companion Mobile Apps: Let users track their BR vs CS progression, headshot rates, and win streaks.
Key Features at a Glance:
- Full Mode Coverage – BR Career/Classic/Ranked (Solo, Duo, Squad) plus CS Career/Classic/Ranked.
- Rich Metrics – Kills, Deaths, Assists, Damage, Distance Traveled, Heads, MVPs, Vehicle KOs, Revives, Streaks, and more.
- Usage Metadata –
author,timestamp, and per-UID usage counters for quota management. - Flexible Interfaces – Available via
GETquery strings orPOSTJSON payloads. - Enterprise-Grade Security – HTTPS, API keys, per-UID rate limiting, and detailed request logging.
Authentication
Secure access to the Player Stats API is enforced via two credentials supplied on every call:
useruid– your unique HL Gaming Official developer UID. Binds each request to your account and drives per-UID quotas.api– your secret API key. Functions as your password; must be kept confidential at all times.
Error Responses for Authentication Issues
| HTTP Code | Error Body | Cause |
|---|---|---|
| 403 Forbidden | { "error": "Unauthorized: invalid api key." } |
API key is missing, malformed, or revoked. |
| 404 Not Found | { "error": "User not found." } |
useruid does not correspond to any active developer account. |
useruid and api on your secure backend.
Never embed credentials in client-side JavaScript or public repositories.
Obtaining Your Credentials
- Navigate to the Developer Portal: Visit hlgamingofficial.com/p/api.html .
- Sign In or Register: Use your HL Gaming Official account. New users can create an account in under 2 minutes.
-
Access “API Credentials”:
Under your dashboard sidebar, select Generate Key to reveal:
- Developer UID: copy into the
useruidfield. - API Key: click “Show” then copy into the
apifield.
- Developer UID: copy into the
Rate Limits & Plans
To ensure equitable resource usage, each developer UID is allotted a daily request quota. The counter resets exactly 24 hours after your first successful call in the previous cycle.
| Plan | Daily Requests | Price (USD/mo) | Overage Protection |
|---|---|---|---|
| Free | 25 | $0 | N/A (blocked at limit) |
| Starter | 1,000 | $19 | Auto-throttle at 110% |
| Pro | 5,000 | $49 | Auto-throttle at 110% |
| Enterprise | Unlimited | Contact Sales | Custom SLA |
Programmatic Quota Checks
Inspect the usage object in every response:
"usage": {
"usedToday": 123,
"dailyLimit": 1000,
"remainingToday": 877
}
Use remainingToday to trigger fallback logic or alerting before you hit your quota.
Endpoint URL
https://proapis.hlgamingofficial.com/main/games/freefire/stats/api
?sectionName=free_fire_stats
&useruid={YOUR_DEV_UID}
&api={YOUR_API_KEY}
&uid={FREEFIRE_UID}
®ion={REGION_CODE}
HTTP Methods Supported
- GET: Pass all parameters as URL query strings.
- POST: Supply a JSON body; set
Content-Type: application/json.
Example GET Request
curl "https://proapis.hlgamingofficial.com/main/games/freefire/stats/api\
?sectionName=free_fire_stats\
&useruid=dev123UID\
&api=abcDEFkey123\
&uid=87654321\
®ion=EU"
Supported Regions
| Region Code | Description | Notes |
|---|---|---|
| IND | India | Includes servers Mumbai, Chennai, Kolkata |
| EU | Europe | Covers Frankfurt & Amsterdam PoPs |
| NP | Nepal | Localized latency optimizations |
| BD | Bangladesh | Dhaka edge-caching enabled |
| SG | Singapore (SEA) | Primary SEA hub |
| ME | Middle East (MENA) | Dubai & Cairo nodes |
| TH | Thailand | Bangkok edge-accelerated |
| VN | Vietnam | Ho Chi Minh & Hanoi |
| ID | Indonesia | Jakarta & Bali |
| TW | Taiwan | Taipei PoP |
| RU | Russia | Moscow & St. Petersburg |
| PK | Pakistan | Karachi edge node |
| US | North America | East & West coast clusters |
Always specify the region where the account is registered to guarantee valid data.
Mismatched regions return valid:false and an empty stats payload.
Parameters
| Parameter | Required | Type | Description | Validation |
|---|---|---|---|---|
sectionName |
Yes | string | Must equal free_fire_stats. |
Exact match; case-sensitive. |
useruid |
Yes | string | Your developer UID from portal. | Alphanumeric, 8–32 chars. |
api |
Yes | string | Your confidential API key. | Base64-encoded, 32–64 chars. |
uid |
Yes | string | Target player’s Free Fire UID. | Numeric string, 8–12 digits. |
region |
Yes | string | Two- to three-letter region code. | Matches supported codes list. |
400 Bad Request with { "error": "Missing required parameters." }
or { "error": "Invalid sectionName." }.
Example Responses
1. Full Stats for Active Player
{
"source": "Free Fire Player Stats",
"result": {
"meta": {
"author": "HL GAMING OFFICIAL",
"website": "hlgamingofficial.com",
"timestamp": "2025-06-23T05:58:55.033Z"
},
"data": {
"BR_CAREER": {
"Duo": {
"account_id": 12345678,
"deaths": 81,
"games_played": 95,
"help_ups": 12,
"kills": 222,
"knockdowns": 167,
"one_game_most_kills": 31,
"top_5": 45,
"total_damage_taken": 69400,
"total_distance_travelled": "321696 metres",
"total_headshots_kills": 18,
"total_survival_time": "55504 seconds",
"vechicle_eliminations": 8,
"wins": 14
},
"Solo": {
"account_id": 12345678,
"deaths": 279,
"games_played": 377,
"kills": 1273,
"one_game_most_kills": 34,
"top_10": 220,
"total_damage_taken": 352207,
"total_distance_travelled": "1387695 metres",
"total_headshots_kills": 162,
"total_survival_time": "229158 seconds",
"vechicle_eliminations": 24,
"wins": 98
},
"Squad": {
"account_id": 12345678,
"deaths": 1976,
"games_played": 3549,
"help_ups": 1735,
"kills": 9406,
"knockdowns": 8187,
"one_game_most_kills": 23,
"top_3": 2252,
"total_damage_taken": 4736184,
"total_distance_travelled": "14784601 metres",
"total_headshots_kills": 824,
"total_survival_time": "2577369 seconds",
"vechicle_eliminations": 18,
"wins": 1573
}
},
"BR_CLASSIC": {
"Duo": {
"account_id": 12345678,
"deaths": 3,
"games_played": 4,
"help_ups": 0,
"kills": 9,
"knockdowns": 9,
"one_game_most_kills": 5,
"top_5": 4,
"total_damage_taken": 2814,
"total_distance_travelled": "13103 metres",
"total_headshots_kills": 0,
"total_survival_time": "2660 seconds",
"vechicle_eliminations": 0,
"wins": 1
},
"Solo": {
"account_id": 0,
"deaths": 0,
"games_played": 0,
"kills": 0,
"one_game_most_kills": 0,
"top_10": 0,
"total_damage_taken": 0,
"total_distance_travelled": "0 metres",
"total_headshots_kills": 0,
"total_survival_time": "0 seconds",
"vechicle_eliminations": 0,
"wins": 0
},
"Squad": {
"account_id": 0,
"deaths": 0,
"games_played": 0,
"help_ups": 0,
"kills": 0,
"knockdowns": 0,
"one_game_most_kills": 0,
"top_3": 0,
"total_damage_taken": 0,
"total_distance_travelled": "0 metres",
"total_headshots_kills": 0,
"total_survival_time": "0 seconds",
"vechicle_eliminations": 0,
"wins": 0
}
},
"BR_RANKED": {
"Duo": {
"account_id": 12345678,
"deaths": 0,
"games_played": 0,
"help_ups": 0,
"kills": 0,
"knockdowns": 0,
"one_game_most_kills": 0,
"top_5": 0,
"total_damage_taken": 0,
"total_distance_travelled": "0 metres",
"total_headshots_kills": 0,
"total_survival_time": "0 seconds",
"vechicle_eliminations": 0,
"wins": 0
},
"Solo": {
"account_id": 12345678,
"deaths": 6,
"games_played": 8,
"kills": 19,
"one_game_most_kills": 6,
"top_10": 5,
"total_damage_taken": 5121,
"total_distance_travelled": "38637 metres",
"total_headshots_kills": 1,
"total_survival_time": "4948 seconds",
"vechicle_eliminations": 0,
"wins": 2
},
"Squad": {
"account_id": 12345678,
"deaths": 56,
"games_played": 66,
"help_ups": 13,
"kills": 134,
"knockdowns": 158,
"one_game_most_kills": 13,
"top_3": 23,
"total_damage_taken": 65242,
"total_distance_travelled": "301287 metres",
"total_headshots_kills": 6,
"total_survival_time": "41377 seconds",
"vechicle_eliminations": 0,
"wins": 10
}
},
"CS_CAREER": {
"account_id": 12345678,
"assists": 3891,
"damage": 3563207,
"deaths": 4876,
"double_kills": 1351,
"games_played": 1780,
"headshots": 633,
"kills": 7180,
"knockdowns": 8548,
"mvp_count": 554,
"quadra_kills": 69,
"revives": 1086,
"triple_kills": 402,
"wins": 1132
},
"CS_CLASSIC": {
"account_id": 12345678,
"assists": 0,
"damage": 134,
"deaths": 10,
"double_kills": 0,
"games_played": 2,
"headshots": 0,
"kills": 0,
"knockdowns": 0,
"mvp_count": 0,
"quadra_kills": 0,
"revives": 0,
"triple_kills": 0,
"wins": 0
},
"CS_RANKED": {
"account_id": 12345678,
"assists": 113,
"damage": 88571,
"deaths": 148,
"double_kills": 31,
"games_played": 51,
"headshots": 17,
"kills": 182,
"knockdowns": 226,
"max_damage_one_game": 4157,
"max_kills_one_game": 9,
"mvp_count": 21,
"quadra_kills": 0,
"revives": 38,
"throwing_kills": 2,
"triple_kills": 9,
"winning_streak": 6,
"wins": 31
}
}
},
"usage": {
"usedToday": 11,
"dailyLimit": 25,
"remainingToday": 14
}
}
2. New/Inactive Player (All Zeros)
{
"source":"Free Fire Player Stats",
"result":{
"meta":{…},
"data":{
"BR_CAREER":{"Solo":{/* zeros */},"Duo":{/* zeros */},"Squad":{/* zeros */}},
"BR_CLASSIC":{/* zeros */},
"…":{/* zeros */}
}
},
"usage":{/* counters */}
}
Error Responses
If your request fails, you’ll receive one of the following HTTP codes with its JSON body.
| HTTP Code | Response Body | Cause |
|---|---|---|
| 400 | { "error": "Missing required parameters." } |
A required field is absent or malformed. |
| 400 | { "error": "Invalid sectionName." } |
sectionName isn’t free_fire_stats. |
| 403 | { "error": "Unauthorized: invalid api key." } |
Your api key is missing, invalid, or revoked. |
| 404 | { "error": "User not found." } |
The useruid or uid doesn’t exist. |
| 502 | { "error": "Free Fire Player Stats service unavailable." } |
Upstream Garena service is unreachable. |
| 500 | { "error": "Internal server error." } |
Unexpected server failure. Retry after a few seconds. |
Best Practices
- Pre-validate
uidformat andregion. - Cache full responses for 5–10 minutes.
- Implement retries with exponential backoff for
502/500. - Monitor
usage.remainingTodayto avoid hitting429 Too Many Requests.
Security Recommendations
- Use HTTPS only.
- Restrict outbound calls on your servers to only this API’s domain.
- Never expose your API keys in public or client-side code.
- Rotate and revoke keys regularly.
Logging & Analytics
All interactions—parameters, timestamps, status codes—are logged for audit and performance monitoring. Integrate with your APM (Datadog, New Relic, etc.) to track latency, error trends, and usage spikes.
FAQ
Q: Why are all stats zero?
A: The player is new or has not played in that mode.
Q: How fresh is the data?
A: Stats update in real time; freshness <1 s.
Changelog
- v1.0.0 — Launch of the Free Fire Player Stats API covering BR & CS modes.
Support & Tester
For live testing and developer assistance, visit: HL Gaming Official Support Portal
Free Fire Player Stats – API Tester
Retrieve BR & CS mode stats for any Free Fire account by entering your HL GAMING credentials, the target UID, and region.
Waiting for input...
Contact: Developers | Support