FurniOpsDocs
API referenceVendor

Read the vendor's reach and data health

How many paying retailers carry the vendor's products and how often they read them in the last 30 days, with the catalogue's completeness and freshness. Aggregates only, computed by a platform job: a count below its threshold is withheld, and no retailer is ever named.

  • Scopesanalytics:read
  • Rate classread
GET/v1/vendor/stats

How many paying retailers carry the vendor's products and how often they read them in the last 30 days, with the catalogue's completeness and freshness. Aggregates only, computed by a platform job: a count below its threshold is withheld, and no retailer is ever named.

Authorization

apiKey
AuthorizationBearer <token>

An API key (fo_live_… / fo_test_…) as a bearer token

In: header

Header Parameters

FurniOps-Version?string

Dated API version; pinned per organisation on first use and overridable per request

Value in

  • "2026-10-01"
  • "2026-10-04"
FurniOps-Mode?string

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"
If-None-Match?string

ETag of a cached representation; a match returns 304

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

curl -X GET "https://example.com/v1/vendor/stats"
{  "object": "vendor_stats",  "period": {    "from": "2019-08-24T14:15:22Z",    "to": "2019-08-24T14:15:22Z"  },  "retailers": {    "value": 0,    "threshold": 1  },  "available_to": {    "value": 0,    "threshold": 1  },  "product_views": {    "value": 0,    "threshold": 1  },  "products": {    "published": 0,    "complete": 0  },  "freshness": {    "median_age_hours": 0  },  "computed_at": "2019-08-24T14:15:22Z"}