Read as Markdown · Use with an AI agent
Endpoint
/v1/panorama/reputationlive · provenUp to 30 creditsParameters
Query parameters
| Name | Required | Description | Example |
|---|---|---|---|
brand | yes | Brand or company name | Monzo |
trustpilot_domain | no | The brand's Trustpilot page domain (skips the Trustpilot search) | monzo.com |
sources | no | Sources to include (tripadvisor when place is set) | trustpilot,app_store,google_play,google_business,news |
country | no | Storefront country for the app stores | gb |
depth | no | Reviews per source in the sample, 1 to 50 | 20 |
app_store_id | no | App Store id (skips the app search) | 1052238659 |
google_play_id | no | Play package (skips the app search) | co.uk.getmondo |
place | no | A TripAdvisor page URL to add as a source | |
include | no | themes: a model pass that names recurring praise and complaints with verbatim quotes | themes |
dry_run | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. | 1 |
Examples
Make the request
curl "https://www.monocrawl.com/v1/panorama/reputation?brand=Monzo" \ -H "x-api-key: mn_your_key_here"
TypeScript
const key = process.env.MONOCRAWL_API_KEY;
if (!key) throw new Error('Set MONOCRAWL_API_KEY on your server.');
const res = await fetch(
"https://www.monocrawl.com/v1/panorama/reputation?brand=Monzo",
{ headers: { "x-api-key": key } },
);
const body = await res.json();
if (!body.success) {
// one error shape for every endpoint — see /docs/errors
throw new Error(`${body.error.type}: ${body.error.message}`);
}
console.log(body.data, "credits left:", body.credits_remaining);Python
import os
import requests
res = requests.get(
"https://www.monocrawl.com/v1/panorama/reputation?brand=Monzo",
headers={"x-api-key": os.environ["MONOCRAWL_API_KEY"]},
timeout=60,
)
body = res.json()
if not body["success"]:
# one error shape for every endpoint — see /docs/errors
raise RuntimeError(f"{body['error']['type']}: {body['error']['message']}")
print(body["data"], "credits left:", body["credits_remaining"])Response
Response fields and example
This example is illustrative, not a captured live response. Variable-cost operations may settle a charge different from the list price below. A successful response puts the platform payload in data and reports the exact credits used, remaining balance, request id and cache status beside it.
{
"success": true,
"platform": "panorama",
"endpoint": "/v1/panorama/reputation",
"data": {
"brand": "My Brand",
"identity_resolution": {
"app_store": {
"status": "explicit",
"selected_id": "123456789",
"kind": "app",
"ownership_verified": false,
"basis": "caller_supplied_identifier",
"variant_status": null,
"candidates_examined": 0,
"compatible_candidates": 0,
"candidates": []
}
},
"sources": {
"app_store": {
"axis": "product",
"app_id": "123456789",
"name": "My Brand",
"rating": 4,
"sample_mean": null,
"sample_size": 0
}
},
"composite_score": 4,
"axes": {
"company": null,
"product": 4
},
"reviews": [],
"count": 0,
"news": null,
"themes": null
},
"credits_used": 30,
"credits_remaining": 99,
"request_id": "req_…",
"cached": false
}The example uses fictional values and shows a documented subset of data. The fields below are optional across supported sources; nullable fields can also be absent. Preserve unknown values and accept additional fields.
Download the data JSON Schema. Validate response.data, not the whole envelope. A valid shape does not establish that every field or source record was returned.
| Field inside data | Type | Meaning |
|---|---|---|
brand | string | null | Requested brand. |
identity_resolution | object | Nested response fields; optional unless explicitly documented. |
composite_score | number | null | Configured weighted mean of available source ratings; not a verified brand-wide reputation score. |
axes | object | Nested response fields; optional unless explicitly documented. |
axes.company | number | null | Weighted mean of company-scope inputs present. |
axes.product | number | null | Weighted mean of product/app-scope inputs present. |
weights | object | Nested response fields; optional unless explicitly documented. |
sources | object | Nested response fields; optional unless explicitly documented. |
news | object | null | Nested response fields; optional unless explicitly documented. |
reviews | array | Nested response fields; optional unless explicitly documented. |
reviews[].source | string | null | Original source. |
reviews[].axis | string | null | product or company; product-reviews records carry this field. |
reviews[].product_id | string | null | Amazon ASIN for product evidence. |
reviews[].company_domain | string | null | Company domain for Trustpilot evidence. |
reviews[].variant_scope | string | null | source_may_pool_variants for Amazon records. |
reviews[].id | string | null | Original review identifier, or null. |
reviews[].rating | number | null | Source rating on its documented scale. |
reviews[].title | string | null | Original review title. |
reviews[].text | string | null | Returned review text, bounded by the workflow text cap. |
reviews[].posted_at | string | null | Returned review date, or null. |
reviews[].url | string | null | Original review link, or null. |
reviews[].verified | boolean | null | Source-supplied verification label, not Monocrawl verification. |
count | number | null | Retained review sample size. |
themes | object | null | Nested response fields; optional unless explicitly documented. |
legs | array | Nested response fields; optional unless explicitly documented. |
_warnings | array | Nested response fields; optional unless explicitly documented. |
identity_resolution reports bounded lexical discovery over at most100 already-returned candidates. At most10 candidate summaries are displayed; compatible_candidates can be larger. Matching uses the supplied name, brand, model and variant terms; it does not infer aliases or verify ownership.
Explicit identifiers take precedence. Distinct compatible identities remain ambiguous, even when one title is an exact lexical match. No first-result fallback is used. When no source can be confidently matched and read, the response is an error with identity_resolution in error details.
Provider refusal, deadline or funding limits remain source_unavailable. That is not evidence that the requested entity does not exist. No additional AI or supplier identity calls are made.
Identity decisions cover Trustpilot, App Store, Google Play and Google Business discovery. Explicit app IDs and Trustpilot domains bypass query selection. TripAdvisor uses the supplied place URL; news remains keyword discovery and has no entity-verification promise. Inspect source-specific scopes and company/product axes before interpreting the combined rating.
Failures use the typed error envelope. A confirmed uncharged or refunded failure reports zero; a pending reconciliation can report an unknown charge. Read credits_used and error.details.billing_status, and keep request_id for recovery. Response contract · Error reference