{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://www.monocrawl.com/schemas/trustpilot/reviews.json","title":"trustpilot/reviews data fields","description":"Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee.","type":"object","anyOf":[{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Source ID or validated ID extracted from the canonical review URL."},"url":{"type":["string","null"],"description":"Original source URL when supplied."},"title":{"type":["string","null"],"description":"Review title."},"text":{"type":["string","null"],"description":"Review text."},"rating":{"type":["object","null"],"properties":{"value":{"type":["number","null"],"description":"Source star-rating value."},"votes":{"type":["number","null"],"description":"Ratings reported by the source; null or absent is unknown, not zero."},"max":{"type":["number","null"],"description":"Maximum of the rating scale, normally 5."}},"additionalProperties":true},"posted_at":{"type":["string","null"],"description":"Source review timestamp, publication date or relative age text; not the API retrieval time."}},"additionalProperties":true,"allOf":[{"anyOf":[{"required":["id"],"properties":{"id":{"type":["string"],"description":"Source ID or validated ID extracted from the canonical review URL.","minLength":1}}},{"required":["url"],"properties":{"url":{"type":["string"],"description":"Original source URL when supplied.","minLength":1}}},{"required":["title"],"properties":{"title":{"type":["string"],"description":"Review title.","minLength":1}}},{"required":["text"],"properties":{"text":{"type":["string"],"description":"Review text.","minLength":1}}},{"required":["rating"],"properties":{"rating":{"type":["object"],"properties":{"value":{"type":["number","null"],"description":"Source star-rating value."},"votes":{"type":["number","null"],"description":"Ratings reported by the source; null or absent is unknown, not zero."},"max":{"type":["number","null"],"description":"Maximum of the rating scale, normally 5."}},"additionalProperties":true}}},{"required":["posted_at"],"properties":{"posted_at":{"type":["string"],"description":"Source review timestamp, publication date or relative age text; not the API retrieval time.","minLength":1}}}]}]},"description":"Records in this response page."},"count":{"type":["number","null"],"description":"Returned row count when supplied; not the full source total."},"cursor":{"type":["string","null"],"description":"Opaque next-page token. A missing token does not prove full history was retrieved."},"has_more":{"type":["boolean","null"],"description":"Source continuation indicator; null means unknown."},"_warnings":{"type":"array","items":{"type":"string"},"description":"Collection limitations or component warnings. Read before interpreting coverage."}},"additionalProperties":true,"required":["items"],"x-contract-version":"2026-09-22","x-validation-scope":"Required success payload structure; optional fields and source completeness remain separate."},{"type":"object","required":["task_id","status","status_url","retrieval_credits"],"properties":{"task_id":{"type":"string","minLength":1},"status":{"enum":["queued","running","completed","failed","cancelled"]},"status_url":{"type":"string","pattern":"^/v1/web/jobs/job_"},"result_url":{"type":"string","pattern":"^/v1/web/jobs/job_"},"retrieval_credits":{"const":0}}}],"examples":[{"items":[{"id":"68a1b2c3d4e5f67890123456","url":"https://www.trustpilot.com/reviews/68a1b2c3d4e5f67890123456","text":"Illustrative review."}],"cursor":null,"has_more":null}]}