Docs

Concepts, API, caching, and SDKs. Sign up to first feature in under five minutes.

Platform architecture

How FeatureToggle is built and how the client application connects to it.

You manage features in the dashboard (app.featuretoggle.com). The client application reads them through the public feature API (https://api.featuretoggle.com) using the SDK or direct HTTP calls. There is no write API for customer apps. Feature changes always go through the dashboard.

At a glance

Loading diagram…
SurfaceWho uses itWhat it does
DashboardOrganization membersFeature definitions, Overrides, API keys, environments, and billing
Feature APIClient applicationRead resolved feature values for one environment (read-only)
SDKClient applicationCaches features locally, handles auth headers, live updates via SSE

The dashboard and the feature API share the same underlying data store. The client app never talks to the dashboard directly.

How the client app reads features

Loading diagram…

Typical flow:

  1. Client code calls the SDK (isEnabled, getValue, etc.).
  2. The SDK requests features from api.featuretoggle.com using the environment API key.
  3. FeatureToggle resolves each feature for that environment (defaults plus any per-environment overrides).
  4. The SDK keeps features in memory and refreshes when they change.

See Caching and syncs for when requests reach origin vs. are served from cache.

Live updates

When you toggle a feature in the dashboard, connected SDK instances can receive a push notification over Server-Sent Events (SSE) and refresh immediately.

Loading diagram…

The client app can also refresh on tab focus or at SDK startup. With default stream: "auto", no background poll timer is needed. If you use stream: "off" (tests or no SSE), the SDK can poll on an interval instead. See SDKs.

Public API summary

Read-only endpoints only:

EndpointMethodPurpose
/v1/featuresGETAll enabled features for the API key's environment
/v1/features/:keyGETOne enabled feature by key
/v1/features/streamGETLive SSE stream for feature changes

Full reference: Feature API

API keys

PrefixEnvironmentUse for
ft_test_developmentLocal development (loopback only, not LAN IPs)
ft_live_staging, productionDeployed applications
  • One API key is scoped to one environment in one project.
  • Keys grant read access only to enabled features for that environment.
  • Pass the key as Authorization: Bearer ft_... on every API request.

Details: Security · Core concepts

Domains

URLPurpose
featuretoggle.comMarketing site
app.featuretoggle.comDashboard
https://api.featuretoggle.comPublic feature API

All traffic is served over HTTPS with managed TLS certificates.

What runs behind the API

FeatureToggle is hosted on AWS. At a high level:

Loading diagram…
  • Edge network — low-latency responses and reduced origin load for unchanged feature data.
  • Feature API service — validates the API key, resolves features, returns JSON or 304.
  • Managed database — single source of truth for all feature state. Caches are accelerators only.

This stack is designed for read-heavy workloads: many apps streaming or refreshing, few dashboard writes.

Security model

SurfaceAuthenticationAccess
Feature APIAPI keyRead features for one environment
DashboardSigned-in user sessionManage the organization's projects

We do not expose project management, key administration, or dashboard settings on the public API.

SDK packages

PackageUse for
featuretoggle-sdk-typescriptBrowser and Node: SSE, caching
featuretoggle-sdk-typescript/serverServer-side reads (SSR, API routes, middleware)
featuretoggle-sdk-reactReact hooks and provider

Details: SDKs