Documentation Index Fetch the complete documentation index at: https://rocks.docs.rive.wtf/llms.txt
Use this file to discover all available pages before exploring further.
Every API key is tied to one IP . To apply for a key, DM southctrl on Discord.
Use the endpoint path below, replace the required params, and send Authorization: Bearer YOUR_API_KEY.
Most Used Endpoints
Cosmetics Browse Fortnite cosmetics and search items
Shop Get the current item shop
Stats Look up player stats
News Fetch current Fortnite news
This page is large because it covers many Fortnite routes. If you are new, start with cosmetics, shop, or stats.
Cosmetics
All Cosmetics
Get all Fortnite cosmetics across all categories.
Endpoint
GET /api/fortnite/cosmetics
Query Parameters
Language for cosmetic names and descriptions (e.g. en, de, fr, es, it, ja, ko, pl, pt-BR, ru, tr, zh-CN, zh-Hant).
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/cosmetics?language=en" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch ( 'https://rocks.rive.wtf/api/fortnite/cosmetics?language=en' , {
headers: { 'Authorization' : 'Bearer YOUR_API_KEY' }
});
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/cosmetics' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' },
params = { 'language' : 'en' }
)
print (response.json())
Example Response
{
"status" : 200 ,
"data" : {
"br" : [
{
"id" : "CID_001_Athena_Commando_F_Default" ,
"name" : "Recon Scout" ,
"rarity" : { "value" : "rare" , "displayValue" : "Rare" },
"images" : { "icon" : "https://..." }
}
],
"tracks" : [],
"instruments" : [],
"cars" : [],
"lego" : [],
"legoKits" : [],
"beans" : []
}
}
New Cosmetics
Get the most recently added cosmetics.
Endpoint
GET /api/fortnite/cosmetics/new
Query Parameters
Language for names and descriptions.
Example Response
{
"status" : 200 ,
"data" : {
"date" : "2024-01-15T00:00:00Z" ,
"build" : "28.10" ,
"previousBuild" : "28.00" ,
"hashes" : { "all" : "abc123" , "br" : "def456" },
"lastAdditions" : { "all" : "2024-01-15T00:00:00Z" , "br" : "2024-01-15T00:00:00Z" },
"items" : { "br" : [], "tracks" : [], "instruments" : [], "cars" : [], "lego" : [], "legoKits" : [], "beans" : [] }
}
}
Battle Royale Cosmetics
Get all Battle Royale cosmetics.
Endpoint
GET /api/fortnite/cosmetics/br
Query Parameters
Language for names and descriptions.
Battle Royale Cosmetic by ID
Get a specific Battle Royale cosmetic by its ID.
Endpoint
GET /api/fortnite/cosmetics/br/{cosmetic_id}
Path Parameters
unique cosmetic ID (e.g. CID_001_Athena_Commando_F_Default).
Query Parameters
Language for names and descriptions.
Example Response
{
"status" : 200 ,
"data" : {
"id" : "CID_001_Athena_Commando_F_Default" ,
"name" : "Recon Scout" ,
"description" : "A classic recon outfit." ,
"type" : { "value" : "outfit" , "displayValue" : "Outfit" , "backendValue" : "AthenaCharacter" },
"rarity" : { "value" : "rare" , "displayValue" : "Rare" , "backendValue" : "EFortRarity::Rare" },
"images" : {
"smallIcon" : "https://..." ,
"icon" : "https://..." ,
"featured" : "https://..."
},
"added" : "2018-07-25T00:00:00Z" ,
"shopHistory" : [ "2018-07-25T00:00:00Z" ]
}
}
Search Battle Royale Cosmetic
Search for a single Battle Royale cosmetic matching the given filters. Returns the first match.
Endpoint
GET /api/fortnite/cosmetics/br/search
Query Parameters
Language for names and descriptions.
Cosmetic type (e.g. outfit, backpack, pickaxe, glider, wrap).
Rarity value (e.g. legendary, epic, rare, uncommon, common).
How to match the name. Options: full, contains, starts, ends.
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/cosmetics/br/search?name=Recon+Scout&matchMethod=contains" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch (
'https://rocks.rive.wtf/api/fortnite/cosmetics/br/search?name=Recon+Scout&matchMethod=contains' ,
{ headers: { 'Authorization' : 'Bearer YOUR_API_KEY' } }
);
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/cosmetics/br/search' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' },
params = { 'name' : 'Recon Scout' , 'matchMethod' : 'contains' }
)
print (response.json())
Search Battle Royale Cosmetics (Multiple)
Search for all Battle Royale cosmetics matching the given filters. Returns an array of matches.
Endpoint
GET /api/fortnite/cosmetics/br/search/all
Query Parameters
Same as Search Battle Royale Cosmetic above. All matching cosmetics are returned instead of just the first.
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/cosmetics/br/search/all?rarity=legendary&type=outfit" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch (
'https://rocks.rive.wtf/api/fortnite/cosmetics/br/search/all?rarity=legendary&type=outfit' ,
{ headers: { 'Authorization' : 'Bearer YOUR_API_KEY' } }
);
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/cosmetics/br/search/all' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' },
params = { 'rarity' : 'legendary' , 'type' : 'outfit' }
)
print (response.json())
Battle Royale Cosmetics by IDs
Get multiple Battle Royale cosmetics by their IDs in a single request.
Endpoint
GET /api/fortnite/cosmetics/br/search/ids
Query Parameters
One or more cosmetic IDs. Repeat the parameter for multiple values (e.g. ?id=CID_001&id=CID_002).
Language for names and descriptions.
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/cosmetics/br/search/ids?id=CID_001_Athena_Commando_F_Default&id=CID_002_Athena_Commando_F_Default" \
-H "Authorization: Bearer YOUR_API_KEY"
const ids = [ 'CID_001_Athena_Commando_F_Default' , 'CID_002_Athena_Commando_F_Default' ];
const params = new URLSearchParams ( ids . map ( id => [ 'id' , id ]));
const response = await fetch (
`https://rocks.rive.wtf/api/fortnite/cosmetics/br/search/ids? ${ params } ` ,
{ headers: { 'Authorization' : 'Bearer YOUR_API_KEY' } }
);
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/cosmetics/br/search/ids' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' },
params = { 'id' : [ 'CID_001_Athena_Commando_F_Default' , 'CID_002_Athena_Commando_F_Default' ]}
)
print (response.json())
Example Response
{
"status" : 200 ,
"data" : [
{
"id" : "CID_001_Athena_Commando_F_Default" ,
"name" : "Recon Scout" ,
"type" : { "value" : "outfit" , "displayValue" : "Outfit" },
"rarity" : { "value" : "rare" , "displayValue" : "Rare" },
"images" : { "smallIcon" : "https://..." , "icon" : "https://..." }
},
{
"id" : "CID_002_Athena_Commando_F_Default" ,
"name" : "Aerial Assault Trooper" ,
"type" : { "value" : "outfit" , "displayValue" : "Outfit" },
"rarity" : { "value" : "rare" , "displayValue" : "Rare" },
"images" : { "smallIcon" : "https://..." , "icon" : "https://..." }
}
]
}
Track Cosmetics
Get all Festival track cosmetics.
Endpoint
GET /api/fortnite/cosmetics/tracks
Example Response
{
"status" : 200 ,
"data" : [
{
"id" : "SparksSong_0001" ,
"title" : "Example Song" ,
"artist" : "Example Artist" ,
"releaseYear" : 2023 ,
"bpm" : 120 ,
"duration" : 210 ,
"difficulty" : { "vocals" : 2 , "guitar" : 3 , "bass" : 2 , "plasticBass" : 1 , "drums" : 3 , "plasticDrums" : 2 },
"genres" : [ "Pop" ],
"albumArt" : "https://..." ,
"added" : "2024-01-15T00:00:00Z"
}
]
}
Instrument Cosmetics
Get all Festival instrument cosmetics.
Endpoint
GET /api/fortnite/cosmetics/instruments
Query Parameters
Language for names and descriptions.
Car Cosmetics
Get all Rocket Racing car cosmetics.
Endpoint
GET /api/fortnite/cosmetics/cars
Query Parameters
Language for names and descriptions.
LEGO Cosmetics
Get all LEGO Fortnite cosmetics.
Endpoint
GET /api/fortnite/cosmetics/lego
LEGO Kit Cosmetics
Get all LEGO kit cosmetics.
Endpoint
GET /api/fortnite/cosmetics/lego/kits
Query Parameters
Language for names and descriptions.
Bean Cosmetics
Get all Fall Guys (Bean) cosmetics.
Endpoint
GET /api/fortnite/cosmetics/beans
Query Parameters
Language for names and descriptions.
Shop
Item Shop
Get the current Fortnite item shop.
Endpoint
Query Parameters
Language for item names and descriptions.
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/shop" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch ( 'https://rocks.rive.wtf/api/fortnite/shop' , {
headers: { 'Authorization' : 'Bearer YOUR_API_KEY' }
});
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/shop' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' }
)
print (response.json())
Example Response
{
"status" : 200 ,
"data" : {
"hash" : "abc123" ,
"date" : "2024-01-15T00:00:00Z" ,
"vbuckIcon" : "https://..." ,
"entries" : [
{
"regularPrice" : 1500 ,
"finalPrice" : 1500 ,
"offerId" : "v2:/..." ,
"inDate" : "2024-01-15T00:00:00Z" ,
"outDate" : "2024-01-16T00:00:00Z" ,
"giftable" : true ,
"refundable" : false ,
"sortPriority" : 0 ,
"brItems" : [
{ "id" : "CID_001" , "name" : "Recon Scout" , "images" : { "icon" : "https://..." } }
]
}
]
}
}
Stats
Battle Royale Stats
Get Battle Royale stats for a player by their Epic Games username.
Endpoint
GET /api/fortnite/stats/br
Query Parameters
player’s Epic Games display name.
Account type. Options: epic, psn, xbl.
Time window for stats. Options: lifetime, season.
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/stats/br?name=Ninja&timeWindow=lifetime" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch (
'https://rocks.rive.wtf/api/fortnite/stats/br?name=Ninja&timeWindow=lifetime' ,
{ headers: { 'Authorization' : 'Bearer YOUR_API_KEY' } }
);
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/stats/br' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' },
params = { 'name' : 'Ninja' , 'timeWindow' : 'lifetime' }
)
print (response.json())
Example Response
{
"status" : 200 ,
"data" : {
"account" : {
"id" : "abc123" ,
"name" : "Ninja"
},
"battlePass" : {
"level" : 100 ,
"progress" : 75
},
"stats" : {
"all" : {
"overall" : {
"score" : 9500000 ,
"wins" : 12500 ,
"kills" : 180000 ,
"deaths" : 30000 ,
"kd" : 6.0 ,
"matches" : 42500 ,
"winRate" : 29.41 ,
"minutesPlayed" : 250000 ,
"playersOutlived" : 1500000 ,
"lastModified" : "2024-01-15T00:00:00Z"
},
"solo" : {
"wins" : 5000 ,
"kills" : 70000 ,
"kd" : 5.8 ,
"matches" : 15000 ,
"winRate" : 33.33
},
"duo" : {
"wins" : 3500 ,
"kills" : 55000 ,
"kd" : 6.1 ,
"matches" : 12000 ,
"winRate" : 29.17
},
"squad" : {
"wins" : 4000 ,
"kills" : 55000 ,
"kd" : 6.2 ,
"matches" : 15500 ,
"winRate" : 25.81
}
},
"keyboardMouse" : {
"overall" : { "matches" : 40000 , "wins" : 12000 , "kd" : 6.1 }
},
"gamepad" : {
"overall" : { "matches" : 2000 , "wins" : 400 , "kd" : 4.5 }
},
"touch" : {
"overall" : { "matches" : 500 , "wins" : 100 , "kd" : 3.2 }
}
}
}
}
Stats are only available for players who have their stats set to public in their Epic Games account settings.
AES Keys
Get AES Keys
Get the current Fortnite AES encryption keys.
Endpoint
Query Parameters
Key format. Options: hex, base64.
Example Response
{
"status" : 200 ,
"data" : {
"build" : "28.10" ,
"mainKey" : "0x1234..." ,
"dynamicKeys" : [
{
"pakFilename" : "pakchunk10-WindowsClient.pak" ,
"pakGuid" : "abc123" ,
"key" : "0x..."
}
],
"updated" : "2024-01-15T00:00:00Z"
}
}
Banners
Get Banners
Get all Fortnite banners.
Endpoint
GET /api/fortnite/banners
Query Parameters
Language for banner names and descriptions.
Get Banner Colors
Get all available banner colors.
Endpoint
GET /api/fortnite/banners/colors
Example Response
{
"status" : 200 ,
"data" : [
{
"id" : "DefaultColor1" ,
"color" : "#FFFFFF" ,
"category" : "primary" ,
"subCategoryGroup" : 1
}
]
}
Creator Code
Get Creator Code
Look up a Fortnite Support-a-Creator code.
Endpoint
GET /api/fortnite/creatorcode
Query Parameters
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/creatorcode?name=epicgames" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch ( 'https://rocks.rive.wtf/api/fortnite/creatorcode?name=epicgames' , {
headers: { 'Authorization' : 'Bearer YOUR_API_KEY' }
});
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/creatorcode' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' },
params = { 'name' : 'epicgames' }
)
print (response.json())
Example Response
{
"status" : 200 ,
"data" : {
"code" : "epicgames" ,
"account" : { "id" : "abc123" , "name" : "Epic Games" },
"status" : "ACTIVE" ,
"verified" : true
}
}
Map
Get Map
Get the current Fortnite map with POI data.
Endpoint
Query Parameters
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/map" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch ( 'https://rocks.rive.wtf/api/fortnite/map' , {
headers: { 'Authorization' : 'Bearer YOUR_API_KEY' }
});
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/map' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' }
)
print (response.json())
Example Response
{
"status" : 200 ,
"data" : {
"images" : {
"blank" : "https://..." ,
"pois" : "https://..."
},
"pois" : [
{
"id" : "Athena_POI_01" ,
"name" : "Tilted Towers" ,
"location" : { "x" : 0.5 , "y" : 0.4 , "z" : 0.0 }
}
]
}
}
News
Get All News
Get Fortnite news for all modes.
Endpoint
Query Parameters
Language for news content.
Example Response
{
"status" : 200 ,
"data" : {
"br" : {
"hash" : "abc" ,
"date" : "2024-01-15T00:00:00Z" ,
"motds" : [
{
"id" : "motd_01" ,
"title" : "New Season" ,
"body" : "A new season has arrived." ,
"image" : "https://..." ,
"sortingPriority" : 0 ,
"hidden" : false
}
],
"messages" : []
},
"stw" : { "hash" : "def" , "date" : "2024-01-15T00:00:00Z" , "motds" : [], "messages" : [] }
}
}
Get Battle Royale News
Get news specific to Battle Royale mode.
Endpoint
GET /api/fortnite/news/br
Query Parameters
Language for news content.
Get Save the World News
Get news specific to Save the World mode.
Endpoint
GET /api/fortnite/news/stw
Query Parameters
Language for news content.
Playlists
Get All Playlists
Get all available Fortnite playlists.
Endpoint
GET /api/fortnite/playlists
Query Parameters
Language for playlist names and descriptions.
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/playlists" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch ( 'https://rocks.rive.wtf/api/fortnite/playlists' , {
headers: { 'Authorization' : 'Bearer YOUR_API_KEY' }
});
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/playlists' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' }
)
print (response.json())
Example Response
{
"status" : 200 ,
"data" : [
{
"id" : "Playlist_DefaultSolo" ,
"name" : "Solo" ,
"description" : "Drop in, loot up, and be the last one standing." ,
"minPlayers" : 1 ,
"maxPlayers" : 1 ,
"maxTeams" : 100 ,
"maxTeamSize" : 1 ,
"isTournament" : false ,
"isLimitedTimeMode" : false ,
"isLargeTeamGame" : false ,
"images" : { "showcase" : "https://..." , "missionIcon" : "https://..." },
"added" : "2018-07-25T00:00:00Z"
}
]
}
Get Playlist by ID
Get a specific playlist by its ID.
Endpoint
GET /api/fortnite/playlists/{playlist_id}
Path Parameters
unique playlist ID (e.g. Playlist_DefaultSolo).
Query Parameters
Language for playlist names and descriptions.
Example Request
curl -X GET "https://rocks.rive.wtf/api/fortnite/playlists/Playlist_DefaultSolo" \
-H "Authorization: Bearer YOUR_API_KEY"
const response = await fetch ( 'https://rocks.rive.wtf/api/fortnite/playlists/Playlist_DefaultSolo' , {
headers: { 'Authorization' : 'Bearer YOUR_API_KEY' }
});
const data = await response . json ();
console . log ( data );
import requests
response = requests.get(
'https://rocks.rive.wtf/api/fortnite/playlists/Playlist_DefaultSolo' ,
headers = { 'Authorization' : 'Bearer YOUR_API_KEY' }
)
print (response.json())
Error Handling
All endpoints return a consistent error structure when something goes wrong.
{
"error" : "Request to https://fortnite-api.com/... failed: ..."
}
HTTP Status Meaning 200Success 400Bad request — missing or invalid parameters 404Resource not found 500Internal server error
All endpoints support both GET and OPTIONS methods. CORS headers are included on every response, so these endpoints can be called directly from browser-based applications.