Submit competitive report (generate)

Queue an async ReviewData competitive report comparing one store location against 1-2 competitors on one shared publisher (review site). Counts 1 unit against the store's competitive_analysis plan quota at submit; hard-stop plans 403 once exhausted, soft-stop plans bill the call as overage. Deduped against an identical non-failed report unless you set force. Returns immediately with status: queued + task_id; the completed report arrives via the COMPETITIVE_REPORT_RESULT webhook (poll Check status (poll until complete)).

Auth: Both — authentication. The route lives directly under the authenticated group (not behind partner-only access), so any authenticated user (Partner or Account) may call it. The target store must sit inside your own account tree, keyed on store_id, which walks the auth user's company hierarchy — so a Partner reaches any store in its tree, an Account only its own. review_site_id must additionally be linked to the store (checked during validation).

Rate limit: No rate limit.

Request

  • Body:
FieldTypeRequiredNotes
store_idintegeryesMust be an existing location inside your own account tree (must be in caller's company hierarchy).
review_site_idintegeryesMust be an existing review site and must also be linked to the store.
yearintegeryesbetween:2000,2100.
monthintegernobetween:1,12; omit for a full-year report.
themestringyesmax:64. A theme slug from List available themes (e.g. home-services); general is no longer accepted by the reporting engine.
competitorsarrayyes1-2 items.
competitors.*.namestringyesmax:255.
competitors.*.profile_keystring (url)yesmax:1024. Competitor's review-page URL on the publisher.
competitors.*.idstringnomax:255.
competitors.*.phonestringnomax:64.
competitors.*.descriptionstringnomax:2048.
competitors.*.tagsarraynomax:30, each tag string max:64.
competitors.*.addressobjectnooptional street/city/state/zip/country strings.
forcebooleannoExplicit recall — bypasses dedup and bills a fresh RD run.

Response{ data. } envelope (HTTP 202; also carries plan feature headers via withFeatureHeaders for competitive_analysis). Built by present.

  • competitive_report_id (integer) — our competitive_reports row id; use it with Check status (poll until complete).
  • store_id (integer)
  • review_site_id (integer|null)
  • publisher (string) — resolved publisher slug.
  • year (integer)
  • month (integer|null)
  • theme (string)
  • status (string) — typically queued (or pending/existing status on dedup).
  • task_id (string|null) — RD task id.
  • competitors (array) — normalised competitor blocks.
  • competitor_count (integer)
  • review_count (integer|null)
  • report_data (object|null) — null until the webhook lands.
  • failure_reason (string|null)
  • failure_details (mixed|null)
  • completed_at (string|null, ISO 8601)
  • remaining (integer|null) — quota left after this submit (merged via extra).
  • overage (boolean) — whether this call was billed as overage.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
integer
integer
integer
integer
string
competitors
array of objects
competitors
boolean
Responses

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json