Queue an async ReviewData insight report for one store + publisher and counts 1 unit against the store's insight_report plan quota at submit time. Returns immediately with a task_id and status: queued. The completed report arrives later via the INSIGHT_REPORT_RESULT webhook (poll Check status (poll until complete) for the result). If a non-failed report already exists for the same (store, review site, period, theme), it comes back as-is without an RD call. Set force to bypass dedup and bill a fresh run.
Auth: Both — authentication; target store scoped by an ownership check on store_id, which walks the auth user's company tree. A Partner reaches every store in its partner sub-tree; an Account reaches only stores under its own company. The service resolves the parent partner to gate quota and pick the RD API key.
Rate limit: No rate limit.
Request
- Body (all top-level, JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
store_id | integer | yes | Must Must be an existing location and belong to the auth company hierarchy. |
review_site_id | integer | no | Must be an existing review site. Must be linked to the store. Omit for an all-publisher report (publisher resolves to all); when you omit it the store must have at least one linked review site with a configured publisher. |
year | integer | yes | between:2000,2100. |
month | integer | no | between:1,12. Omit for a full-year report. |
theme | string | yes | max:64. RD KPI theme/set, e.g. home-services; general is no longer accepted by the reporting engine. |
force | boolean | no | Explicit recall — bypasses dedup and bills a fresh RD run. (This endpoint sends false; see Regenerate insight report (force) for true.) |
Response — { data. } envelope. HTTP 202 on a fresh queue; HTTP 200 when an existing report is returned (deduped).
insight_report_id(integer) — our report record id.store_id(integer)review_site_id(integer|null)publisher(string) — publisher slug, orallwhen no review site given.year(integer)month(integer|null)theme(string)status(string) —queued(or RD-returned status) on a fresh submit; existing status when deduped.task_id(string|null) — RD task id.review_count(integer|null)result_summary(object|null)failure_reason(string|null)failure_details(object|null)completed_at(string|null) — ISO-8601.remaining(integer|null) — quota units remaining after this submit.overage(boolean) — true if billed as overage (soft-stop plan).usage_log_id(present only on fresh submit) /deduped: true(present only when an existing report is returned).
Quota-exceeded / feature-disabled returns 403 (insight_report_quota_exceeded); RD upstream issues return 502/504/429.
Errors: 422 on validation failure.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
