visibility
POST /v1/visibility/targets/{targetId}/review-profile-lookup
Search the review sites for this business.
Authentication
Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/visibility/targets/{targetId}/review-profile-lookup \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
Starts a search of Google, Trustpilot and Tripadvisor for the business and returns 202 with the target, its profile_lookup.status now running. The candidates land in profile_candidates when the search finishes; poll the target. Nothing is confirmed automatically — confirm with setVisibilityReviewProfiles. Included in the reputation add-on, and refused with 403 for an organisation that does not hold it or is not in good standing. One search runs per target at a time.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
targetId (path) | Uuid | Yes | The watched domain's id. |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
query | string | No | The business name. Defaults to the target's brand, label or domain. |
location | string | No | A town or country to narrow the search. Defaults to the target's market. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
id | Uuid | Yes | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
domain | string | Yes | The hostname |
label | string | No | The customer's own label for this domain. |
brand | string | No | The trading name to look for in an answer engine's reply. Genuinely separate from the domain — an answer that recommends a business by name without printing its URL has still… |
category | string | No | What this business sells, in the customer's own words. The questions asked of the answer engines are built from it, so it is the single field that decides whether an AI-visibility… |
market | string | No | Where the business sells. Used with category to build the questions. |
is_external | boolean | Yes | True when this is not one of this organisation's own domains — a competitor or a prospect. Only external targets count against the plan's allowance. A domain is the organisation's… |
site_id | string | No | The site this target corresponds to, when it is one of ours. |
kinds | VisibilityAuditKind[] | Yes | — |
cadence_days | integer | Yes | Days between scheduled audits. 0 means paused — not deleted. History and settings survive and it resumes with no further action. |
next_due_at | string | No | — |
last_audit_at | string | No | — |
review_profiles | ReviewProfile[] | No | — |
profile_candidates | ReviewProfile[] | No | What the last lookupVisibilityReviewProfiles search found. Candidates only — the reputation check reads review_profiles, and a candidate becomes one when the customer confirms… |
profile_lookup | object | No | The last review-profile search's state. Empty when none was ever run. |
products | TrackedProduct[] | No | The products this organisation has asked us to price-track. |
merchant_names | string[] | No | How this business appears as a seller on the marketplaces. Confirmed by the customer and never inferred: Google Shopping publishes a seller name and no domain on its listings,… |
keywords | TrackedKeyword[] | No | The search phrases this organisation tracks its position for. Customer-supplied and never derived: asking a vendor which phrases a domain already ranks for would return exactly… |
Errors this endpoint can return
401 · 403 · 404 · 422 · 503