Overview
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
GET
query strings orPOST
JSON 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
useruid
field. - API Key: click “Show” then copy into the
api
field.
- 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://hl-gaming-official-main-v4-api.vercel.app/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://hl-gaming-official-main-v4-api.vercel.app/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
uid
format andregion
. - Cache full responses for 5–10 minutes.
- Implement retries with exponential backoff for
502
/500
. - Monitor
usage.remainingToday
to 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