Platform guide

Public website API

Use published Forgeport content and live Lineage 2 data in your own website

The public website API is a read-only JSON endpoint for custom frontends. It needs no API key and exposes only content and game data already intended for the public website.

No frontend secret

Do not add a Forgeport or game-server secret to the website. Browser code cannot keep one private. Cross-origin access is intentionally public; CORS is not an authentication boundary.

GET https://app.forgeport.net/api/v1/site/<portal-slug>

The portal slug is the identifier used by its Forgeport address. For example, my-server.forgeport.net uses my-server.

Fetch the website data

const response = await fetch(
  "https://app.forgeport.net/api/v1/site/my-server",
  { headers: { Accept: "application/json" } },
);

if (!response.ok) {
  throw new Error(`Forgeport API returned ${response.status}`);
}

const website = await response.json();

The response contains:

FieldContents
portal, appearance, site.contentPublished identity, theme and enabled CMS sections
newsPublished announcements
liveOnline count, rankings, clans, sieges and bosses for the primary game server
store, voteFeatured public offers and vote providers, with Player Portal links
serversThe same live, store and vote data for every enabled game server
linksCanonical website, Player Portal, registration, API and asset URLs

version is currently 1. New fields may be added without changing the version, so ignore fields your frontend does not use.

Multiple game servers

Use the top-level live, store and vote fields for the primary server. To let visitors choose a server, render servers and use the selected entry's online, rankings, clans, sieges, bosses, store, vote and panelUrl fields.

A live-data field can be null when its connector is offline or does not provide that capability. Treat null as unavailable; it is not the same as an online count of 0 or an empty ranking.

Player actions

The API does not expose login, checkout, rewards or delivery operations. Send visitors to the URLs returned by links, store, vote or the selected server. Use a normal navigation and do not embed the Player Portal in an iframe.

Availability and limits

The endpoint supports cross-origin browser requests and returns fresh data with cache-control: no-store. The current limit is 120 requests per minute for each portal and visitor IP.

StatusMeaning
200Published website data is available
404The portal or a published public website was not found
429Rate limit reached; respect the Retry-After header
503The website or live API is temporarily unavailable

The public website must be published and the Forgeport Trial or subscription must be active. Build an unavailable state into the custom frontend instead of keeping stale live data on screen.

On this page