Businesses
/v1/businessesList businesses. Filters: `category_id`, `region_id`, `country_id`, `verified`, `visibility` (internal scope only), plus `limit` / `offset`.
Returns the flat list envelope. Without businesses.internal.read the result set is restricted to visibility = public and ?visibility= is ignored.
{
"data": [
{
"id": "c3a1…",
"name": "Bali Teak Works",
"slug": "bali-teak-works",
"description_en": "Solid teak furniture manufacturer.",
"category_id": "8f2b…",
"region_id": "12d4…",
"verified": true,
"visibility": "public",
"phone": "+62…",
"email": "sales@example.com"
}
],
"total": 7213,
"limit": 20,
"offset": 0
}/v1/businesses/:idSingle business by UUID. Returns 404 if it is not public and the key lacks `businesses.internal.read`.
/v1/businesses/slug/:slugSingle business by slug, same visibility rules as by-id.
/v1/businessesCreate a business. Slug is generated from the name and de-duplicated automatically. Fires `business.created`.
{
"name": "Bali Teak Works",
"description_en": "Solid teak furniture manufacturer.",
"description_id": "Produsen furnitur jati solid.",
"category_id": "8f2b…",
"region_id": "12d4…",
"country_id": "b593…",
"address": "Jl. Raya Gianyar 12",
"phone": "+6281…",
"email": "sales@example.com",
"website": "https://example.com",
"whatsapp_number": "+6281…",
"can_fulfill_orders": true,
"visibility": "public"
}/v1/businesses/:idPartial update. Fires `business.updated` with the list of changed fields.
Accepted fields: name, description_en, description_id, category_id, region_id, country_id, address, phone, email, website, whatsapp_number, can_fulfill_orders, visibility, booking_url, google_maps_url, year_established, certifications, payment_terms, minimum_order_value, operating_hours, latitude, longitude. Unknown fields are ignored.
/v1/businesses/:id/productsProducts belonging to one business, with variants and pricing tiers. Restricted to active + public products unless the key has `products.internal.read`.
/v1/businesses/:id/performanceSupplier performance record for the business, or `null` when none exists.
/v1/businesses/:id/performanceUpsert supplier performance. Fires `supplier.performance_updated`.
{
"reliability_score": 87,
"quality_score": 92,
"response_rate_percent": 78,
"on_time_delivery_percent": 95,
"total_orders": 41,
"notes": "Consistent on repeat teak orders."
}/v1/businesses/:id/capabilitiesDeclared supplier capabilities for the business.
This endpoint returns all capability rows with no internal-visibility filter, unlike the neighbouring products and assets routes. If your integration must not see internal data, do not rely on this route to filter it for you.
/v1/businesses/:id/assetsBusiness assets (documents, certificates, media). Returns 403 without `businesses.assets.read` or `*`, because assets can include sensitive internal documents.