---
title: "Update Inbox item status"
method: PATCH
path: "/v1/inbox/{itemId}"
tags: ["Inbox"]
---

# Update Inbox item status

`PATCH /v1/inbox/{itemId}`

## Request

- Base URL: `https://api.inth.com`
- URL: `https://api.inth.com/v1/inbox/{itemId}`
- Auth: HTTP bearer

Sets the status of a finding. Send the `version` from the item you read; a stale version answers 409 so two people cannot overwrite each other. Requires inbox.write, a user token, and an admin or owner role.

## Path parameters

- `itemId` string, required

## Request body

- union
  - object
    - `assignedToUserId` string, nullable: Omit to preserve; null to unassign; current member user ID to assign. Requires rollout-agent-access-writes.
    - `status` 'open' | 'accepted' | 'dismissed' | 'resolved', required
    - `version` string, required: The `version` of the item as last read.
  - object
    - `assignedToUserId` string, nullable, required: Omit to preserve; null to unassign; current member user ID to assign. Requires rollout-agent-access-writes.
    - `status` 'open' | 'accepted' | 'dismissed' | 'resolved'
    - `version` string, required: The `version` of the item as last read.

## Response `200`

Updated item.

- object
  - `success` true, required
  - `data` InboxItem, required
    - `assignedToUserId` string, nullable, required
    - `githubIssue` object, nullable, required
      - `createdAt` string, required
      - `number` integer, required
      - `url` string, required
    - `id` string, required
    - `organizationId` string, required
    - `priority` 'P0' | 'P1' | 'P2' | 'P3', nullable, required
    - `projectId` string, nullable, required
    - `repositoryName` string, nullable, required
    - `source` 'advisory' | 'code-audit' | 'runtime' | 'website-audit', required
    - `status` 'accepted' | 'dismissed' | 'open' | 'resolved', required
    - `summary` string, nullable, required
    - `title` string, required
    - `updatedAt` string, required
    - `version` string, required

## Other responses

- `400`: The request payload or parameters are invalid.
- `401`: Authentication is missing, invalid, or expired.
- `403`: The credential is valid but may not perform the operation. `INSUFFICIENT_SCOPE`: the credential was never granted the capability the operation needs. `details.requiredScope` names it, and the `WWW-Authenticate` header carries `Bearer error="insufficient_scope"`. An OAuth client fixes this by requesting the scope; an organization API key cannot gain it. `FORBIDDEN`: the capability is present but the membership behind the credential lacks the role, or the resource belongs to another organization.
- `404`: The requested resource was not found.
- `409`: The request conflicts with the current resource state.
- `413`: The request body exceeds the 1 MB limit.
- `429`: The rate limit was exceeded. API key limits are set by plan tier (Starter 600/min, Pro 1500/min, Enterprise 3000/min). Check the Retry-After header before retrying.
- `500`: An unexpected internal error occurred.

## Changes

- **2026-10-31** `a3f4100e14c9`: 1 breaking, 1 warning, 15 info
  - the `data/updatedAt` response's property format changed from `date-time` to no format for status `200`
  - added the new `website-audit` enum value to the `data/source` response property for the response status `200`
  - added the new optional request property `assignedToUserId`
  - added `subschema #1, subschema #2` to the request body `anyOf` list
  - …13 more
- **2026-09-08** `66c8f6ac2730`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/inth/apis/inth-api/changes/v1/inbox/:itemId/patch.md)

---

[API](https://skmtc.dev/inth/apis/inth-api.md) - [All operations](https://skmtc.dev/inth/apis/inth-api/llms.txt) - [OpenAPI document](https://skmtc.dev/inth/apis/inth-api/revisions/5a1be8d43402?raw)
