---
title: "Update Label Assignment"
method: PATCH
path: "/v0/platform/labels/{id}"
tags: ["Label Management"]
---

# Update Label Assignment

`PATCH /v0/platform/labels/{id}`

## Request

- Base URL: `https://api.blockaid.io`
- URL: `https://api.blockaid.io/v0/platform/labels/{id}`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in header `X-CLIENT-ID`
- TypeScript: <https://skmtc.dev/blockaid-official/apis/blockaid-api/docs/v0/platform/labels/:id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update a label assignment (partial). You can update any combination of `label` (changing it also updates `result_type` automatically), `chain`, `tags`, and `comment`. The `id`, `created_at`, and `created_by` fields are read-only and never modified.

## Path parameters

- `id` string, uuid, required: Label assignment ID.

## Request body

- LabelUpdateRequest: Partial update of a label assignment. Only provided fields change; omitted fields are left unchanged. `id`, `created_at` and `created_by` are preserved.
  - `label` string: New label name (case-insensitive match against the catalog); changing it also updates result_type. Omit to leave unchanged.
  - `chain` string, nullable: New chain coverage: a chain name scopes the assignment to exactly that chain; `null` switches it to all-chains (sticky). Omit to leave unchanged. Not applicable to domain assignments (domains are never chain-scoped); supplying `chain` when updating a domain label returns 422.
  - `tags` string[], nullable: Replacement set of tags. An array replaces the existing tags; an empty array or `null` clears all tags. Omit to leave tags unchanged.
  - `comment` string, nullable: Updated comment; `null` clears it. Omit to leave unchanged.

## Response `200`

Label assignment updated

- LabelResponse
  - `id` string, uuid, required: Unique ID of this label assignment.
  - `identifier` string, required: The labeled address, domain or token.
  - `identifier_type` 'address' | 'domain' | 'token', required: The type of the labeled identifier.
  - `chain` string, nullable, required: The chain this label applies to. `null` means the label applies to ALL chains (sticky); `chain` is always `null` for domains, which are not chain-scoped.
  - `label` string, required: The applied label name.
  - `result_type` 'Malicious' | 'Benign', required: Whether this label marks the entity as Malicious (block) or Benign (allow). Derived from the label.
  - `tags` string[], required: Tags grouping this label.
  - `comment` string, nullable: Free-text note explaining the label, if any.
  - `created_by` string, required: Who created the assignment (e.g. "API" or a user identifier).
  - `updated_by` string, required: Who last updated the assignment.
  - `created_at` string, date-time, required: Creation timestamp (ISO 8601, UTC).
  - `updated_at` string, date-time, required: Last-update timestamp (ISO 8601, UTC).

## Other responses

- `404`: Label assignment not found
- `409`: Re-classifying would collide with an existing label on this identifier and chain
- `422`: Validation Error
- `502`: The label classifier service is unavailable. The label was not changed. Retry the request.

## Changes

> 120 revisions in range; 1 not diffed.

- **2026-10-29** `930364a79482`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/blockaid-official/apis/blockaid-api/changes/v0/platform/labels/:id/patch.md)

---

[API](https://skmtc.dev/blockaid-official/apis/blockaid-api.md) - [All operations](https://skmtc.dev/blockaid-official/apis/blockaid-api/llms.txt) - [OpenAPI document](https://skmtc.dev/blockaid-official/apis/blockaid-api/revisions/104550c9d3f1?raw)
