Returns the lightweight public ads collection. This endpoint stays intentionally small and focuses on text search, brand search, simple filters, sorting, and pagination. The search parameter is required; for advanced filtering without a required text search, use POST /v1/ads/query.
publicApiBearer Provide a Trendtrack Public API key using Authorization: Bearer <api_key>.
In: header
application/json
application/json
application/json
application/json
application/json
{
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"data": [
{
"id": "facebook_123456789",
"platform": "facebook",
"status": "active",
"createdAt": "2026-04-18T12:30:00.000Z",
"firstSeenAt": "2026-04-10T00:00:00.000Z",
"lastSeenAt": "2026-04-19T00:00:00.000Z",
"daysRunning": 9,
"media": {
"type": "video",
"thumbnailUrl": "https://cdn.example.com/ads/ad-1-thumb.jpg",
"mediaUrl": "https://cdn.example.com/ads/ad-1.mp4"
},
"advertiser": {
"id": "1234567890",
"name": "Example Brand",
"logoUrl": "https://cdn.example.com/pages/example-brand.png",
"facebookPageId": "1234567890",
"liveAdsCount": 42,
"reach30d": 152340,
"totalReach": 842100,
"countriesCount": 8,
"facebookLikes": 125000,
"instagramFollowers": 89000
},
"content": {
"title": "Summer Sale",
"body": "Up to 30% off selected products.",
"transcript": "Save 30% on every order.",
"callToAction": "Shop now",
"landingPageUrl": "https://example.com/products/summer-sale",
"landingPageDomain": "example.com",
"ctaDescription": "Free shipping on orders over $50.",
"ctaLinkDescription": "Shop the full collection"
},
"metrics": {
"reach": 152340,
"aggregatedReach": 284100,
"estimatedSpend": 4262,
"duplicates": 4,
"reachDelta1d": 1200,
"reachDelta7d": 8200,
"reachDelta30d": 38400
},
"audience": {
"targetedCountries": [
"US",
"FR"
],
"mainCountry": "US",
"gender": "all",
"ageMin": 18,
"ageMax": 65
},
"rank": {
"positionInPage": 3,
"currentRank": 12,
"rankDelta": -4,
"improvementPct": 0.25
},
"flags": {
"isEuAd": true,
"isLowReach": false,
"isMediaChanged": false,
"hasPartnerBadge": true
}
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 235,
"totalPages": 10
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}Returns the advanced public ads query surface. This endpoint supports the full current ads filtering set through a public camelCase contract with structured JSON for advanced growth, country, market, and ranking filters while keeping the response aligned with the standard public ad summary shape. Search terms are optional in this route.
publicApiBearer Provide a Trendtrack Public API key using Authorization: Bearer <api_key>.
In: header
application/json
TypeScript Definitions
Use the request body type in TypeScript.
application/json
application/json
application/json
application/json
application/json
{
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"data": [
{
"id": "facebook_123456789",
"platform": "facebook",
"status": "active",
"createdAt": "2026-04-18T12:30:00.000Z",
"firstSeenAt": "2026-04-10T00:00:00.000Z",
"lastSeenAt": "2026-04-19T00:00:00.000Z",
"daysRunning": 9,
"media": {
"type": "video",
"thumbnailUrl": "https://cdn.example.com/ads/ad-1-thumb.jpg",
"mediaUrl": "https://cdn.example.com/ads/ad-1.mp4"
},
"advertiser": {
"id": "1234567890",
"name": "Example Brand",
"logoUrl": "https://cdn.example.com/pages/example-brand.png",
"facebookPageId": "1234567890",
"liveAdsCount": 42,
"reach30d": 152340,
"totalReach": 842100,
"countriesCount": 8,
"facebookLikes": 125000,
"instagramFollowers": 89000
},
"content": {
"title": "Summer Sale",
"body": "Up to 30% off selected products.",
"transcript": "Save 30% on every order.",
"callToAction": "Shop now",
"landingPageUrl": "https://example.com/products/summer-sale",
"landingPageDomain": "example.com",
"ctaDescription": "Free shipping on orders over $50.",
"ctaLinkDescription": "Shop the full collection"
},
"metrics": {
"reach": 152340,
"aggregatedReach": 284100,
"estimatedSpend": 4262,
"duplicates": 4,
"reachDelta1d": 1200,
"reachDelta7d": 8200,
"reachDelta30d": 38400
},
"audience": {
"targetedCountries": [
"US",
"FR"
],
"mainCountry": "US",
"gender": "all",
"ageMin": 18,
"ageMax": 65
},
"rank": {
"positionInPage": 3,
"currentRank": 12,
"rankDelta": -4,
"improvementPct": 0.25
},
"flags": {
"isEuAd": true,
"isLowReach": false,
"isMediaChanged": false,
"hasPartnerBadge": true
}
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 235,
"totalPages": 10
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}Creates or returns the existing TrendTrack public webapp share URL for an ad. This is classified as a workspace-scoped write because it creates share state server-side when needed; delegated OAuth/API-key callers must be workspace writers.
publicApiBearer Provide a Trendtrack Public API key using Authorization: Bearer <api_key>.
In: header
application/json
application/json
application/json
application/json
application/json
application/json
{
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"data": {
"adId": "facebook_123456789",
"id": "3f8aa146-6f96-46e8-9781-64db5166f9a8",
"slug": "example-brand-9a8b7c",
"shareUrl": "https://app.trendtrack.io/share/ads/example-brand-9a8b7c",
"sharePath": "/share/ads/example-brand-9a8b7c",
"createdAt": "2026-04-18T12:30:00.000Z"
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}Returns URL metadata for the best available media asset for an ad. This endpoint does not proxy or download the binary media.
publicApiBearer Provide a Trendtrack Public API key using Authorization: Bearer <api_key>.
In: header
application/json
application/json
application/json
application/json
application/json
application/json
{
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"data": {
"adId": "facebook_123456789",
"mediaType": "video",
"url": "https://medias.trendtrack.io/ads/ad-1.mp4",
"urlType": "public_asset",
"selectedSource": "media_url",
"mediaUrl": "https://medias.trendtrack.io/ads/ad-1.mp4",
"thumbnailUrl": "https://medias.trendtrack.io/ads/ad-1-thumb.jpg",
"filename": "facebook_123456789.mp4"
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}Returns a single public ad detail object by ad id. The current backing identifier is the internal composite ad id, but the public contract exposes it as id.
publicApiBearer Provide a Trendtrack Public API key using Authorization: Bearer <api_key>.
In: header
application/json
application/json
application/json
application/json
application/json
application/json
{
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"data": {
"id": "facebook_123456789",
"platform": "facebook",
"status": "active",
"createdAt": "2026-04-18T12:30:00.000Z",
"firstSeenAt": "2026-04-10T00:00:00.000Z",
"lastSeenAt": "2026-04-19T00:00:00.000Z",
"daysRunning": 9,
"media": {
"type": "video",
"thumbnailUrl": "https://cdn.example.com/ads/ad-1-thumb.jpg",
"mediaUrl": "https://cdn.example.com/ads/ad-1.mp4"
},
"advertiser": {
"id": "1234567890",
"name": "Example Brand",
"logoUrl": "https://cdn.example.com/pages/example-brand.png",
"facebookPageId": "1234567890",
"liveAdsCount": 42,
"reach30d": 152340,
"totalReach": 842100,
"countriesCount": 8,
"facebookLikes": 125000,
"instagramFollowers": 89000
},
"content": {
"title": "Summer Sale",
"body": "Up to 30% off selected products.",
"transcript": "Save 30% on every order.",
"callToAction": "Shop now",
"landingPageUrl": "https://example.com/products/summer-sale",
"landingPageDomain": "example.com",
"ctaDescription": "Free shipping on orders over $50.",
"ctaLinkDescription": "Shop the full collection"
},
"metrics": {
"reach": 152340,
"aggregatedReach": 284100,
"estimatedSpend": 4262,
"duplicates": 4,
"reachDelta1d": 1200,
"reachDelta7d": 8200,
"reachDelta30d": 38400
},
"audience": {
"targetedCountries": [
"US",
"FR"
],
"mainCountry": "US",
"gender": "all",
"ageMin": 18,
"ageMax": 65
},
"rank": {
"positionInPage": 3,
"currentRank": 12,
"rankDelta": -4,
"improvementPct": 0.25
},
"flags": {
"isEuAd": true,
"isLowReach": false,
"isMediaChanged": false,
"hasPartnerBadge": true
},
"transcript": {
"language": "en",
"languageConfidence": 0.97,
"segments": [
{
"start": 0.4,
"end": 3.2,
"text": "Save 30% on every order."
}
],
"fullText": "Save 30% on every order."
},
"creativeAnalysis": {
"hook": {
"text": "Yes, it is pricey. Also, worth it.",
"source": "ad_transcripts_hook",
"sourceDescription": "Existing completed ad transcript hook.",
"isFallback": false
}
},
"links": {
"adLibraryUrl": "https://www.facebook.com/ads/library/?view_all_page_id=1234567890&id=9876543210",
"landingPageUrl": "https://example.com/products/summer-sale"
},
"shops": [
{
"shopId": "3f8aa146-6f96-46e8-9781-64db5166f9a8",
"domain": "example.com",
"name": "Example Shop",
"isPrimary": true,
"traffic": 45231,
"categories": [
"Fashion",
"Accessories"
]
}
],
"pageAnalytics": {
"impressionsHistory": [
{
"date": "2026-04-18",
"totalImpressions": 12340
}
],
"facebookLikesHistory": [
{
"date": "2026-04-18",
"value": 84000
}
],
"instagramFollowersHistory": [
{
"date": "2026-04-18",
"value": 84000
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}Returns the public daily reach history for one ad. The series is intentionally lightweight and keeps reach as the canonical metric term.
publicApiBearer Provide a Trendtrack Public API key using Authorization: Bearer <api_key>.
In: header
application/json
application/json
application/json
application/json
application/json
application/json
{
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"data": [
{
"date": "2026-04-18",
"reach": 152340
}
]
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}{
"error": {
"code": "missing_api_key",
"message": "Provide an API key using Authorization: Bearer <api_key>.",
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"details": {
"validationErrors": [
{
"field": "query-string.limit",
"location": "query-string",
"expected": [
"limit must not be greater than 100"
]
}
]
}
}
}Canonical text query for the lightweight public ads listing.
Search mode for this request. Allowed values: adCopy, brand.
"adCopy" | "brand"Enum value accepted by this request. Allowed values: facebook, all. TikTok is not available in public v1.
"facebook" | "all"11 <= value251 <= value <= 100Status filter for this request. Allowed values: active, inactive, all.
"active" | "inactive" | "all"Creative media type filter for this request. Allowed values: image, video, carousel. carousel maps to indexed carousel creatives and is not a DCO filter.
"image" | "video" | "carousel"Sort key for this request. Allowed values: relevance, newest, longestRunning, reach.
"relevance" | "newest" | "longestRunning" | "reach"Deprecated alias for search. Use search instead.
TrendTrack ad identifier returned as adId by the Public API.
TrendTrack ad identifier returned as adId by the Public API.
TrendTrack ad identifier returned as adId by the Public API.
TrendTrack ad identifier returned as adId by the Public API.
3651 <= value <= 365curl -X GET "https://api.trendtrack.io/v1/ads?search=string"curl -X POST "https://api.trendtrack.io/v1/ads/query" \ -H "Content-Type: application/json" \ -d '{ "sortBy": "newest", "order": "desc", "status": "active", "platforms": [ "facebook" ], "minDaysRunning": 7, "reachPeriod": "last7d", "minReach": 10000, "limit": 25 }'curl -X POST "https://api.trendtrack.io/v1/ads/facebook_123456789/share"curl -X GET "https://api.trendtrack.io/v1/ads/facebook_123456789/media-url"curl -X GET "https://api.trendtrack.io/v1/ads/facebook_123456789"curl -X GET "https://api.trendtrack.io/v1/ads/facebook_123456789/reach-history"Optional list of search terms used by the advanced ads query engine.
Search mode for this request. Public camelCase values map to the same internal /ads fields: adCopy → ad_copy, brand → brand, website → website_copy, domain → domain, urlContains → url_contains.
"adCopy" | "brand" | "website" | "domain" | "urlContains"How multiple search keywords are combined. Allowed values: any, all.
"any" | "all"Sort key for this request. Allowed values: createdAt, longestRunning, relevance, relevanceScore, newest, mostDuplicates, reach, reachDelta1d, reachDelta7d, reachDelta30d, adOrder.
"createdAt" | "longestRunning" | "relevance" | "relevanceScore" | "newest" | "mostDuplicates" | "reach" | "reachDelta1d" | "reachDelta7d" | "reachDelta30d" | "adOrder"Sort direction for this request. Allowed values: asc, desc.
"asc" | "desc"1 <= value1 <= value <= 100Accepted public v1 platform values. TikTok is not available in public v1.
Creative media type filter for this request. Allowed values: image, video, carousel. carousel maps to indexed carousel creatives and is not a DCO filter.
"image" | "video" | "carousel"date-timedate-timedate-timedate-timedate-timedate-time0 <= value0 <= valueStatus filter for this request. Allowed values: active, inactive, all.
"active" | "inactive" | "all"0 <= value0 <= value0 <= value0 <= value0 <= value0 <= value1 <= valueRank interpretation mode. Allowed values: percentile, rank.
"percentile" | "rank"Rank basis used for ad rank filters. Allowed values: current, alltime.
"current" | "alltime"1 <= valueAdvanced rank trend filter. Currently backed by the 3-day rank direction field; all provided directions are ORed while grouping, period, minChange, and unit are accepted for forward compatibility.
Minimum reach threshold. Backed by the internal reach/impressions analytics fields.
0 <= valueMaximum reach threshold. Backed by the internal reach/impressions analytics fields.
0 <= value0 <= value0 <= valueAudience gender filter. Allowed values: men, women, all.
"men" | "women" | "all"Countries where the ad is distributed. Uses ISO 3166-1 alpha-2 country codes.
Spender segment filter. Allowed values: big-spender, rising-star, brandtracker.
"big-spender" | "rising-star" | "brandtracker"0 <= value0 <= valueTraffic growth filter. Uses OR groups (anyOf) made of AND-ed rules (all). Values are percentage thresholds.
0 <= value0 <= valueAds growth filter. Uses OR groups (anyOf) made of AND-ed rules (all). Values are percentage thresholds.
Page reach growth filter. Uses OR groups (anyOf) made of AND-ed rules (all).
Ad reach growth filter. Uses OR groups (anyOf) made of AND-ed rules (all).
Google category facet ids matched against ads/shop google_categories.
0 <= value0 <= value0 <= value0 <= valueRelative ad first-seen time window. When createdAfter is omitted, this is converted to an internal first-seen lower bound at the UTC day boundary for the selected period. It also selects the ads metric period used by minAds/maxAds.
"last24h" | "last7d" | "last30d"date-timedate-timeAdvertiser creation country filter using ISO 3166-1 alpha-2 country codes.
Market filter grouped by primary markets, secondary markets, and excluded markets.
Shopify Plus filter. Allowed values: plus, non-plus, all.
"plus" | "non-plus" | "all"Minimum Trustpilot score.
0 <= valueMaximum Trustpilot score.
0 <= valueMinimum Trustpilot review count.
0 <= valueMaximum Trustpilot review count.
0 <= valueMinimum estimated spend. Uses cpm when provided, otherwise the public API default CPM of 9.
0 <= valueMaximum estimated spend. Uses cpm when provided, otherwise the public API default CPM of 9.
0 <= valueCPM in euros per 1,000 reach used for spend filters and estimatedSpend. Defaults to 9 when omitted.
90 <= valueMetric period used by minSpend/maxSpend. By itself this parameter does not filter results.
"total" | "last24h" | "last7d" | "last30d"Metric period used by minReach/maxReach. Reach is the public Meta Ad Library vocabulary for impressions where available. Allowed values: total, last24h, last7d, last30d.
"total" | "last24h" | "last7d" | "last30d"Minimum estimated spend per page. Uses cpm when provided, otherwise the public API default CPM of 9.
0 <= valueMaximum estimated spend per page. Uses cpm when provided, otherwise the public API default CPM of 9.
0 <= valueMetric period used by minSpendPerPage/maxSpendPerPage. By itself this parameter does not filter results.
"total" | "last24h" | "last7d" | "last30d"0 <= value0 <= value0 <= value0 <= valueMinimum page reach threshold. Backed by the internal page impressions fields.
0 <= valueMaximum page reach threshold. Backed by the internal page impressions fields.
0 <= valueMetric period used by minReachPerPage/maxReachPerPage. Reach is the public Meta Ad Library vocabulary for page impressions where available. Allowed values: total, last24h, last7d, last30d.
"total" | "last24h" | "last7d" | "last30d"Technology slugs supported by the current ads index. Supported values: checkoutchamp, clickfunnels, funnelish, gempages, magento, odoo, pagefly, prestashop, shopify, shoplazza, shopline, squarespace, wheelio, wix, woocommerce, wordpress, zipify-pages.
Exclude low reach ads. Backed by the internal low impressions flag.
0 <= value <= 15