---
title: "Set automatic categorization"
method: POST
path: "/v1/commands/set_automatic_categorization"
tags: ["Link types and tags"]
---

# Set automatic categorization

`POST /v1/commands/set_automatic_categorization`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/commands/set_automatic_categorization`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Shared command transport. All logical arguments in JSON; no query or Idempotency-Key header. See canonical operation reference.

## Headers

- `X-Workspace-ID` string

## Request body

- SetAutomaticCategorizationInput
  - `projectId` string, required: Website project ID.
  - `enabled` boolean, required: Save on or off for automatic categorization after future checks. This action starts no assessment.
  - `expectedRevision` integer, required: Current automatic categorization preference revision from get_automatic_categorization. Use 0 before any saved preference.

## Response `200`

Command result, including queued admission.

- SetAutomaticCategorizationOutput
  - `contract` 'managed-classification-v1', required
  - `binding` object, required
    - `workspaceId` string, required
    - `projectId` string, required
  - `available` boolean, required
  - `reason` string, nullable, required: Recorded explanation; null when no explanation applies.
  - `enabled` boolean, required
  - `preference` 'on' | 'off', required
  - `revision` integer, required: Optimistic concurrency revision; supply it as expectedRevision on the next write.
  - `enrolled` boolean, required
  - `allowance` object, required
    - `contract` 'classification-allowance-v1', required
    - `unit` 'classification-assessment-v1', required
    - `scope` object, required
      - `kind` 'workspace', required
      - `workspaceId` string, required
      - `sharedAcrossWebsites` true, required
    - `state` 'unavailable' | 'not_entitled' | 'exhausted' | 'available', required: Saved lifecycle or evidence state, as enumerated for this record.
    - `limit` integer, nullable, required
    - `reserved` integer, nullable, required
    - `used` integer, nullable, required
    - `remaining` integer, nullable, required: Check units still available after consumed and reserved units; null if the limit is unknown.
    - `period` object, nullable, required
      - `key` string, required: Saved lookup identifier within this record.
      - `startsAt` string, date-time, required
      - `endsAt` string, date-time, required
    - `resetAt` string, date-time, nullable, required

## Other responses

- `429`: Request-rate or usage refusal. Inspect error.code and recovery details before retrying.
- `default`: Error envelope. Non-configuration 5xx messages are masked and details omitted; allowlisted configuration errors retain static operator recovery.

---

[API](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api.md) · [All operations](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/revisions/2a712a1dcfa7?raw)
