FN SHOP developer docs
Base URL: https://fnitem.shop/api/v3/service/ · Your API key is on the API Key page in the panel.
Authentication
Send your API key on every request, in one of two ways:
- Header / query —
X-Api-Key: <key>or?api_key=<key>. Works from any server. - Plugin fields — the WordPress plugin sends the same key as
licplus your site domain assvr(bound on first install).
Your key identifies an owner; you only see and act on that owner's accounts, groups and orders.
Request & response
Call https://fnitem.shop/api/v3/service/{action} (GET or POST). Every response is JSON with at least:
{ "result": true, "code": "ok_code", "description": "", ... }
Gift lifecycle
| Action | Method | Params | Purpose |
|---|---|---|---|
verify_license | GET/POST | — | Validate the API key; returns user_id + plan. |
resolve_account | GET/POST | username, mode | Resolve a Fortnite username (or psn:/xb:/ns: prefixed) to an Epic account id. |
gift_check | GET/POST | offerId, receiver, category | Check whether a gift can be sent from the category's pool. |
gift_send | GET/POST | offerId, receiver, order_id, category | Send the gift from the category's pool. Records the order. |
Categories (per owner)
| Action | Method | Params | Purpose |
|---|---|---|---|
category_list | GET/POST | — | List your categories with account counts + the default. |
category_create | POST | slug, name | Create a category. slug: 2-40 chars of a-z 0-9 _ ; "all" reserved. |
category_delete | POST | slug, reassign_to? | Delete a category; if it holds accounts, pass reassign_to=<slug>. |
Accounts
| Action | Method | Params | Purpose |
|---|---|---|---|
accounts_list | GET/POST | category? | List your accounts (id, name, category, cached V-Bucks/gifts). |
accounts_data | GET/POST | — | Live per-account V-Bucks + gifts (queries Epic). |
account_assign | POST | account_id | account_ids, category | Move existing account(s) into a category. |
account_link | POST | code, category | Link a new Epic account (Android authorization code) into a category. |
account_remove | POST | account_id | Unlink an account (DB row only). |
Dashboards
| Action | Method | Params | Purpose |
|---|---|---|---|
inventory | GET/POST | — | Aggregate per category: counts, V-Bucks, free gift slots. No identifiers. |
groups_status | GET/POST | live? | Per-account detail per category. live=1 refreshes first. |
Admin (admin_key)
| Action | Method | Params | Purpose |
|---|---|---|---|
sync_accounts | GET/POST | from_id?, category?, account_id? | Refresh cached V-Bucks/gifts. Run by cron (X-Admin-Key). |
category
For gift_check/gift_send, category is one of your category slugs, or all (any account), or omitted (default). Only accounts whose group matches are used; an empty pool returns no_accounts_in_group.
Linking an account
Log into the Epic account, open this URL, and copy authorizationCode:
https://www.epicgames.com/id/api/redirect?clientId=3f69e56c7649492c8cc29f1af08a8a12&responseType=code
Then POST it to account_link with a category. Codes are single-use and expire quickly.
Examples
curl "https://fnitem.shop/api/v3/service/inventory" -H "X-Api-Key: YOUR_KEY" curl "https://fnitem.shop/api/v3/service/gift_send" -H "X-Api-Key: YOUR_KEY" \ -d offerId=OFFER -d receiver=PlayerName -d order_id=123 -d category=legal curl "https://fnitem.shop/api/v3/service/account_link" -H "X-Api-Key: YOUR_KEY" \ -d code=EPIC_AUTH_CODE -d category=legal
WordPress plugin (fnitemshop-auto-gift)
The plugin turns WooCommerce orders into automatic Fortnite gifts using this same API — no extra account setup beyond the panel.
Setup
- Link your Epic accounts and create your groups in the panel first.
- Install and activate the
fnitemshop-auto-giftplugin on your WordPress site. - In the plugin settings, paste your API key. It is sent as
lic, and your site domain is sent assvrand bound on first use.
How an order is fulfilled
- The customer enters their Epic username and pays for a product.
- The plugin resolves the username (
resolve_account) and verifies eligibility (gift_check), including Epic's 48-hour friend rule. - On a paid order it calls
gift_sendwith the product'sofferIdand acategory; the gift is sent from that group's pool. - The order is recorded and appears under Orders in the panel.
Pricing by group
Map each product to a Fortnite offerId and a category (for example, charge one price for a "legal" group and another for "semi_legal"). The plugin passes the chosen category to gift_send so the gift comes from the right accounts.
Epic requires the receiver to be a friend for 48 hours before gifting; the API reports the wait and the gift completes once it is allowed.