---
title: "Manage agency profile using a strict reviewed command."
method: POST
path: "/v1/agency-profile"
---

# Manage agency profile using a strict reviewed command.

`POST /v1/agency-profile`

## Request

- Base URL: `https://www.kaicalls.com/api`
- URL: `https://www.kaicalls.com/api/v1/agency-profile`
- Auth: HTTP bearer

IDs are in the body. Runtime refinements, current role, assignment and exact approval/hash/lease guards apply. Enrollment creation and commit require a stable Idempotency-Key. Installation run_scenarios also requires evals:write. Care requires sms:write and exact owner approval; preparation creates a draft, launch explicitly queues it. Provider-unknown outcomes require reconciliation. Configuration, testing, activation, billing and measured outcomes are distinct.

## Headers

- `Idempotency-Key` string

## Request body

- union
  - object
    - `action` 'bootstrap', required
    - `brand` object, required
      - `name` string, required
      - `logoUrl` union
        - string, uri
        - ''
    - `support` object, required
      - `email` string, email, required
      - `ownerName` string, required
      - `helpUrl` union
        - string, uri
        - ''
      - `coverage` string, required
  - object
    - `action` 'update', required
    - `partnerId` string, uuid, required
    - `expectedRevision` string, uuid, required
    - `brand` object, required
      - `name` string, required
      - `logoUrl` union
        - string, uri
        - ''
    - `support` object, required
      - `email` string, email, required
      - `ownerName` string, required
      - `helpUrl` union
        - string, uri
        - ''
      - `coverage` string, required
    - `commercialMode` 'commission' | 'partner_billed', required
  - object
    - `action` 'invite', required
    - `partnerId` string, uuid, required
    - `email` string, email, required
    - `role` 'admin' | 'operator' | 'reader', required
  - object
    - `action` 'accept_invite', required
    - `partnerId` string, uuid, required
    - `token` string, required
  - object
    - `action` 'revoke_invite', required
    - `partnerId` string, uuid, required
    - `inviteId` string, uuid, required
  - object
    - `action` 'assign', required
    - `partnerId` string, uuid, required
    - `userId` string, uuid, required
    - `businessId` string, uuid, required
    - `businessRole` 'admin' | 'member', required
  - object
    - `action` 'unassign', required
    - `partnerId` string, uuid, required
    - `userId` string, uuid, required
    - `businessId` string, uuid, required
  - object
    - `action` 'revoke_member', required
    - `partnerId` string, uuid, required
    - `userId` string, uuid, required
  - object
    - `action` 'issue_key', required
    - `partnerId` string, uuid, required
    - `name` string, required
    - `scopes` string[], required

## Response `200`

Recorded command receipt; read back current evidence.

## Other responses

- `202`: Enrollment per-client receipt; inspect waiting and conflict states.
- `400`: Invalid command.
- `403`: Authority or approved owner revision required.
- `409`: State changed or provider reconciliation required.
- `503`: Dependency unavailable; durable operation retained.

---

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