---
title: "Declare a business's model and/or offerings so Recommendation Survival adapts to what it actually sells (declared fields win over auto-detection). Operator/owner-authoritative (admin-scoped); a self-serve customer path is gated on the entity-ownership model."
method: POST
path: "/entities/{entityId}/business-profile"
tags: ["Layer 1 — Profile"]
---

# Declare a business's model and/or offerings so Recommendation Survival adapts to what it actually sells (declared fields win over auto-detection). Operator/owner-authoritative (admin-scoped); a self-serve customer path is gated on the entity-ownership model.

`POST /entities/{entityId}/business-profile`

## Request

- Base URL: `https://entidex.com/api/v1`
- URL: `https://entidex.com/api/v1/entities/{entityId}/business-profile`
- Auth: HTTP bearer

## Path parameters

- `entityId` string, required

## Request body

- DeclareOfferingsRequest: Declare a business's model and/or offerings (any subset; declared fields win over detection).
  - `model` 'local_service' | 'product' | 'online_service' | 'b2b_saas' | 'marketplace' | 'content_creator' | 'other'
  - `category` string
  - `locality` string, nullable
  - `offerings` object[]
    - `name` string, required
    - `useCase` string, nullable
    - `axes` object[]
      - `label` string
      - `fragment` string
  - `note` string

## Response `200`

The effective profile after the declaration (declared over detected).

- BusinessProfile: The self-configuring profile that makes Recommendation Survival adapt to any business: its model, category, locality, offerings, and buyer decision-axes. Auto-detected once (cached) with a governed LLM-assist, or declared (declared fields win).
  - `entityId` string, required
  - `available` true, required
  - `model` 'local_service' | 'product' | 'online_service' | 'b2b_saas' | 'marketplace' | 'content_creator' | 'other', required
  - `category` string, required
  - `locality` string, nullable, required
  - `offerings` BusinessProfileOffering[], required
    - `id` string, required
    - `name` string, required
    - `useCase` string, nullable, required: The job a buyer solves with this offering.
    - `decisionAxes` BusinessProfileAxis[], required
      - `label` string, required
      - `fragment` string, required: The plain buyer phrasing appended to narrow the search (never an internal key).
  - `source` 'detected' | 'declared' | 'hybrid', required
  - `confidence` number, required
  - `provenance` object, required
    - `detectedFrom` string[], required
    - `llmAssisted` boolean, required
    - `note` string, required
  - `version` string, required
  - `derivedAt` string, date-time, required

## Other responses

- `404`: Entity or resource not found.

---

[API](https://skmtc.dev/entidex/apis/entidex-api.md) · [All operations](https://skmtc.dev/entidex/apis/entidex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/entidex/apis/entidex-api/revisions/86b92f21a09a?raw)
