---
title: "Version owner-approved distribution context"
method: POST
path: "/api/company-intelligence"
tags: ["Workspace reads"]
---

# Version owner-approved distribution context

`POST /api/company-intelligence`

## Request

- Base URL: `https://www.hireeli.io`
- URL: `https://www.hireeli.io/api/company-intelligence`
- Auth: HTTP bearer

Owner/admin user tokens only. Uses optimistic concurrency and allowlisted facts. The update does not execute, publish or contact anyone; MCP callers should use run_workspace_operation for exact preview confirmation.

## Request body

- CompanyIntelligenceUpdateRequest
  - `tenantId` string, uuid, required
  - `expectedVersion` integer, required
  - `facts` object, required
    - `companyName` string: The name buyers know the company by. Replaced, never cleared. Also stored on the workspace.
    - `primaryConversion` string: The label of the one action that counts as the conversion, such as Book a demo. Replaced, never cleared. Not an address.
    - `idealCustomerProfile` string, nullable
    - `primaryOffer` string, nullable
    - `buyerRoles` string[], nullable
    - `customerPains` string[], nullable
    - `buyingTriggers` string[], nullable
    - `desiredOutcomes` string[], nullable
    - `purchaseCriteria` string[], nullable
    - `objections` string[], nullable
    - `differentiation` string[], nullable
    - `proof` string[], nullable
    - `claimConstraints` string[], nullable
    - `exclusions` string[], nullable

## Response `200`

A new workspace.profile memory version was stored. When companyName or primaryConversion cannot be saved yet, they are listed under notAvailableYet and every other fact in the request was still saved.

- object
  - `ok` true, required
  - `version` integer, required
  - `changedFields` string[], required
  - `notAvailableYet` string[]
  - `message` string

## Other responses

- `400`: Invalid or unsupported fact patch.
- `401`: Credential missing, invalid, expired or revoked.
- `403`: Workspace, role, scope, plan or feature does not permit this operation.
- `409`: Current lifecycle state conflicts with the requested decision.
- `429`: Request or durable protocol cap reached.
- `503`: A required security, billing, cap, audit, evidence or storage check is unavailable. Writes fail closed.

---

[API](https://skmtc.dev/hireeli/apis/eli-api.md) · [All operations](https://skmtc.dev/hireeli/apis/eli-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hireeli/apis/eli-api/revisions/3272729fecd2?raw)
