openapi: 3.0.3
info:
title: Fortnite Tracker API
version: '1.0'
description: >-
Fortnite Tracker (api.fortnitetracker.com/v1) is the Tracker Network developer
surface that wraps Epic Games' Fortnite telemetry behind a simple REST API.
It exposes per-player lifetime statistics, regional leaderboards, competitive
power rankings, the daily/weekly in-game store rotation, and the current
week's Battle Pass challenges. Every call requires a TRN-Api-Key header issued
from fortnitetracker.com/site-api/create. The service is intentionally
rate-limited (about one request every two seconds per key) and has been in a
silent end-of-life state for several years — some endpoints may return
intermittent errors.
contact:
name: Tracker Network Support
url: https://feedback.tracker.gg/
license:
name: Tracker Network Terms of Service
url: https://tracker.gg/about/terms
x-generated-from: documentation
x-last-validated: '2026-05-30'
servers:
- url: https://api.fortnitetracker.com/v1
description: Fortnite Tracker production API
tags:
- name: Profile
description: Per-player Fortnite lifetime and per-mode statistics.
- name: Leaderboards
description: Top-player leaderboards by platform and region.
- name: Power Rankings
description: Competitive Fortnite power rankings across professional events.
- name: Store
description: Current Fortnite in-game store rotation.
- name: Challenges
description: Current Battle Pass weekly challenges.
paths:
/profile/{platform}/{epicNickname}:
get:
operationId: getProfile
summary: Fortnite Tracker Get Player Profile
description: >-
Retrieve a player's Fortnite profile with lifetime statistics, per-mode
stats (solo, duo, squad), and account metadata for the given platform
and Epic Games display name.
tags:
- Profile
parameters:
- name: platform
in: path
required: true
description: >-
Player platform. One of `pc` (Epic Games on PC), `xbl` (Xbox Live),
`psn` (PlayStation Network).
schema:
type: string
enum:
- pc
- xbl
- psn
example: pc
- name: epicNickname
in: path
required: true
description: Epic Games account display name for the player.
schema:
type: string
example: Ninja
responses:
'200':
description: Player profile retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/PlayerProfile'
examples:
GetProfile200Example:
summary: Default getProfile 200 response
x-microcks-default: true
value:
accountId: 4735ce91-3292-4caf-8a5b-17789b40f79c
platformId: 5
platformName: pc
platformNameLong: PC / Epic Games
epicUserHandle: Ninja
stats:
p9:
kd:
label: K/D
field: kd
category: Combat
valueInt: 3
value: '3.21'
rank: '12345'
percentile: 99.4
displayValue: '3.21'
score:
label: Score
field: score
category: Game
valueInt: 182000
value: '182000'
rank: '8721'
percentile: 99.8
displayValue: 182,000
matches:
label: Matches
field: matches
category: Game
valueInt: 5421
value: '5421'
rank: '1872'
percentile: 99.9
displayValue: 5,421
lifeTimeStats:
- key: Wins
value: '247'
- key: Top 10
value: '1820'
- key: Kills
value: '17421'
recentMatches:
- id: 500123
accountId: 4735ce91-3292-4caf-8a5b-17789b40f79c
playlist: p9
kills: 8
minutesPlayed: 22
top1: 1
top5: 1
top6: 1
top10: 1
top12: 1
top25: 1
matches: 1
score: 1820
dateCollected: '2026-05-29T18:42:11Z'
'401':
description: Missing or invalid TRN-Api-Key header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetProfile401Example:
summary: Default getProfile 401 response
x-microcks-default: true
value:
error: unauthorized
message: Missing or invalid TRN-Api-Key header.
'404':
description: Player not found on the given platform.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetProfile404Example:
summary: Default getProfile 404 response
x-microcks-default: true
value:
error: not_found
message: Player not found on platform pc.
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetProfile429Example:
summary: Default getProfile 429 response
x-microcks-default: true
value:
error: rate_limited
message: Rate limit exceeded. Default is 1 request per 2 seconds.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/profile/account/{accountId}:
get:
operationId: getProfileByAccountId
summary: Fortnite Tracker Get Player Profile by Account Id
description: >-
Retrieve a player's Fortnite profile by Epic Games account UUID instead
of display name. Useful for stable lookups when display names change.
tags:
- Profile
parameters:
- name: accountId
in: path
required: true
description: Epic Games account UUID.
schema:
type: string
format: uuid
example: 4735ce91-3292-4caf-8a5b-17789b40f79c
responses:
'200':
description: Player profile retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/PlayerProfile'
examples:
GetProfileByAccountId200Example:
summary: Default getProfileByAccountId 200 response
x-microcks-default: true
value:
accountId: 4735ce91-3292-4caf-8a5b-17789b40f79c
platformId: 5
platformName: pc
platformNameLong: PC / Epic Games
epicUserHandle: Ninja
stats: {}
lifeTimeStats:
- key: Wins
value: '247'
recentMatches: []
'401':
description: Missing or invalid TRN-Api-Key header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetProfileByAccountId401Example:
summary: Default getProfileByAccountId 401 response
x-microcks-default: true
value:
error: unauthorized
message: Missing or invalid TRN-Api-Key header.
'404':
description: Account not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetProfileByAccountId404Example:
summary: Default getProfileByAccountId 404 response
x-microcks-default: true
value:
error: not_found
message: Account 4735ce91-3292-4caf-8a5b-17789b40f79c not found.
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetProfileByAccountId429Example:
summary: Default getProfileByAccountId 429 response
x-microcks-default: true
value:
error: rate_limited
message: Rate limit exceeded.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/leaderboards/{mode}/{platform}/{window}:
get:
operationId: listLeaderboard
summary: Fortnite Tracker List Leaderboard
description: >-
Retrieve a paginated leaderboard for a given mode, platform, and time
window. Used to surface top players by score, wins, kills, or matches
played across the global Tracker Network cohort.
tags:
- Leaderboards
parameters:
- name: mode
in: path
required: true
description: >-
Game mode. One of `p2` (solo), `p10` (duo), `p9` (squad).
schema:
type: string
enum:
- p2
- p10
- p9
example: p9
- name: platform
in: path
required: true
description: Player platform (`pc`, `xbl`, `psn`).
schema:
type: string
enum:
- pc
- xbl
- psn
example: pc
- name: window
in: path
required: true
description: >-
Statistic and time window. Common values include `current_wins`,
`current_kills`, `current_matches`, `lifetime_wins`,
`lifetime_kills`, `lifetime_score`.
schema:
type: string
example: current_wins
- name: page
in: query
required: false
description: Page index for paginated results (zero-based).
schema:
type: integer
minimum: 0
default: 0
example: 0
responses:
'200':
description: Leaderboard page retrieved.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LeaderboardEntry'
examples:
ListLeaderboard200Example:
summary: Default listLeaderboard 200 response
x-microcks-default: true
value:
- accountId: 4735ce91-3292-4caf-8a5b-17789b40f79c
platformId: 5
platformName: pc
epicUserHandle: Bugha
rank: 1
value: '412'
- accountId: 9a82bd14-7b1f-4dca-9f1a-3c9a17b2c5e1
platformId: 5
platformName: pc
epicUserHandle: Mongraal
rank: 2
value: '401'
'401':
description: Missing or invalid TRN-Api-Key header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListLeaderboard401Example:
summary: Default listLeaderboard 401 response
x-microcks-default: true
value:
error: unauthorized
message: Missing or invalid TRN-Api-Key header.
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListLeaderboard429Example:
summary: Default listLeaderboard 429 response
x-microcks-default: true
value:
error: rate_limited
message: Rate limit exceeded.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/powerrankings/top500:
get:
operationId: listTopPowerRankings
summary: Fortnite Tracker List Top 500 Power Rankings
description: >-
Retrieve the top 500 ranked professional Fortnite players globally as
ranked by Tracker Network's competitive power-ranking algorithm.
tags:
- Power Rankings
responses:
'200':
description: Power ranking list retrieved.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PowerRankingEntry'
examples:
ListTopPowerRankings200Example:
summary: Default listTopPowerRankings 200 response
x-microcks-default: true
value:
- rank: 1
country: US
platform: pc
region: na-east
epicNickname: Bugha
points: 12500.5
earnings: $3,000,000
twitchUrl: https://twitch.tv/bugha
- rank: 2
country: GB
platform: pc
region: eu
epicNickname: Mongraal
points: 12100.0
earnings: $1,800,000
twitchUrl: https://twitch.tv/mongraal
'401':
description: Missing or invalid TRN-Api-Key header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListTopPowerRankings401Example:
summary: Default listTopPowerRankings 401 response
x-microcks-default: true
value:
error: unauthorized
message: Missing or invalid TRN-Api-Key header.
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListTopPowerRankings429Example:
summary: Default listTopPowerRankings 429 response
x-microcks-default: true
value:
error: rate_limited
message: Rate limit exceeded.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/powerrankings/{platform}/{region}/{epicNickname}:
get:
operationId: getPlayerPowerRanking
summary: Fortnite Tracker Get Player Power Ranking
description: >-
Retrieve the competitive power-ranking detail for a specific
professional player, scoped to platform and region.
tags:
- Power Rankings
parameters:
- name: platform
in: path
required: true
description: Player platform (`pc`, `xbl`, `psn`).
schema:
type: string
enum:
- pc
- xbl
- psn
example: pc
- name: region
in: path
required: true
description: Competitive region.
schema:
type: string
enum:
- na-east
- na-west
- eu
- oce
- br
- asia
- me
example: na-east
- name: epicNickname
in: path
required: true
description: Epic Games account display name.
schema:
type: string
example: Bugha
responses:
'200':
description: Power ranking detail retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/PowerRankingDetail'
examples:
GetPlayerPowerRanking200Example:
summary: Default getPlayerPowerRanking 200 response
x-microcks-default: true
value:
rank: 1
country: US
platform: pc
region: na-east
epicNickname: Bugha
points: 12500.5
earnings: $3,000,000
twitchUrl: https://twitch.tv/bugha
events:
- name: FNCS Chapter 5 Season 2 Finals
date: '2026-04-12'
points: 1500
placement: 3
- name: Cash Cup Extra NA East
date: '2026-04-26'
points: 800
placement: 1
'401':
description: Missing or invalid TRN-Api-Key header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetPlayerPowerRanking401Example:
summary: Default getPlayerPowerRanking 401 response
x-microcks-default: true
value:
error: unauthorized
message: Missing or invalid TRN-Api-Key header.
'404':
description: Player power-ranking entry not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetPlayerPowerRanking404Example:
summary: Default getPlayerPowerRanking 404 response
x-microcks-default: true
value:
error: not_found
message: Power ranking entry not found for player.
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
GetPlayerPowerRanking429Example:
summary: Default getPlayerPowerRanking 429 response
x-microcks-default: true
value:
error: rate_limited
message: Rate limit exceeded.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/store:
get:
operationId: listStoreItems
summary: Fortnite Tracker List Store Items
description: >-
Retrieve the current Fortnite in-game store rotation, including both the
daily storefront and the weekly featured storefront with vBucks prices
and rarity tiers.
tags:
- Store
responses:
'200':
description: Store rotation retrieved.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StoreItem'
examples:
ListStoreItems200Example:
summary: Default listStoreItems 200 response
x-microcks-default: true
value:
- imageUrl: https://trackercdn.com/cdn/fortnitetracker.com/items/renegade.png
manifestId: 500123
name: Renegade Raider
rarity: Legendary
storeCategory: BRWeeklyStorefront
vBucks: 1500
- imageUrl: https://trackercdn.com/cdn/fortnitetracker.com/items/skull-trooper.png
manifestId: 500124
name: Skull Trooper
rarity: Epic
storeCategory: BRDailyStorefront
vBucks: 1200
'401':
description: Missing or invalid TRN-Api-Key header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListStoreItems401Example:
summary: Default listStoreItems 401 response
x-microcks-default: true
value:
error: unauthorized
message: Missing or invalid TRN-Api-Key header.
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListStoreItems429Example:
summary: Default listStoreItems 429 response
x-microcks-default: true
value:
error: rate_limited
message: Rate limit exceeded.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/challenges:
get:
operationId: listChallenges
summary: Fortnite Tracker List Weekly Challenges
description: >-
Retrieve the current week's Battle Pass challenge set, including
completion criteria, star rewards, and challenge difficulty.
tags:
- Challenges
responses:
'200':
description: Weekly challenge list retrieved.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Challenge'
examples:
ListChallenges200Example:
summary: Default listChallenges 200 response
x-microcks-default: true
value:
- id: 500123
name: Deal damage with shotguns to opponents
description: Deal 1,000 damage to opponents using shotguns.
completionGoal: 1000
rewardStars: 5
difficulty: medium
week: 6
season: c5s4
- id: 500124
name: Land at named locations
description: Land at 5 different named locations in a single match.
completionGoal: 5
rewardStars: 3
difficulty: easy
week: 6
season: c5s4
'401':
description: Missing or invalid TRN-Api-Key header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListChallenges401Example:
summary: Default listChallenges 401 response
x-microcks-default: true
value:
error: unauthorized
message: Missing or invalid TRN-Api-Key header.
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ListChallenges429Example:
summary: Default listChallenges 429 response
x-microcks-default: true
value:
error: rate_limited
message: Rate limit exceeded.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
securitySchemes:
trnApiKey:
type: apiKey
in: header
name: TRN-Api-Key
description: >-
Per-account API key issued from
https://fortnitetracker.com/site-api/create. Pass as the `TRN-Api-Key`
request header. Default rate limit is approximately one request per two
seconds per key.
schemas:
PlayerProfile:
type: object
description: Fortnite player profile with lifetime and per-mode statistics.
properties:
accountId:
type: string
format: uuid
description: Epic Games account UUID.
example: 4735ce91-3292-4caf-8a5b-17789b40f79c
platformId:
type: integer
description: >-
Numeric platform identifier (5 = PC/Epic, 1 = PSN, 2 = Xbox Live).
example: 5
platformName:
type: string
description: Platform short code (`pc`, `psn`, `xbl`).
example: pc
platformNameLong:
type: string
description: Human-readable platform name.
example: PC / Epic Games
epicUserHandle:
type: string
description: Epic Games display name.
example: Ninja
stats:
type: object
description: Per-mode stat blocks keyed by mode identifier.
additionalProperties:
$ref: '#/components/schemas/StatBlock'
lifeTimeStats:
type: array
description: Lifetime statistic key/value pairs.
items:
$ref: '#/components/schemas/StatLine'
recentMatches:
type: array
description: Recent match summary entries.
items:
$ref: '#/components/schemas/MatchSummary'
required:
- accountId
- epicUserHandle
- platformName
StatBlock:
type: object
description: A grouped stat block for a single mode (e.g., solo, duo, squad).
properties:
trnRating:
$ref: '#/components/schemas/StatValue'
score:
$ref: '#/components/schemas/StatValue'
top1:
$ref: '#/components/schemas/StatValue'
top3:
$ref: '#/components/schemas/StatValue'
top5:
$ref: '#/components/schemas/StatValue'
top10:
$ref: '#/components/schemas/StatValue'
kd:
$ref: '#/components/schemas/StatValue'
winRatio:
$ref: '#/components/schemas/StatValue'
matches:
$ref: '#/components/schemas/StatValue'
kills:
$ref: '#/components/schemas/StatValue'
minutesPlayed:
$ref: '#/components/schemas/StatValue'
StatValue:
type: object
description: A single stat value with display formatting and numeric value.
properties:
label:
type: string
description: Human label for the stat.
example: K/D
field:
type: string
description: Internal field identifier.
example: kd
category:
type: string
description: Stat category (e.g., `Game`, `Combat`).
example: Combat
valueInt:
type: integer
description: Integer representation of the value where applicable.
example: 12
value:
type: string
description: Display value as a string.
example: '3.21'
rank:
type: string
description: Global rank for this stat.
example: '12345'
percentile:
type: number
format: float
description: Percentile rank (0-100).
example: 99.4
displayValue:
type: string
description: Pre-formatted display value.
example: '3.21'
StatLine:
type: object
description: A single lifetime stat key/value pair.
properties:
key:
type: string
description: Stat key (e.g., `Wins`, `Top 10`, `Kills`).
example: Wins
value:
type: string
description: Stat value as a string.
example: '247'
MatchSummary:
type: object
description: Summary of a recent match.
properties:
id:
type: integer
description: Match identifier.
example: 500123
accountId:
type: string
format: uuid
description: Account UUID this match belongs to.
example: 4735ce91-3292-4caf-8a5b-17789b40f79c
playlist:
type: string
description: Playlist mode key (e.g., `p2`, `p10`, `p9`).
example: p9
kills:
type: integer
description: Kills in this match.
example: 8
minutesPlayed:
type: integer
description: Minutes played in this match.
example: 22
top1:
type: integer
description: Number of #1 placements in this match group.
example: 1
top5:
type: integer
description: Number of top-5 placements in this match group.
example: 1
top6:
type: integer
description: Number of top-6 placements in this match group.
example: 1
top10:
type: integer
description: Number of top-10 placements in this match group.
example: 1
top12:
type: integer
description: Number of top-12 placements in this match group.
example: 1
top25:
type: integer
description: Number of top-25 placements in this match group.
example: 1
matches:
type: integer
description: Matches in this aggregation group.
example: 1
score:
type: integer
description: Score points earned.
example: 1820
dateCollected:
type: string
format: date-time
description: Timestamp the match summary was recorded.
example: '2026-05-29T18:42:11Z'
LeaderboardEntry:
type: object
description: A single leaderboard ranking row.
properties:
accountId:
type: string
format: uuid
description: Epic Games account UUID for the leaderboard entry.
example: 4735ce91-3292-4caf-8a5b-17789b40f79c
platformId:
type: integer
description: Numeric platform identifier.
example: 5
platformName:
type: string
description: Platform short code.
example: pc
epicUserHandle:
type: string
description: Player display name.
example: Bugha
rank:
type: integer
description: Rank position on the leaderboard.
example: 12
value:
type: string
description: Display value of the stat being ranked.
example: '247'
PowerRankingEntry:
type: object
description: A single competitive power-ranking row.
properties:
rank:
type: integer
description: Global rank position.
example: 1
country:
type: string
description: ISO 3166-1 alpha-2 country code.
example: US
platform:
type: string
description: Player platform (`pc`, `xbl`, `psn`).
example: pc
region:
type: string
description: Competitive region code.
example: na-east
epicNickname:
type: string
description: Player Epic Games display name.
example: Bugha
points:
type: number
format: float
description: Power-ranking points total.
example: 12500.5
earnings:
type: string
description: Tournament earnings as a display string (USD).
example: $3,000,000
twitchUrl:
type: string
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fortnite/refs/heads/main/openapi/fortnite-tracker.yaml