# Filudi developer docs > How a browser game runs on filudi.com and on portals, the @filudi/game-sdk reference, how a portal > builds on the Filudi API, and the API reference. Every page is also served as Markdown at its > `index.md` URL; the full text is at /llms-full.txt. ## Pages - [Filudi developer docs](https://developers.filudi.com/docs/): How a game runs on filudi.com and on portals, the SDK and API references, and how a portal builds on the Filudi API. - [API reference](https://developers.filudi.com/docs/api/): Every route of the Filudi API with its parameters, bodies, responses and request samples, generated from openapi.yaml. - [Authentication](https://developers.filudi.com/docs/api/authentication/): The four credentials of the Filudi API, where each one is valid, and how it travels. - [CORS and origins](https://developers.filudi.com/docs/api/cors-and-origins/): Which origins may call the Filudi API from a browser and frame a game, how a site's domains join that list, and what a game origin may do. - [Errors](https://developers.filudi.com/docs/api/errors/): The error body of the Filudi API, its nine codes and the status of each, and the two routes that answer another shape. - [Rate limits](https://developers.filudi.com/docs/api/rate-limits/): What the Filudi API limits, by IP, player, email or key, and how a client reads the 429 answer. - [Account routes](https://developers.filudi.com/docs/api/reference/account/): The account routes of games-api, with parameters, bodies, responses and request samples. - [Admin routes](https://developers.filudi.com/docs/api/reference/admin/): The admin routes of games-api, with parameters, bodies, responses and request samples. - [Bundles routes](https://developers.filudi.com/docs/api/reference/bundles/): The bundles routes of games-api, with parameters, bodies, responses and request samples. - [Catalog routes](https://developers.filudi.com/docs/api/reference/catalog/): The catalog routes of games-api, with parameters, bodies, responses and request samples. - [Community routes](https://developers.filudi.com/docs/api/reference/community/): Star ratings and comments on games (ADR 0012) - [Console routes](https://developers.filudi.com/docs/api/reference/console/): Sign-in, account, invitations and sessions of the console and the back office (ADR 0015) - [Feedback routes](https://developers.filudi.com/docs/api/reference/feedback/): Bug reports and suggestions, read in the admin (ADR 0012) - [Health routes](https://developers.filudi.com/docs/api/reference/health/): The health routes of games-api, with parameters, bodies, responses and request samples. - [Schemas](https://developers.filudi.com/docs/api/reference/schemas/): Every named object of the games-api API: the fields each route reads or answers. - [SDK routes](https://developers.filudi.com/docs/api/reference/sdk/): The sdk routes of games-api, with parameters, bodies, responses and request samples. - [Server routes](https://developers.filudi.com/docs/api/reference/server/): Routes for portal backends, authenticated by a site key (ADR 0015) - [Versioning](https://developers.filudi.com/docs/api/versioning/): The /v1 prefix, how the Filudi API changes without breaking a client, and where the version of this reference comes from. - [Games](https://developers.filudi.com/docs/games/): How a game gets on filudi.com and on portals, from the invitation to a version under review. - [Ads on portals](https://developers.filudi.com/docs/games/ads/): Where ads come from on each host, the three rules a game follows, and the fact that filudi.com has none yet. - [Events and statistics](https://developers.filudi.com/docs/games/events-and-statistics/): What the console shows about your game, where each number comes from, and what to track yourself. - [Your first bundle](https://developers.filudi.com/docs/games/first-bundle/): From the sample game in the playground to a zip uploaded in the console, previewed, and sent for review. - [Leaderboards](https://developers.filudi.com/docs/games/leaderboards/): Declare boards in the console with bounds the API enforces, submit one signed score per run, and draw what the host gives you. - [Game lifecycle on filudi.com](https://developers.filudi.com/docs/games/lifecycle/): The frame, the handshake, the game token, the origin per game, the CSP, and what a game cannot do, in plain words. - [Localization](https://developers.filudi.com/docs/games/localization/): Which locale your game gets on each host, what the hub translates for you, and what to translate in the game. - [Portals](https://developers.filudi.com/docs/games/portals/): What the same bundle does on CrazyGames, Poki and Playgama, host by host, and the options each one takes. - [Release checklist](https://developers.filudi.com/docs/games/release-checklist/): The checks to run on a build folder before zipping it, each with the reason, and the commands that find the usual mistakes. - [Saves](https://developers.filudi.com/docs/games/saves/): One blob per player per game, a version the game increments, how conflicts resolve, and how to keep an old save loading. - [Start here](https://developers.filudi.com/docs/games/start-here/): The invitation, your account, the console at developers.filudi.com/console, and how a game goes from pending to live. - [Portals](https://developers.filudi.com/docs/portals/): Three ways to run a site on the Filudi catalog, and how a site and its domains are approved. - [A backend with server keys](https://developers.filudi.com/docs/portals/backend-server-keys/): Server keys and their scopes, players by your own user id, a token handed to the browser, leaderboards and statistics from your servers. - [Going live](https://developers.filudi.com/docs/portals/going-live/): Publish a catalog change, what the CDN purge does, the approval queue, and the checks before players arrive. - [A front on hub-core](https://developers.filudi.com/docs/portals/hub-core-front/): Install @filudi/hub-core, read the catalog with fetchCatalog, run a game with GameFrame, keep the player with PlayerClient, style with tokens.css, test in the playground. - [Listing games](https://developers.filudi.com/docs/portals/listing-games/): A game's distribution, what your site may list, how to add a game to your catalog, and why an add is refused. - [A front of your own](https://developers.filudi.com/docs/portals/own-front/): The public catalog, the frame handshake message by message, the game token exchange, frame-ancestors and your domains. Any stack. - [Start here](https://developers.filudi.com/docs/portals/start-here/): From an invitation to a pending portal with proposed domains, and what approval changes. - [Statistics](https://developers.filudi.com/docs/portals/statistics/): What the console shows for a site, the fields behind each chart, the filters, the CSV export, and the same numbers from a server key. - [Three ways to build a portal](https://developers.filudi.com/docs/portals/three-ways/): A front on hub-core, a front of your own on the public catalog and the handshake, or a backend with server keys. What each needs and how to pick. - [SDK](https://developers.filudi.com/docs/sdk/): The reference of @filudi/game-sdk, one page per module, with the rules each host applies. - [ads](https://developers.filudi.com/docs/sdk/ads/): sdk.ads.rewarded() and interstitial() show an ad where the host has one; available() says whether to draw the button; on() tells you when to mute. - [host events, fullscreen and device](https://developers.filudi.com/docs/sdk/events/): sdk.on() delivers pause, resume, consent and locale from the host; sdk.fullscreen() asks for fullscreen; sdk.device() says phone, tablet or desktop. - [host extras](https://developers.filudi.com/docs/sdk/host/): sdk.host.crazygames, sdk.host.poki and sdk.host.playgama expose what one portal has and the others do not; each is undefined elsewhere. - [i18n](https://developers.filudi.com/docs/sdk/i18n/): sdk.i18n.locale() gives the locale the host asked for, a lowercase BCP 47 tag; on('change') follows a switch while the game runs. - [init](https://developers.filudi.com/docs/sdk/init/): sdk.init() picks the host, opens the handshake on filudi.com and resolves with the player, the locale, the features and the policy. - [leaderboard](https://developers.filudi.com/docs/sdk/leaderboard/): sdk.leaderboard.submit() sends a score to a board declared in the console; top() and me() read it by period. - [player](https://developers.filudi.com/docs/sdk/player/): sdk.player.get() gives the player's id, nickname and guest state on the current host; on('change') follows a nickname or an account link. - [ready and gameplay](https://developers.filudi.com/docs/sdk/ready-and-gameplay/): sdk.ready() hides the host's loader; sdk.gameplay.start() and stop() bracket real play; sdk.happyTime() marks a win. - [save](https://developers.filudi.com/docs/sdk/save/): One save per player per game, a JSON value up to 64 kB, local first and synced to the host, with a version the game increments. - [track](https://developers.filudi.com/docs/sdk/track/): sdk.track() records a game event with up to 20 properties; the SDK batches them and they appear in your statistics. - [types, errors and size](https://developers.filudi.com/docs/sdk/types/): Every type @filudi/game-sdk exports, what the SDK logs, the browsers it runs in and the 12 kB budget.