Check a variant now
Checks the variant's offers now, at a moment that matters such as checkout: each source offering it gets a run (stock only where the connector reads stock apart), joins one under way, or answers with one that finished moments ago (a minute for stock, 15 minutes for a whole catalogue). New values arrive as offer.changed events. 404 when the organisation cannot see the variant.
- Scopes
freshness:write - Rate classexpensive
- Idempotency-Key required
/v1/variants/{id}/checksChecks the variant's offers now, at a moment that matters such as checkout: each source offering it gets a run (stock only where the connector reads stock apart), joins one under way, or answers with one that finished moments ago (a minute for stock, 15 minutes for a whole catalogue). New values arrive as offer.changed events. 404 when the organisation cannot see the variant.
Authorization
apiKey An API key (fo_live_… / fo_test_…) as a bearer token
In: header
Path Parameters
Variant ID
^var_[0-9A-Za-z]{22}$Header Parameters
Dated API version; pinned per organisation on first use and overridable per request
Value in
- "2026-10-01"
- "2026-10-04"
The data the request acts on: test is the organisation's sandbox. An OAuth token picks it (live by default); an API key's mode is fixed, and naming the other one is refused
Value in
- "live"
- "test"
Unique key for this operation, reused on retries (24 h)
1 <= length <= 257Preview the write and change nothing: true answers the would-be response, explain a Preview (application/vnd.furniops.preview+json)
Value in
- "true"
- "explain"
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/variants/string/checks" \ -H "Idempotency-Key: string"{ "object": "variant_check", "variant": "string", "checks": [ { "source": "string", "stream": "catalogue", "status": "queued", "run": "string", "checked_at": "2019-08-24T14:15:22Z" } ], "skipped": [ { "source": "string", "reason": "not_runnable" } ]}Trigger a sample event POST
Emits a sample event of the type in the organisation's sandbox, with `livemode: false`, like any change: to the test-mode webhook endpoints that want it, and onto the sandbox's change feed and stream. Its objects are samples that do not exist. Test keys only: a live key answers 403 `test_mode_required`.
Record demand POST
Tells FurniOps which variants matter now (sold, in carts, on backorder). The sources offering them are checked at their fastest, every 15 minutes, until the demand lapses; stock-only runs where the connector reads stock apart. Variants the organisation cannot see are listed as `unknown` and ignored. Sources with `schedule.adaptive: false` keep their intervals.