Patch 7.1.0 is live — Clean up of duplicated endpoints & improvement of Typescript SDK.
api-fortnite
← Back to Blog

Fortnite Item Shop API - Complete Guide

Everything you need to know about the Fortnite Item Shop API. Get current shop data, filter by type or rarity, and build item shop trackers.

guideitem-shopcosmetics

The Fortnite Item Shop


The Fortnite Item Shop resets every day at 00:00 UTC, featuring cosmetic items players can purchase with V-Bucks. The Fortnite API gives you complete access to this data in real-time.


Item Shop Endpoint


GET /api/v1/shop

Base URL: https://prod.api-fortnite.com

Auth: x-api-key: YOUR_API_KEY


Query Parameters


| Parameter | Description | Example |

|-----------|-------------|---------|

| type | Filter by item type | outfit, pickaxe, emote |

| section | Filter by shop section | section name string |

| rarity | Filter by rarity | rare, epic, legendary |

| search | Search items by name | Raven |

| lang | Language code | en, fr, de, es… |


Example Request


curl -H "x-api-key: YOUR_API_KEY" \
  "https://prod.api-fortnite.com/api/v1/shop?rarity=legendary&lang=en"

JavaScript Example


const res = await fetch(
  "https://prod.api-fortnite.com/api/v1/shop?lang=en",
  { headers: { "x-api-key": process.env.FORTNITE_API_KEY } }
);
const shop = await res.json();

Battle Pass Endpoint


GET /api/v1/shop/battlepass

Returns the current Battle Pass content and rewards. Supports the same lang query parameter.


Common Use Cases


1. Item Shop Tracker Website


Display today's full rotation with images, prices, and rarity badges. Filter the response client-side by type (outfits only, emotes only, etc.).


2. Discord Bot — Daily Shop Post


const cron = require("node-cron");

// Run at 00:05 UTC — 5 minutes after shop reset
cron.schedule("5 0 * * *", async () => {
  const res = await fetch("https://prod.api-fortnite.com/api/v1/shop", {
    headers: { "x-api-key": process.env.FORTNITE_API_KEY },
  });
  const shop = await res.json();

  // Structure depends on your shop response — adapt to the actual fields
  const channel = await client.channels.fetch(process.env.SHOP_CHANNEL_ID);
  await channel.send(`**Today's Item Shop is live!**`);
});

3. Rarity Filter


Show only Epic and Legendary items:


const res = await fetch(
  "https://prod.api-fortnite.com/api/v1/shop?rarity=legendary",
  { headers: { "x-api-key": process.env.FORTNITE_API_KEY } }
);

Best Practices


  • Cache the shop data — It only changes once per day at midnight UTC. A 23-hour cache TTL is safe and saves API quota.
  • Handle the reset window — Right at 00:00 UTC, data may briefly be unavailable. Implement a short retry with backoff.
  • Use the `lang` parameter — If your audience is international, pass the appropriate language code so item names and descriptions are localized.

  • Related Guides


  • Getting Started with the Fortnite API
  • How to Track Player Stats in Real-Time