---
title: "Create or Update Application Advisor Insight"
method: PUT
path: "/projects/{projectId}/applications/{applicationIdentifier}/modules/{moduleKey}/advisors/insights"
tags: ["Advisor"]
---

# Create or Update Application Advisor Insight

`PUT /projects/{projectId}/applications/{applicationIdentifier}/modules/{moduleKey}/advisors/insights`

## Request

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

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

Called by an installed application's `advisor-inspector` module to publish the result of its own check against a string. Subsequent calls for the same string overwrite the previous insight from this module.

## Path parameters

- `projectId` integer, required
- `applicationIdentifier` string, required
- `moduleKey` string, required

## Request body

- AdvisorAppInsightForm
  - `outcome` 'flagged' | 'clear' | 'not_applicable', required: Result of the app's check. `flagged` — issue detected; `clear` — on target; `not_applicable` — inspector does not apply to this project.
  - `checkedAt` string, date-time: Date when the app performed this check (ISO 8601). Defaults to the time the request is received.
  - `metrics` AdvisorInsightMetric[]: Structured metrics produced by the app for this insight.
    - `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[]: Actionable recommendations the app wants to surface for this insight.
    - `id` string
    - `primary` boolean
    - `params` object: Parameters provided alongside the recommendation (e.g., `projectId`). Typically used to construct the recommendation's target URL.
  - `payload` object: Free-form data the app wants to keep attached to this insight. Stored as-is — the backend does not interpret its contents.

## Response `200`

Advisor insight updated

## Other responses

- `201`: Advisor insight created
- `400`: Invalid Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project or app module 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)
