Docs/Fortnite API

Fortnite API Reference

Competitive Fortnite, org rosters, player earnings, Creative map metrics, shop, cosmetics, and news.

Use these endpoints for tournament trackers, org sites, Discord bots, Creative discovery tools, and player profile pages.

Quickstart

Base URL

https://api.citoapi.com/api/v1

Authentication

Send your key in the x-api-key header.

Response Shape

Most endpoints return success, data, and optional metadata.

curl "https://api.citoapi.com/api/v1/fortnite/matches/live?includeLeaderboard=true" \
  -H "x-api-key: YOUR_API_KEY"

Coverage Notes

Live events

Live leaderboard data depends on active Epic event windows and the regions Epic publishes for that event.

Team resolution

When teamAccountIds are present, Cito resolves teamMembers so duo/trio views can show individual names.

Historical data

Tournament, org, player, and transfer history is normalized from indexed competitive sources and may include dataQuality warnings.

Creative metrics

Creative rows include thumbnails, official fortnite.com links, map history, and estimated creator earnings when source metrics are available.

Endpoints

Search by path, feature, parameter, or data type.

Competitive

Events, live windows, leaderboards, tournament results, and player/org history.

GET/api/v1/fortnite

Discover supported Fortnite endpoints and current limitations.

Freshness: Live capability metadata

GET/api/v1/fortnite/matches/live

Active competitive events with optional leaderboard rows and resolved duo/trio members.

Params: includeLeaderboard

Freshness: Live event windows

GET/api/v1/fortnite/tournaments/live

Live tournament windows and leaderboard summaries.

Params: includeLeaderboard, limit

GET/api/v1/fortnite/tournaments/live/{eventId}/{windowId}

One live event-window leaderboard with teamAccountIds and teamMembers where available.

Params: eventId, windowId, region, page

GET/api/v1/fortnite/tournaments

Historical, upcoming, and completed Fortnite tournaments.

Params: region, year, status, limit, offset

GET/api/v1/fortnite/tournaments/{id}/matches

Match/session rows for a tournament where indexed.

Params: id, limit, offset

GET/api/v1/fortnite/tournaments/{id}/results

Placement and result rows for a tournament where indexed.

Params: id, limit, offset

GET/api/v1/fortnite/tournaments/player/{identifier}/history

Tournament history for a player by slug, name, or account identifier.

Params: identifier, limit, offset

GET/api/v1/fortnite/tournaments/org/{slug}/history

Tournament history for a Fortnite esports organization.

Params: slug, limit, offset

Players And Orgs

Profiles, rosters, former members, transfers, prize totals, and earnings history.

GET/api/v1/fortnite/players

List indexed competitive Fortnite players.

Params: search, country, org, limit, offset

GET/api/v1/fortnite/players/top-earners

Highest-earning tracked Fortnite pros with org and country context.

Params: limit, offset, country

GET/api/v1/fortnite/players/{identifier}

Player profile with current org, earnings, and tournament history.

Params: identifier

GET/api/v1/fortnite/players/{identifier}/transfers

Roster movement for a player where transfer history is known.

Params: identifier

GET/api/v1/fortnite/orgs

List Fortnite esports organizations.

Params: search, limit, offset

GET/api/v1/fortnite/orgs/{slug}/roster

Current pro/content roster with optional former members.

Params: slug, includeFormer

GET/api/v1/fortnite/orgs/{slug}/former

Former roster members for an organization.

Params: slug, limit, offset

GET/api/v1/fortnite/orgs/{slug}/earnings

Organization prize total summary.

Params: slug

GET/api/v1/fortnite/orgs/{slug}/earnings/history

Organization earnings history over time.

Params: slug, limit, offset

GET/api/v1/fortnite/transfers

Recent Fortnite roster changes.

Params: org, player, limit, offset

Creative

Island discovery, map metadata, thumbnails, official Fortnite links, metrics, and creator rollups.

GET/api/v1/fortnite/creative/maps

Search indexed Creative islands with media fields.

Params: search, tag, creator, limit, offset

GET/api/v1/fortnite/creative/maps/trending

Trending Creative maps with current metrics, thumbnails, creator metadata, and fortnite.com links.

Params: limit

GET/api/v1/fortnite/creative/maps/{code}

One Creative island by code with latest metrics and media.

Params: code

GET/api/v1/fortnite/creative/maps/{code}/history

Historical metric snapshots for a Creative island.

Params: code, limit

GET/api/v1/fortnite/creative/maps/{code}/discovery

Stored Discovery row/category observations for an island.

Params: code, limit

GET/api/v1/fortnite/creative/sponsored

Islands observed in sponsored or promoted Discovery placements.

Params: limit, offset

GET/api/v1/fortnite/creative/creators/{creator}/metrics

Creator-level Creative metrics and estimated earnings where available.

Params: creator

Game Content

Shop, cosmetics, news, server status, map, and creator-code lookups.

GET/api/v1/fortnite/shop

Current Fortnite item shop rows.

Freshness: Current shop when upstream source is available

GET/api/v1/fortnite/cosmetics

Search cosmetics by type, rarity, name, or introduction season.

Params: search, type, rarity, limit, offset

GET/api/v1/fortnite/cosmetics/new

Recently added cosmetics.

Params: limit

GET/api/v1/fortnite/cosmetics/{id}

One cosmetic by ID.

Params: id

GET/api/v1/fortnite/news

Battle Royale, Save the World, or Creative news.

Params: mode

GET/api/v1/fortnite/map

Current map image and metadata when available.

GET/api/v1/fortnite/status

Fortnite server status.

GET/api/v1/fortnite/creator-code/{code}

Creator-code lookup where upstream source returns a match.

Params: code

Common Parameters

NameTypeRequiredDescription
includeLeaderboardbooleanNoSet false to list live events without leaderboard rows.
regionstringNoFilter event windows or historical rows by region where supported.
limitintegerNoMaximum rows returned for list endpoints.
offsetintegerNoPagination offset for list endpoints.
yearintegerNoFilter historical tournaments by year where supported.

Live Competitive Events

Match routes are aliases for tournament/event data. Use teamMembers for duo/trio UI instead of parsing displayName.

curl "https://api.citoapi.com/api/v1/fortnite/matches/live?includeLeaderboard=true" \
  -H "x-api-key: YOUR_API_KEY"
{
  "success": true,
  "count": 1,
  "data": [
    {
      "eventId": "epicgames_S37_FNCS",
      "eventWindowId": "epicgames_S37_FNCS_Event1",
      "name": "FNCS Major",
      "regions": ["NAE", "EU"],
      "startTime": "2026-04-29T18:00:00.000Z",
      "endTime": "2026-04-29T21:00:00.000Z",
      "isLive": true,
      "leaderboardCount": 100,
      "leaderboard": [
        {
          "rank": 1,
          "displayName": "PlayerOne / PlayerTwo",
          "accountId": "primary-account-id",
          "teamAccountIds": ["account-id-1", "account-id-2"],
          "teamMembers": [
            { "accountId": "account-id-1", "displayName": "PlayerOne" },
            { "accountId": "account-id-2", "displayName": "PlayerTwo" }
          ],
          "score": 532,
          "kills": 141,
          "matchesPlayed": 10
        }
      ]
    }
  ]
}

Organization Rosters

Roster responses separate active pro players, content creators, and former members. Use this for org pages and transfer context.

curl "https://api.citoapi.com/api/v1/fortnite/orgs/xset/roster?includeFormer=true" \
  -H "x-api-key: YOUR_API_KEY"
{
  "success": true,
  "data": {
    "slug": "xset",
    "name": "XSET",
    "currentRoster": {
      "total": 8,
      "proPlayers": [
        { "name": "Clix", "role": "Player", "isActive": true },
        { "name": "MrSavage", "role": "Player", "isActive": true }
      ],
      "contentCreators": [
        { "name": "Moxie", "role": "Content Creator", "isActive": true }
      ]
    },
    "formerRoster": {
      "total": 19,
      "members": [
        { "name": "Av", "role": "Former Player", "isActive": false }
      ]
    },
    "dataQuality": {
      "normalized": true,
      "warnings": []
    }
  }
}

Players And Earnings

Player detail endpoints return profile context, current team, prize totals, and tournament rows where indexed.

curl "https://api.citoapi.com/api/v1/fortnite/players/bugha" \
  -H "x-api-key: YOUR_API_KEY"
{
  "success": true,
  "data": {
    "id": "player-id",
    "name": "Bugha",
    "country": "United States",
    "currentTeam": "Dignitas",
    "totalEarnings": 3402100,
    "earningsRank": 1,
    "tournaments": [
      {
        "name": "FNCS Major",
        "placement": 1,
        "earnings": 50000,
        "date": "2026-04-20T00:00:00.000Z"
      }
    ],
    "dataQuality": {
      "warnings": []
    }
  }
}

Creative Map Metrics

Creative endpoints are built for discovery pages, creator dashboards, map history charts, and island detail pages.

curl "https://api.citoapi.com/api/v1/fortnite/creative/maps/trending?limit=10" \
  -H "x-api-key: YOUR_API_KEY"
{
  "success": true,
  "data": [
    {
      "code": "8179-7540-8163",
      "title": "2v3 Clutch Realistics",
      "creatorName": "wzf",
      "thumbnailUrl": "https://api.citoapi.com/api/v1/public/images/fortnite/...",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/fortnite/...",
      "imageUrls": ["https://api.citoapi.com/api/v1/public/images/fortnite/..."],
      "fortniteUrl": "https://www.fortnite.com/@wzf/8179-7540-8163",
      "latestMetrics": {
        "plays": 366,
        "peakCcu": 56,
        "minutesPlayed": 6001,
        "averageMinutes": 18.52,
        "estimates": {
          "creatorEarningsUsdLow": 0.5,
          "creatorEarningsUsdHigh": 3
        }
      }
    }
  ]
}

Code Examples

Node.js

const response = await fetch(
  "https://api.citoapi.com/api/v1/fortnite/orgs/xset/roster?includeFormer=true",
  { headers: { "x-api-key": process.env.CITO_API_KEY } }
);

const { data } = await response.json();
console.log(data.currentRoster.proPlayers.map((player) => player.name));

Python

import os
import requests

response = requests.get(
    "https://api.citoapi.com/api/v1/fortnite/players/top-earners",
    params={"limit": 10},
    headers={"x-api-key": os.environ["CITO_API_KEY"]},
    timeout=15,
)

response.raise_for_status()
for player in response.json()["data"]:
    print(player["name"], player.get("totalEarnings"))

React Roster Render

export function FortniteRoster({ roster }) {
  return (
    <ul>
      {roster.currentRoster.proPlayers.map((player) => (
        <li key={player.name}>
          {player.name}
          {player.country ? <span> - {player.country}</span> : null}
        </li>
      ))}
    </ul>
  );
}

Next

Call of Duty API

Continue