API reference
Shop, news, cosmetics, missions, player stats, and Save the World resources — normalized JSON, no raw Epic responses, no token handling on your end.
Authentication
All requests require an API key passed in the x-api-key header. Keys are prefixed with fns_.
Rate limits
Rate limits are per API key. Monthly quotas also apply.
| Plan | Rate (per min) | Monthly quota |
|---|---|---|
| Free | 30 | 10,000 |
| Pro | 120 | 1,000,000 |
When rate-limited, the response is 429 with a Retry-After: 1 header.
Error codes
All error responses follow the format: {"code": "error_code", "message": "...", "retryable": bool}
| HTTP | Code | Description |
|---|---|---|
| 401 | invalid_api_key | Missing or invalid API key |
| 403 | plan_forbidden | Your plan doesn't include this endpoint |
| 429 | rate_limited | Rate limit exceeded — retry after 1s |
| 429 | quota_exceeded | Monthly quota exhausted |
| 429 | abuse_detected | Unusual traffic pattern |
| 503 | service_unavailable | Upstream data unavailable |
Item shop
Returns all current offers in the Fortnite item shop, normalized from Epic's storefront catalog. Cached for 5 minutes.
News
Returns current in-game news entries. Cached for 10 minutes.
Missions
Returns the current Save the World mission alert board (power level, tile, rewards). Cached for 5 minutes.
Cosmetics
Returns the full cosmetics catalog. Supports optional query params: q (name search), type, rarity. Cached for 1 hour.
Look up a specific cosmetic. Returns 404 if not found.
Player lookup
Looks up a player by their Fortnite display name. Returns account ID and display name. Cached for 10 minutes.
BR stats
Returns Battle Royale stats for an account ID. Use /v1/players/{display_name} first to resolve a display name to an account ID. Cached for 5 minutes.
STW resources PRO
Save the World is the active focus of this API. This endpoint returns an account's STW resource counts — Gold, Storm Shards, XP boosts, vouchers, and more — pulled from Epic's public campaign profile.
Requires the Pro plan (account group). Pulls a public campaign profile snapshot — no login from the target player required. Each fresh (non-cached) lookup also reports into the shared community leaderboard.
Account portal
No auth required. Body: {"name": "...", "plan_name": "free" | "pro"}. Returns the API key once — it's never shown again.
Returns your keys without secrets — status, plan, version, created date.
Invalidates the old key immediately and returns a new one. Shown once.
Returns used, limit, remaining, and month.
Returns name, monthly_quota, rate_per_minute, allowed_groups.
Interactive explorer
Live OpenAPI spec from your running API instance. Requires a key to test endpoints.
The interactive spec is served directly from your API at /openapi.json.
View raw spec → Open Swagger UI →