---
title: "Edit Advisor Insight"
method: PATCH
path: "/projects/{projectId}/advisors/insights/{insightId}"
tags: ["Advisor"]
---

# Edit Advisor Insight

`PATCH /projects/{projectId}/advisors/insights/{insightId}`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/projects/{projectId}/advisors/insights/{insightId}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/docs/projects/:projectId/advisors/insights/:insightId/patch.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `project.advisor` (Read and Write).

User-facing mutation of a single Advisor Insight row. Currently only `/isDismissed` is patchable (dismiss ↔ reactivate). For dispatching a fresh check, see POST `/advisors/checks`. For app-pushed insight updates, see PUT `/applications/.../insight`.

## Path parameters

- `projectId` integer, required
- `insightId` integer, required

## Request body

- AdvisorInsightOperation[]: A JSON Patch document as defined by <a href="https://tools.ietf.org/html/rfc6902#section-3" target="_blank">RFC 6902</a>
  - `op` 'replace' | 'test', required: Patch operation to perform
  - `path` '/isDismissed', json-pointer, required: A JSON Pointer as defined by <a href="https://tools.ietf.org/html/rfc6901" target="_blank">RFC 6901</a>

## Response `200`

Advisor insight was successfully updated

- AdvisorInsightResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` AdvisorInsight, required
    - `id` integer
    - `inspectorKey` string
    - `category` string, nullable: Category of the inspector. `null` if the inspector is no longer registered (e.g. originating app uninstalled).
    - `isDismissed` boolean
    - `status` 'pending' | 'checking' | 'outdated' | 'done'
    - `outcome` 'flagged' | 'clear' | 'not_applicable', nullable: Outcome of the latest check. `flagged` — issue detected; `clear` — on target; `not_applicable` — inspector does not apply to this project; `null` — not yet checked.
    - `severity` 'high' | 'medium' | 'low', nullable: Severity of the inspector. `null` if the inspector is no longer registered.
    - `refreshPolicy` 'hourly' | 'daily', nullable: How often the inspector re-runs. `hourly` — at most once per hour; `daily` — at most once per day. Both are event-driven. `null` if the inspector is no longer registered.
    - `metrics` AdvisorInsightMetric[], nullable: Structured metrics emitted by the inspector. Use each metric's `key` to map values to your own labels and formatting.
      - `key` string
      - `value` number
      - `unit` 'percent' | 'count'
      - `threshold` number, nullable
      - `tone` 'default' | 'success' | 'danger'
      - `source` 'deterministic' | 'ai' | 'app': What produced the metric. Omitted for metrics recorded before sources were tracked.
      - `checkedAt` string, date-time, nullable: Date when the metric was measured (ISO 8601). Omitted for metrics measured at the insight's top-level `checkedAt`.
    - `recommendations` AdvisorInsightRecommendation[], nullable: Actionable recommendations selected by the backend. Use each recommendation's `id` to map to your own copy and target URL.
      - `id` string
      - `primary` boolean
      - `params` object: Parameters provided alongside the recommendation (e.g., `projectId`). Typically used to construct the recommendation's target URL.
    - `checkedAt` string, date-time, nullable: Date when the last check was performed (ISO 8601)
    - `lastAiRun` AdvisorAiRunDescriptor: Describes the most recent AI validation run for an insight.
      - `mode` 'auto' | 'all'
      - `promptId` integer
      - `at` string, date-time
    - `payload` object, nullable: Data attached to this insight by the originating `advisor-inspector` app on its latest update. Returned exactly as the app submitted it.

## Other responses

- `400`: Invalid Request Body
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project or insight with specified id was not found

---

[API](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/revisions/dc68744c5384?raw)
