---
title: "Generate an AI review insight (90-day cooldown)"
method: POST
path: "/api/v1/apps/{id}/review-insights"
tags: ["Write"]
---

# Generate an AI review insight (90-day cooldown)

`POST /api/v1/apps/{id}/review-insights`

## Request

- Base URL: `https://api.trysonar.app`
- URL: `https://api.trysonar.app/api/v1/apps/{id}/review-insights`
- Auth: HTTP bearer

Analyzes the app's recent reviews into a fresh insight. At most one analysis per app+country every 90 days — 429 `cooldown` with the next available time. 403 `trial_locked` on trial plans (AI-cost feature, paid plans only; GET stays available), 422 `too_few_reviews` (fewer than 5 recent reviews), 502 `ai_failed`. Requires an Indie or Agency plan (paid, non-trial) and a write-scope API key.

## Path parameters

- `id` string, required

## Query parameters

- `country` string

## Request body

- object

## Response `201`

Same shape as the GET endpoint (insight + cooldown)

- object
  - `data` object, required: Result payload — full field reference at https://trysonar.app/docs/api

## Other responses

- `400`: Missing or invalid request parameters
- `401`: Missing or invalid API key
- `403`: trial_locked — generation is reserved for paid (non-trial) plans
- `404`: Resource not found or not tracked by your organization
- `422`: too_few_reviews — fewer than 5 recent reviews to analyze
- `429`: cooldown — an insight was generated within the last 90 days; the message carries the next available time
- `500`: Unexpected server error
- `502`: ai_failed — the AI analysis failed, retry shortly

---

[API](https://skmtc.dev/trysonar/apis/sonar-api.md) · [All operations](https://skmtc.dev/trysonar/apis/sonar-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trysonar/apis/sonar-api/revisions/bf1d31dadd5f?raw)
