List Products for Instance (Variants Listing)
GET/api/faire/instances/:integrationInstance/products
Paginated list of FaireProductOption rows (variants) for one Faire integration instance. Powers the Faire → Products listing page in application UI.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
Uses Spatie QueryBuilder under the hood with GroupedFilterSupport. The advanced-filter operator suffix is required for status and product_type filters (filter[status][is]=ACTIVE, etc.).
Default behavior: archived variants are hidden unless filter[archived] is set explicitly.
Response shape: standard Laravel paginator wrapping Faire product option object. Each row eager-loads the parent product and productListing.product.defaultFinancialLineType, so product_name, product_status, product_type, product_image_url, product_brand_name, product_description, and the mapped sku.io product block are populated when present.
Note: product_brand_name and product_description are derived from the parent FaireProduct.raw_data JSON column via Eloquent accessors — they are not dedicated DB columns. They surface in the variant listing (and detail) so the mapping modal can display brand context for each variant.
Allowed sorts: id, sku, faire_variant_id, wholesale_price, created_at (default -created_at).
Note: faire_product_id is the Faire-issued product ID (e.g. p_3bz2tdhtkq), sourced from the parent FaireProduct. It is NOT the internal faire_product_options.faire_product_id foreign key.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.