Skip to main content

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
string
default:"en"
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
curl -X GET "https://rocks.rive.wtf/api/fortnite/cosmetics?language=en" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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
string
default:"en"
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
string
default:"en"
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

cosmetic_id
string
required
unique cosmetic ID (e.g. CID_001_Athena_Commando_F_Default).

Query Parameters

language
string
default:"en"
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
string
default:"en"
Language for names and descriptions.
name
string
Cosmetic name.
type
string
Cosmetic type (e.g. outfit, backpack, pickaxe, glider, wrap).
rarity
string
Rarity value (e.g. legendary, epic, rare, uncommon, common).
matchMethod
string
default:"full"
How to match the name. Options: full, contains, starts, ends.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/fortnite/cosmetics/br/search?name=Recon+Scout&matchMethod=contains" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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
curl -X GET "https://rocks.rive.wtf/api/fortnite/cosmetics/br/search/all?rarity=legendary&type=outfit" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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

id
string[]
required
One or more cosmetic IDs. Repeat the parameter for multiple values (e.g. ?id=CID_001&id=CID_002).
language
string
default:"en"
Language for names and descriptions.

Example Request

cURL
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"
JavaScript
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);
Python
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
string
default:"en"
Language for names and descriptions.

Car Cosmetics

Get all Rocket Racing car cosmetics.

Endpoint

GET /api/fortnite/cosmetics/cars

Query Parameters

language
string
default:"en"
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
string
default:"en"
Language for names and descriptions.

Bean Cosmetics

Get all Fall Guys (Bean) cosmetics.

Endpoint

GET /api/fortnite/cosmetics/beans

Query Parameters

language
string
default:"en"
Language for names and descriptions.

Shop

Item Shop

Get the current Fortnite item shop.

Endpoint

GET /api/fortnite/shop

Query Parameters

language
string
default:"en"
Language for item names and descriptions.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/fortnite/shop" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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

name
string
required
player’s Epic Games display name.
accountType
string
default:"epic"
Account type. Options: epic, psn, xbl.
timeWindow
string
default:"lifetime"
Time window for stats. Options: lifetime, season.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/fortnite/stats/br?name=Ninja&timeWindow=lifetime" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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

GET /api/fortnite/aes

Query Parameters

keyFormat
string
default:"hex"
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
string
default:"en"
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

name
string
required
creator code.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/fortnite/creatorcode?name=epicgames" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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

GET /api/fortnite/map

Query Parameters

language
string
default:"en"
Language for POI names.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/fortnite/map" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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

GET /api/fortnite/news

Query Parameters

language
string
default:"en"
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
string
default:"en"
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
string
default:"en"
Language for news content.

Playlists

Get All Playlists

Get all available Fortnite playlists.

Endpoint

GET /api/fortnite/playlists

Query Parameters

language
string
default:"en"
Language for playlist names and descriptions.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/fortnite/playlists" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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

playlist_id
string
required
unique playlist ID (e.g. Playlist_DefaultSolo).

Query Parameters

language
string
default:"en"
Language for playlist names and descriptions.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/fortnite/playlists/Playlist_DefaultSolo" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
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);
Python
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 StatusMeaning
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.