| Environment | Base URL |
|---|---|
| Staging | https://client-api.stg.future-demand.com/api/v3 |
| Production | https://client-api.prd.future-demand.com/api/v3 |
The base URL has three parts: the host (
client-api.<env>.future-demand.com),
the /api prefix (always present), and the /v3 version (always
present at this major version).Path conventions in this doc
Endpoints in this documentation are written without the base URL. A path likeGET /events/ is shorthand for:
/v3 prefix — POST /media is the notable case. These are explicitly
flagged in the relevant guides.
Driving the base URL from config
FD_PARTNER_ID— the partner you’re acting as (sent asX-Preferred-Partner-Id).- Your refresh token — stored server-side, used to mint short-lived access tokens. See Token refresh.
Local mock server
The reference webapp ships a mock server that responds to most read-only endpoints with fixture data. Useful for offline development and CI smoke tests without hitting staging. If you have access to the reference webapp repository:/auth/*, /partners/, /events/*, /recommendations/*,
/campaigns/* (read), /notifications/*, /messages/*. Mutations on
campaigns and packages return fixed canned responses.
Health check
Each environment exposes the same status endpoint:Regions and data residency
All environments are hosted in eu-central-1 (Frankfurt). If you need a different region for compliance reasons, talk to your account contact — we can provision a region-pinned partner.CORS
The API permits cross-origin requests from* only on GET /status/. All
authenticated endpoints reject browser CORS, by design — your refresh token
must not be exposed to a browser. Proxy authenticated calls through your
own backend, or use a short-lived access token issued from your origin.
See Authentication for the trade-off and
Your First Integration for the proxy pattern.
Versioning
- The version prefix in the URL (
/v3) is the only version selector. We do not honourAccept-Versionheaders. - Breaking changes ship as
/v4and are announced ≥ 90 days in advance via the changelog and a direct email to integrators. - Within a major version we only add fields and endpoints; we never remove or rename existing ones. Build your clients to ignore unknown fields.