No Restart Required
Flip a flag and live servers pick it up within seconds.
Typed Values
Booleans, strings, numbers, and arbitrary JSON — not just on/off switches.
Server-Only Secrets
Mark a flag
server and it is never published to players’ clients.Audit Log
Every change is recorded — who changed what, and when.
Types
A flag holds one of four value types. The type and the value are validated together, so anumber flag can never end up holding a string.
Runtimes
Every flag also has a runtime, which says where it may be read:
Your server holds the API key and is the trusted side, so it always receives every flag. The runtime decides whether a value may also be relayed to players. A
server flag is never published to clients — reading one from a client behaves exactly like reading a flag that does not exist.
There is no client-only runtime: a value a client can read is one the server has already been sent.
Keys
The key is the stable identifier your code reads a flag by.string
required
Lowercase slug, 1–64 characters. Must start with a letter or number and may
contain only lowercase letters, numbers, hyphens and underscores —
^[a-z0-9][a-z0-9_-]*$.Limits
The allowance is a perk of being a paying customer — any active subscription raises it, not a flags-specific one. Every flag is shipped in the configuration payload each server polls, so the cap also bounds payload size.
Locked flags
If a subscription lapses while you hold more flags than the free allowance, the flags beyond it become locked. Oldest flags stay editable; the newest ones lock.A locked flag keeps serving its published value, so a billing lapse never
changes behaviour on a live server. Only editing it is blocked — archiving
and deleting stay allowed, since removing a flag is how you get back under the
allowance.
GET /flags/quota, and every flag in a list response carries a locked boolean.
Archiving vs. deleting
Archiving is the safe way to retire a flag. Reads of a missing flag fall back rather than throwing, so archiving one can never break a running server.
How values reach your server
1
You change a flag
The API writes it to the database and republishes your organization’s
configuration payload to the edge cache.
2
Your server polls
Servers request
GET /flags/config with
the ETag they already hold. An unchanged configuration is answered with a
304 and no body.3
Your server publishes to clients
The CFX SDK writes the
shared flags to GlobalState, which the game
replicates to every player. Server-only flags never leave the server.ETag is a hash of the flags the payload contains, so an unchanged set of flags always produces the same one — and an edit that is later undone stops looking like a change.
Audit log
Every mutation appends an entry recording the actor, the action, and the full before/after state. Flags are the kind of thing people flip during an incident and then disagree about afterwards.
Read it with
GET /flags/audit.
Permissions
An API key used by a game server only needs
FLAGS_READ — that is enough to poll the configuration endpoint.
Start reading flags
CFX SDK
Read flags from FiveM/RedM server and client scripts
NUI SDK
Read flags from your NUI interfaces
Node.js SDK
Read and manage flags from any Node.js app
API Reference
The REST endpoints behind every SDK

