Pay-per-call retail, advertising, and app-release decision intelligence.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compare supplied app reviews around a release and return regression and unsent action findings. — $0.08/call, x402 (USDC on base).
Canonical App Store ID, package name, or other buyer-owned application identifier.
Stable application watch identity used for baseline comparison.
Review source platform.
UTC release timestamp. Pre and post windows use this instant as their boundary.
Use auto for a Task-safe trusted Actor run ID, or provide an explicit idempotency key.
Contract version for this Actor input.
Canonical review rows. Use this or datasetId, never both. Runtime validation enforces the mutual exclusion.
Optional display name for the application.
Bounded deterministic analysis and optional explanation settings.
One buyer-owned Dataset selected with read-only permission. Use this or rows, never both. Runtime validation enforces the mutual exclusion.
Optional exact version used for cautious causality evidence.
Optional secret used only when options.explanation is byok.
Optional buyer cap checked before the paid result event.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Compare supplied app reviews around a release and return regression and unsent action findings. — $0.08/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| rows | array | Canonical review rows. Use this or datasetId, never both. Runtime validation enforces the mutual exclusion. |
| appId* | string | Canonical App Store ID, package name, or other buyer-owned application identifier. |
| appName | string | Optional display name for the application. |
| options | object | Bounded deterministic analysis and optional explanation settings. |
| watchId* | string | Stable application watch identity used for baseline comparison. |
| platform* | string | Review source platform. |
| datasetId | string | One buyer-owned Dataset selected with read-only permission. Use this or rows, never both. Runtime validation enforces the mutual exclusion. |
| releaseAt* | string | UTC release timestamp. Pre and post windows use this instant as their boundary. |
| requestId* | string | Use auto for a Task-safe trusted Actor run ID, or provide an explicit idempotency key. |
| schemaVersion* | string | Contract version for this Actor input. |
| releaseVersion | string | null | Optional exact version used for cautious causality evidence. |
| openrouterApiKey | string | Optional secret used only when options.explanation is byok. |
| maxTotalChargeUsd | number | Optional buyer cap checked before the paid result event. |
{
"type": "object",
"oneOf": [
{
"not": {
"required": [
"datasetId"
]
},
"required": [
"rows"
]
},
{
"not": {
"required": [
"rows"
]
},
"required": [
"datasetId"
]
}
],
"title": "App Release Regression Intelligence input",
"required": [
"schemaVersion",
"requestId",
"watchId",
"platform",
"appId",
"releaseAt"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"reviewId",
"text",
"rating",
"reviewedAt",
"version"
],
"properties": {
"text": {
"type": "string",
"title": "Review text",
"editor": "textarea",
"maxLength": 16384,
"minLength": 1,
"description": "Review body used for deterministic topic classification."
},
"rating": {
"type": "integer",
"title": "Rating",
"editor": "number",
"maximum": 5,
"minimum": 1,
"description": "Source rating from one to five."
},
"version": {
"type": [
"string",
"null"
],
"title": "App version",
"editor": "textfield",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._+:-]{0,127}$",
"maxLength": 128,
"minLength": 1,
"description": "Exact source app version when available; runtime also accepts null for missing versions."
},
"reviewId": {
"type": "string",
"title": "Review ID",
"editor": "textfield",
"maxLength": 256,
"minLength": 1,
"description": "Exact source review identity."
},
"reviewedAt": {
"type": "string",
"title": "Reviewed at",
"editor": "textfield",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(\\.\\d{1,9})?Z$",
"description": "UTC review timestamp ending in Z."
}
},
"additionalProperties": false
},
"title": "Inline review rows",
"editor": "json",
"default": [
{
"text": "Useful and stable app",
"rating": 4,
"version": "1.0.0",
"reviewId": "pre-001",
"reviewedAt": "2026-08-02T10:00:00Z"
},
{
"text": "Good app",
"rating": 4,
"version": "1.0.0",
"reviewId": "pre-002",
"reviewedAt": "2026-08-03T10:00:00Z"
},
{
"text": "The app works well",
"rating": 5,
"version": "1.0.0",
"reviewId": "pre-003",
"reviewedAt": "2026-08-04T10:00:00Z"
},
{
"text": "One ad is acceptable",
"rating": 4,
"version": "1.0.0",
"reviewId": "pre-004",
"reviewedAt": "2026-08-05T10:00:00Z"
},
{
"text": "Nice experience",
"rating": 5,
"version": "1.0.0",
"reviewId": "pre-005",
"reviewedAt": "2026-08-06T10:00:00Z"
},
{
"text": "Too many ads after the release",
"rating": 2,
"version": "1.0.0",
"reviewId": "post-001",
"reviewedAt": "2026-08-08T10:00:00Z"
},
{
"text": "Ads interrupt every screen",
"rating": 1,
"version": "1.0.0",
"reviewId": "post-002",
"reviewedAt": "2026-08-09T10:00:00Z"
},
{
"text": "The advertisements are constant",
"rating": 2,
"version": "1.0.0",
"reviewId": "post-003",
"reviewedAt": "2026-08-10T10:00:00Z"
},
{
"text": "Please add an option to remove ads",
"rating": 2,
"version": "1.0.0",
"reviewId": "post-004",
"reviewedAt": "2026-08-11T10:00:00Z"
},
{
"text": "Slow but no ads here",
"rating": 3,
"version": "1.0.0",
"reviewId": "post-005",
"reviewedAt": "2026-08-12T10:00:00Z"
}
],
"prefill": [
{
"text": "Useful and stable app",
"rating": 4,
"version": "1.0.0",
"reviewId": "pre-001",
"reviewedAt": "2026-08-02T10:00:00Z"
},
{
"text": "Good app",
"rating": 4,
"version": "1.0.0",
"reviewId": "pre-002",
"reviewedAt": "2026-08-03T10:00:00Z"
},
{
"text": "The app works well",
"rating": 5,
"version": "1.0.0",
"reviewId": "pre-003",
"reviewedAt": "2026-08-04T10:00:00Z"
},
{
"text": "One ad is acceptable",
"rating": 4,
"version": "1.0.0",
"reviewId": "pre-004",
"reviewedAt": "2026-08-05T10:00:00Z"
},
{
"text": "Nice experience",
"rating": 5,
"version": "1.0.0",
"reviewId": "pre-005",
"reviewedAt": "2026-08-06T10:00:00Z"
},
{
"text": "Too many ads after the release",
"rating": 2,
"version": "1.0.0",
"reviewId": "post-001",
"reviewedAt": "2026-08-08T10:00:00Z"
},
{
"text": "Ads interrupt every screen",
"rating": 1,
"version": "1.0.0",
"reviewId": "post-002",
"reviewedAt": "2026-08-09T10:00:00Z"
},
{
"text": "The advertisements are constant",
"rating": 2,
"version": "1.0.0",
"reviewId": "post-003",
"reviewedAt": "2026-08-10T10:00:00Z"
},
{
"text": "Please add an option to remove ads",
"rating": 2,
"version": "1.0.0",
"reviewId": "post-004",
"reviewedAt": "2026-08-11T10:00:00Z"
},
{
"text": "Slow but no ads here",
"rating": 3,
"version": "1.0.0",
"reviewId": "post-005",
"reviewedAt": "2026-08-12T10:00:00Z"
}
],
"maxItems": 500,
"minItems": 1,
"description": "Canonical review rows. Use this or datasetId, never both. Runtime validation enforces the mutual exclusion."
},
"appId": {
"type": "string",
"title": "App ID",
"editor": "textfield",
"default": "demo.app",
"prefill": "demo.app",
"maxLength": 256,
"minLength": 1,
"description": "Canonical App Store ID, package name, or other buyer-owned application identifier."
},
"appName": {
"type": "string",
"title": "App name",
"editor": "textfield",
"default": "Demo App",
"pattern": "^(?=.*\\S).+$",
"prefill": "Demo App",
"maxLength": 256,
"minLength": 1,
"description": "Optional display name for the application."
},
"options": {
"type": "object",
"title": "Analysis options",
"editor": "json",
"default": {
"maxRows": 500,
"preDays": 7,
"postDays": 7,
"minReviews": 5,
"explanation": "off",
"confirmationDays": 21
},
"prefill": {
"maxRows": 500,
"preDays": 7,
"postDays": 7,
"minReviews": 5,
"explanation": "off",
"confirmationDays": 21
},
"properties": {
"maxRows": {
"type": "integer",
"title": "Maximum Dataset rows",
"editor": "number",
"default": 500,
"maximum": 500,
"minimum": 1,
"prefill": 500,
"description": "Bounded number of Dataset rows read, plus one probe row for pagination detection."
},
"preDays": {
"type": "integer",
"title": "Pre-release days",
"editor": "number",
"default": 7,
"maximum": 90,
"minimum": 1,
"prefill": 7,
"description": "Number of days before release included in the comparison."
},
"postDays": {
"type": "integer",
"title": "Post-release days",
"editor": "number",
"default": 7,
"maximum": 90,
"minimum": 1,
"prefill": 7,
"description": "Number of days after release included in the first comparison."
},
"minReviews": {
"type": "integer",
"title": "Minimum reviews per comparison window",
"editor": "number",
"default": 5,
"maximum": 100,
"minimum": 1,
"prefill": 5,
"description": "Minimum accepted reviews required in both comparison windows."
},
"explanation": {
"enum": [
"off",
"byok"
],
"type": "string",
"title": "Explanation mode",
"editor": "select",
"default": "off",
"prefill": "off",
"description": "Keep off for deterministic output, or use byok for one bounded explanation call."
},
"analysisModel": {
"enum": [
"openai/gpt-4o-mini"
],
"type": "string",
"title": "Explanation model",
"editor": "select",
"description": "Fixed model used only for the optional BYOK explanation."
},
"confirmationDays": {
"type": "integer",
"title": "Confirmation days",
"editor": "number",
"default": 21,
"maximum": 90,
"minimum": 1,
"prefill": 21,
"description": "Number of days after release included in confirmation evidence."
}
},
"description": "Bounded deterministic analysis and optional explanation settings.",
"additionalProperties": false
},
"watchId": {
"type": "string",
"title": "Watch ID",
"editor": "textfield",
"default": "spotify-us-ios",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
"prefill": "spotify-us-ios",
"maxLength": 128,
"minLength": 1,
"description": "Stable application watch identity used for baseline comparison."
},
"platform": {
"enum": [
"apple",
"google"
],
"type": "string",
"title": "Platform",
"editor": "select",
"default": "apple",
"prefill": "apple",
"description": "Review source platform."
},
"datasetId": {
"type": "string",
"title": "Buyer Dataset ID",
"editor": "resourcePicker",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._~-]{0,99}$",
"maxLength": 100,
"minLength": 1,
"description": "One buyer-owned Dataset selected with read-only permission. Use this or rows, never both. Runtime validation enforces the mutual exclusion.",
"resourceType": "dataset",
"resourcePermissions": [
"READ"
]
},
"releaseAt": {
"type": "string",
"title": "Release timestamp",
"editor": "textfield",
"default": "2026-08-08T00:00:00Z",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(\\.\\d{1,9})?Z$",
"prefill": "2026-08-08T00:00:00Z",
"description": "UTC release timestamp. Pre and post windows use this instant as their boundary."
},
"requestId": {
"type": "string",
"title": "Request ID",
"editor": "textfield",
"default": "auto",
"pattern": "^(auto|[A-Za-z0-9][A-Za-z0-9._:-]{0,127})$",
"prefill": "auto",
"maxLength": 128,
"minLength": 1,
"description": "Use auto for a Task-safe trusted Actor run ID, or provide an explicit idempotency key."
},
"schemaVersion": {
"enum": [
"1.0"
],
"type": "string",
"title": "Schema version",
"editor": "select",
"default": "1.0",
"prefill": "1.0",
"description": "Contract version for this Actor input."
},
"releaseVersion": {
"type": [
"string",
"null"
],
"title": "Release version",
"editor": "textfield",
"default": "1.0.0",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._+:-]{0,127}$",
"prefill": "1.0.0",
"maxLength": 128,
"minLength": 1,
"description": "Optional exact version used for cautious causality evidence."
},
"openrouterApiKey": {
"type": "string",
"title": "OpenRouter API key",
"editor": "textfield",
"isSecret": true,
"description": "Optional secret used only when options.explanation is byok."
},
"maxTotalChargeUsd": {
"type": "number",
"title": "Maximum total charge (USD)",
"editor": "number",
"minimum": 0,
"description": "Optional buyer cap checked before the paid result event."
}
},
"description": "Supply canonical review rows or one buyer Dataset ID. The Actor never fetches source URLs or calls nested Actors. Use exactly one of rows or datasetId; runtime validation enforces this because the Apify input schema dialect cannot express cross-property XOR.",
"schemaVersion": 1,
"additionalProperties": false
}Compare supplied ad evidence and return deterministic changes, baseline state, and unsent actions. — $0.10/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| rows | array | |
| maxAds | integer | |
| watchId* | string | |
| coverage* | object | |
| datasetId | string | |
| requestId* | string | |
| analysisModel | string | null | |
| schemaVersion* | any | |
| sourceContract* | object | |
| openrouterApiKey | string | null | |
| maxTotalChargeUsd |
Free — list every paid tool in the 'decision-intelligence' bundle with its price, payTo address and network. Call this first if you don't have a wallet ready yet.
No arguments.
{
"type": "object",
"properties": {}
}Process supplied US retail evidence into MAP, availability, baseline, and review findings. — $0.08/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| rows | array | |
| options | any | |
| watchId* | string | |
| datasetId | string | |
| requestId* | string | The exact sentinel auto is resolved to the trusted Apify actorRunId before validation; explicit IDs remain idempotent. |
| schemaVersion* | any | |
| watchUniverse* | array | |
| datasetCoverage | object | |
| openrouterApiKey | string |
{
"type": "object",
"allOf": [
{
"if": {
"required": [
"datasetId"
]
},
"then": {
"required": [
"datasetCoverage"
]
}
},
{
"if": {
"required": [
"rows"
]
},
"then": {
"not": {
"required": [
"datasetCoverage"
]
}
}
}
],
"oneOf": [
{
"not": {
"required": [
"datasetId"
]
},
"required": [
"rows"
]
},
{
"not": {
"required": [
"rows"
]
},
"required": [
"datasetId"
]
}
],
"title": "US MAP Retail Evidence input",
"required": [
"schemaVersion",
"requestId",
"watchId",
"watchUniverse"
],
"properties": {
"rows": {
"type": "array",
"items": {
"$ref": "#/definitions/row"
},
"prefill": [
{
"data": {
"upc": "673419233606",
"url": "https://www.target.com/p/example/-/A-16747749",
"tcin": "16747749",
"brand": "LEGO",
"price": null,
"availability": null,
"productTitle": "LEGO Classic Large Creative Brick Box"
},
"adapter": "target",
"mapCents": 2999,
"observedAt": "2026-08-06T11:03:21.195Z",
"sourceName": "target_probe",
"sourceRecordId": "target-16747749"
}
],
"maxItems": 100,
"minItems": 1
},
"options": {
"$ref": "#/definitions/options",
"prefill": {
"maxItems": 100,
"explanation": "off",
"analysisModel": null
}
},
"watchId": {
"type": "string",
"default": "lego-watch",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
"prefill": "lego-watch"
},
"datasetId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,99}$"
},
"requestId": {
"type": "string",
"default": "auto",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
"prefill": "auto",
"description": "The exact sentinel auto is resolved to the trusted Apify actorRunId before validation; explicit IDs remain idempotent."
},
"schemaVersion": {
"const": "1.0",
"default": "1.0",
"prefill": "1.0"
},
"watchUniverse": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(productId|upc|asin|usItemId|tcin):.+$"
},
"default": [
"tcin:16747749"
],
"prefill": [
"tcin:16747749"
],
"maxItems": 100,
"minItems": 1
},
"datasetCoverage": {
"type": "object",
"required": [
"closed",
"expectedItems"
],
"properties": {
"closed": {
"const": true
},
"expectedItems": {
"type": "integer",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
},
"openrouterApiKey": {
"type": "string",
"minLength": 1
}
},
"definitions": {
"row": {
"type": "object",
"required": [
"adapter",
"sourceRecordId",
"sourceName",
"observedAt"
],
"properties": {
"data": {
"$ref": "#/definitions/nativeData"
},
"brand": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"seller": {
"$ref": "#/definitions/seller"
},
"adapter": {
"enum": [
"canonical_rows",
"google_shopping",
"amazon",
"walmart_product_detail",
"target"
]
},
"currency": {
"type": [
"string",
"null"
]
},
"identity": {
"$ref": "#/definitions/identity"
},
"mapCents": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"priceType": {
"type": [
"string",
"null"
]
},
"sourceUrl": {
"type": [
"string",
"null"
]
},
"observedAt": {
"type": "string",
"format": "date-time"
},
"priceCents": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"restricted": {
"type": [
"boolean",
"string",
"null"
]
},
"sourceName": {
"type": "string",
"minLength": 1
},
"availability": {
"type": [
"string",
"null"
]
},
"variantPrices": {
"type": [
"array",
"null"
]
},
"sourceRecordId": {
"type": "string",
"minLength": 1
},
"priceRangeCents": {
"type": [
"array",
"null"
],
"items": {
"type": "integer",
"minimum": 0
},
"maxItems": 2,
"minItems": 2
},
"couponPriceCents": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"memberPriceCents": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"authorizedSellerIds": {
"type": "array",
"items": {
"type": "string"
}
},
"authorizedSellerDomains": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"seller": {
"type": "object",
"properties": {
"id": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"domain": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"options": {
"type": "object",
"default": {
"maxItems": 100,
"explanation": "off",
"analysisModel": null
},
"properties": {
"maxItems": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"explanation": {
"enum": [
"off",
"byok"
]
},
"analysisModel": {
"type": [
"string",
"null"
],
"minLength": 1
}
},
"additionalProperties": false
},
"identity": {
"type": "object",
"properties": {
"upc": {
"type": "string"
},
"asin": {
"type": "string"
},
"tcin": {
"type": "string"
},
"usItemId": {
"type": "string"
},
"productId": {
"type": "string"
}
},
"additionalProperties": false
},
"nativeData": {
"type": "object",
"properties": {
"upc": {},
"url": {},
"asin": {},
"dpci": {},
"gtin": {},
"link": {},
"name": {},
"tcin": {},
"type": {},
"badge": {},
"brand": {},
"model": {},
"price": {},
"specs": {},
"title": {},
"ebooks": {},
"gender": {},
"gtin12": {},
"gtin13": {},
"gtin14": {},
"images": {},
"rating": {},
"rhPath": {},
"seller": {},
"source": {},
"offerId": {},
"on_sale": {},
"savings": {},
"success": {},
"brandUrl": {},
"category": {},
"currency": {},
"features": {},
"imageUrl": {},
"in_stock": {},
"inputUrl": {},
"itemType": {},
"metadata": {},
"sellerId": {},
"usItemId": {},
"variants": {},
"wasPrice": {},
"allImages": {},
"offerType": {},
"priceInfo": {},
"priceType": {},
"productId": {},
"seller_id": {},
"unitPrice": {},
"department": {},
"highlights": {},
"orderLimit": {},
"priceCents": {},
"priceRange": {},
"productUrl": {},
"product_id": {},
"restricted": {},
"sellerName": {},
"breadcrumbs": {},
"description": {},
"image_count": {},
"isSponsored": {},
"productName": {},
"seller_name": {},
"variantList": {},
"availability": {},
"hasCarePlans": {},
"isRestricted": {},
"priceDisplay": {},
"productTitle": {},
"product_type": {},
"ratingCounts": {},
"returnPolicy": {},
"reviewsCount": {},
"sellerDomain": {},
"thumbnailUrl": {},
"averageRating": {},
"orderMinLimit": {},
"originalPrice": {},
"primary_image": {},
"regular_price": {},
"seller_domain": {},
"variantPrices": {},
"buyNowEligible": {},
"personalizable": {},
"purchase_limit": {},
"fulfillmentType": {},
"numberOfReviews": {},
"price_formatted": {},
"savings_percent": {},
"suppressReviews": {},
"ironbankCategory": {},
"legalRestriction": {},
"shortDescription": {},
"buyBoxSuppression": {},
"secondary_ratings": {},
"sellerReviewCount": {},
"availabilityStatus": {},
"giftingEligibility": {},
"rating_distribution": {},
"secondaryOfferPrice": {},
"sellerAverageRating": {},
"shippingRestriction": {},
"additionalOfferCount": {},
"subscriptionEligible": {},
"written_review_count": {},
"manufacturerProductId": {},
"relationship_type_code": {},
"transactableOfferCount": {},
"showExploreOtherConditionsCTA": {}
},
"additionalProperties": false
}
},
"additionalProperties": false
}| number | null |
{
"type": "object",
"allOf": [
{
"if": {
"properties": {
"coverage": {
"properties": {
"comparable": {
"const": true
}
}
}
}
},
"then": {
"properties": {
"coverage": {
"properties": {
"closed": {
"const": true
},
"status": {
"const": "complete"
}
}
}
}
}
},
{
"if": {
"properties": {
"coverage": {
"properties": {
"closed": {
"const": true
},
"status": {
"const": "complete"
}
}
}
}
},
"then": {
"properties": {
"coverage": {
"properties": {
"evidenceRef": {
"type": "string",
"minLength": 1
},
"expectedRows": {
"type": "integer",
"maximum": 100,
"minimum": 0
}
}
}
}
}
}
],
"oneOf": [
{
"not": {
"required": [
"datasetId"
]
},
"required": [
"rows"
]
},
{
"not": {
"required": [
"rows"
]
},
"required": [
"datasetId"
]
}
],
"title": "Competitor ad change brief input",
"required": [
"schemaVersion",
"requestId",
"watchId",
"coverage",
"sourceContract"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"platform",
"advertiserId",
"pageId",
"adId",
"creativeId",
"isActive",
"format",
"copy",
"cta",
"landingDomains",
"media",
"offer",
"evidence"
],
"properties": {
"cta": {
"type": [
"string",
"null"
]
},
"adId": {
"type": [
"string",
"null"
]
},
"copy": {
"type": "object",
"required": [
"primaryText",
"headline",
"description"
],
"properties": {
"headline": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"primaryText": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"media": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8
},
"offer": {
"type": [
"object",
"null"
],
"required": [
"kind",
"value",
"currency",
"code"
],
"properties": {
"code": {
"type": [
"string",
"null"
]
},
"kind": {
"type": [
"string",
"null"
]
},
"value": {
"type": [
"number",
"null"
]
},
"currency": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"format": {
"enum": [
"TEXT",
"IMAGE",
"VIDEO",
"CAROUSEL",
"COLLECTION",
"OTHER",
null
]
},
"pageId": {
"type": [
"string",
"null"
]
},
"evidence": {
"type": "object",
"required": [
"sourceRef",
"sourceRowId"
],
"properties": {
"sourceRef": {
"type": [
"string",
"null"
]
},
"sourceRowId": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"isActive": {
"type": [
"boolean",
"null"
]
},
"platform": {
"enum": [
"meta",
"google",
"linkedin"
]
},
"scrapedAt": {
"type": [
"string",
"null"
]
},
"creativeId": {
"type": [
"string",
"null"
]
},
"advertiserId": {
"type": [
"string",
"null"
]
},
"landingDomains": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8
}
},
"additionalProperties": false
},
"prefill": [
{
"cta": "Shop now",
"adId": null,
"copy": {
"headline": "Product Listing Ad Rendering Service",
"description": "Nike Sportswear hoodie",
"primaryText": "Unisex Nike Sportswear Tech Fleece"
},
"media": [
"https://tpc.googlesyndication.com/archive/simgad/3463432638140085355?sig=demo"
],
"offer": {
"code": null,
"kind": null,
"value": null,
"currency": null
},
"format": "IMAGE",
"pageId": null,
"evidence": {
"sourceRef": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR16854540057166479361",
"sourceRowId": "CR16854540057166479361"
},
"isActive": true,
"platform": "google",
"scrapedAt": "2026-08-06T11:03:09Z",
"creativeId": "CR16854540057166479361",
"advertiserId": "AR16735076323512287233",
"landingDomains": [
"nike.com"
]
}
],
"maxItems": 100,
"minItems": 1
},
"maxAds": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1,
"prefill": 100
},
"watchId": {
"type": "string",
"default": "nike-us-demo-bootstrap",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
"prefill": "nike-us-demo-bootstrap"
},
"coverage": {
"type": "object",
"prefill": {
"closed": true,
"status": "complete",
"comparable": true,
"evidenceRef": "buyer://public-demo/coverage",
"expectedRows": 1
},
"required": [
"status",
"comparable",
"closed",
"evidenceRef",
"expectedRows"
],
"properties": {
"closed": {
"type": "boolean"
},
"status": {
"enum": [
"complete",
"partial_pagination",
"partial_budget",
"source_unavailable"
]
},
"comparable": {
"type": "boolean"
},
"evidenceRef": {
"type": [
"string",
"null"
],
"maxLength": 512
},
"expectedRows": {
"type": [
"integer",
"null"
],
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
},
"datasetId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,99}$"
},
"requestId": {
"type": "string",
"default": "auto",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
"prefill": "auto"
},
"analysisModel": {
"type": [
"string",
"null"
],
"default": "openai/gpt-4o-mini",
"prefill": "openai/gpt-4o-mini",
"maxLength": 200
},
"schemaVersion": {
"const": "1.0",
"default": "1.0",
"prefill": "1.0"
},
"sourceContract": {
"type": "object",
"prefill": {
"adapter": "google-ads",
"queryScope": {
"country": "US",
"advertiserId": "AR16735076323512287233"
},
"adapterVersion": "1.0.0",
"entityIdentity": {
"advertiserId": "AR16735076323512287233"
},
"productionActorId": "zinin/brand-evidence-source",
"productionActorVersion": "0.1.0"
},
"required": [
"productionActorId",
"productionActorVersion",
"adapter",
"adapterVersion",
"queryScope",
"entityIdentity"
],
"properties": {
"adapter": {
"enum": [
"meta",
"meta-ads",
"google",
"google-ads",
"linkedin",
"linkedin-ads"
],
"type": "string",
"maxLength": 128
},
"queryScope": {
"type": "object"
},
"adapterVersion": {
"type": "string",
"maxLength": 64
},
"entityIdentity": {
"type": "object"
},
"productionActorId": {
"type": "string",
"maxLength": 128
},
"productionActorVersion": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
},
"openrouterApiKey": {
"type": [
"string",
"null"
],
"isSecret": true,
"maxLength": 512
},
"maxTotalChargeUsd": {
"type": [
"number",
"null"
],
"default": null,
"minimum": 0,
"prefill": 0.055
}
},
"definitions": {
"canonicalRow": {
"type": "object",
"required": [
"platform",
"advertiserId",
"pageId",
"adId",
"creativeId",
"isActive",
"format",
"copy",
"cta",
"landingDomains",
"media",
"offer",
"evidence"
],
"properties": {
"cta": {
"type": [
"string",
"null"
]
},
"adId": {
"type": [
"string",
"null"
]
},
"copy": {
"type": "object",
"required": [
"primaryText",
"headline",
"description"
],
"properties": {
"headline": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"primaryText": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"media": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8
},
"offer": {
"type": [
"object",
"null"
],
"required": [
"kind",
"value",
"currency",
"code"
],
"properties": {
"code": {
"type": [
"string",
"null"
]
},
"kind": {
"type": [
"string",
"null"
]
},
"value": {
"type": [
"number",
"null"
]
},
"currency": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"format": {
"enum": [
"TEXT",
"IMAGE",
"VIDEO",
"CAROUSEL",
"COLLECTION",
"OTHER",
null
]
},
"pageId": {
"type": [
"string",
"null"
]
},
"evidence": {
"type": "object",
"required": [
"sourceRef",
"sourceRowId"
],
"properties": {
"sourceRef": {
"type": [
"string",
"null"
]
},
"sourceRowId": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"isActive": {
"type": [
"boolean",
"null"
]
},
"platform": {
"enum": [
"meta",
"google",
"linkedin"
]
},
"scrapedAt": {
"type": [
"string",
"null"
]
},
"creativeId": {
"type": [
"string",
"null"
]
},
"advertiserId": {
"type": [
"string",
"null"
]
},
"landingDomains": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}