FN SHOP

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:

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

ActionMethodParamsPurpose
verify_licenseGET/POSTValidate the API key; returns user_id + plan.
resolve_accountGET/POSTusername, modeResolve a Fortnite username (or psn:/xb:/ns: prefixed) to an Epic account id.
gift_checkGET/POSTofferId, receiver, categoryCheck whether a gift can be sent from the category's pool.
gift_sendGET/POSTofferId, receiver, order_id, categorySend the gift from the category's pool. Records the order.

Categories (per owner)

ActionMethodParamsPurpose
category_listGET/POSTList your categories with account counts + the default.
category_createPOSTslug, nameCreate a category. slug: 2-40 chars of a-z 0-9 _ ; "all" reserved.
category_deletePOSTslug, reassign_to?Delete a category; if it holds accounts, pass reassign_to=<slug>.

Accounts

ActionMethodParamsPurpose
accounts_listGET/POSTcategory?List your accounts (id, name, category, cached V-Bucks/gifts).
accounts_dataGET/POSTLive per-account V-Bucks + gifts (queries Epic).
account_assignPOSTaccount_id | account_ids, categoryMove existing account(s) into a category.
account_linkPOSTcode, categoryLink a new Epic account (Android authorization code) into a category.
account_removePOSTaccount_idUnlink an account (DB row only).

Dashboards

ActionMethodParamsPurpose
inventoryGET/POSTAggregate per category: counts, V-Bucks, free gift slots. No identifiers.
groups_statusGET/POSTlive?Per-account detail per category. live=1 refreshes first.

Admin (admin_key)

ActionMethodParamsPurpose
sync_accountsGET/POSTfrom_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

  1. Link your Epic accounts and create your groups in the panel first.
  2. Install and activate the fnitemshop-auto-gift plugin on your WordPress site.
  3. In the plugin settings, paste your API key. It is sent as lic, and your site domain is sent as svr and bound on first use.

How an order is fulfilled

  1. The customer enters their Epic username and pays for a product.
  2. The plugin resolves the username (resolve_account) and verifies eligibility (gift_check), including Epic's 48-hour friend rule.
  3. On a paid order it calls gift_send with the product's offerId and a category; the gift is sent from that group's pool.
  4. 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.