FurniOpsDocs

Live and test

Every organisation has live data and a sandbox. What belongs to one mode, what the two share, and how a request's mode is decided.

Every organisation works in two modes: live, its real catalogue, and test, a sandbox with a sample catalogue. The API behaves the same in both; only the data differs. Objects and events say which with livemode.

How a request's mode is decided

CredentialMode
API keyIts prefix: fo_test_ and fo_rk_test_ are test; fo_live_ and fo_rk_live_ live.
OAuth access token (the dashboard's, the CLI's, an app's)Live, unless the request sends FurniOps-Mode: test.

A key whose mode the header contradicts is refused with 400 invalid_request. See Choosing the mode with a signed-in token.

What belongs to one mode

Whatever a request creates belongs to its mode, and a request in the other mode cannot see it (an ID from the other mode answers 404):

Belongs to one modeNotes
The catalogue: products, variants, offersThe sandbox holds your test catalogue only; network catalogues are live.
Sources, their runs, uploads and mappingsMoving to live means creating sources again with a live credential.
Source probes, the AI agents' proposals and settings, and the matching judge's settingsEach belongs to a catalogue, and each mode has its own catalogue.
Change feed cursors and the streamA sandbox cursor means nothing in live mode.
Webhook endpoints, their secrets and deliveriesA test endpoint only ever receives test events. Live endpoint URLs must use HTTPS.
Bulk exportsThree open at once in each mode.
API keysA key's mode is its prefix, for life.
Request logsThe dashboard's Logs show the mode it is in.
UsageMetered apart; only live is capped by quotas.
Rate budgetsSeparate budgets of the same size.

What the two share

The organisation itself: its name, plan, members and their roles, single sign-on, OAuth apps, access policies and the audit log, which records both modes in one timeline.

The dashboard's switch

The dashboard has a test-mode switch in its header. In test mode it shows a banner, reads the sandbox, and makes test keys; its Workbench sends requests in test mode unless the request says live.

On this page