List brandtracker creative testing batches
Returns creative-testing batches grouped by ad start date for one active workspace brandtracker resolved from brandtracker.id. Testing membership includes non-deleted Facebook ads with media available in the bucket and a non-null start date. To keep response size and metering bounded, each batch returns at most 20 ads and exposes truncation metadata.
Request
- Base URL: https://api.trendtrack.io (the document declares no server; this is the origin it was published from)
- URL: https://api.trendtrack.io/v1/brandtrackers/{brandtrackerId}/testing
- Auth: HTTP bearer
Path parameters
Public brandtracker identifier. This endpoint resolves brandtracker.id inside the authenticated workspace; legacy spyders.uuid values are accepted when migration metadata exists.
Query parameters
Batch page number. Pagination is by distinct ad start-date batches.
Number of distinct start-date batches to return. Each batch returns at most 20 ads.
Status filter for this request. Allowed values: all, active, inactive.
Enum value accepted by this request. Allowed values: all, image, video.
Keyword search terms. Repeated query params and comma-separated values are both accepted.
Enum value accepted by this request. Allowed values: any, all.
Landing page URLs. Repeated query params and comma-separated values are both accepted.
Ad languages. Repeated query params and comma-separated values are both accepted.
Call-to-action labels. Repeated query params and comma-separated values are both accepted.
12-character MD5 prefixes of ad copy descriptions. Repeated query params and comma-separated values are both accepted.
Ad country include/exclude filter. Use comma-separated ISO codes with include/exclude modes.
Main ad countries. Repeated query params and comma-separated values are both accepted.
When true, keep only ads flagged as EU ads.
When true, keep only partnership ads. When false, keep only non-partnership ads.
Partner identifiers. Repeated query params and comma-separated values are both accepted.
Minimum ad reach threshold. Backed by the internal reach/impressions analytics field.
Maximum ad reach threshold. Backed by the internal reach/impressions analytics field.
CPM used to convert spend filters into reach thresholds.
Enum value accepted by this request. Allowed values: total, last24h, last7d, last30d.
Enum value accepted by this request. Allowed values: total, last24h, last7d, last30d.
When true, hides ads flagged as low reach.
Enum value accepted by this request. Allowed values: men, women, all.
Linked domain filter. URLs are normalized to their hostname before validation.
Rank trend filters. Repeated query params and comma-separated values are both accepted.
Snapshot date (YYYY-MM-DD or latest). When present, status is interpreted as active at this date.
Inclusive ad start-date lower bound.
Inclusive ad start-date upper bound.
Inclusive effective timeline end-date lower bound. Active ads use today, or snapshotDate when provided.
Inclusive effective timeline end-date upper bound. Active ads use today, or snapshotDate when provided.
Response
Paginated brandtracker testing response. Pagination is by start-date batches and the response includes the X-Request-Id header.
Example response
{
"requestId": "5d93d8de-0f6d-46a4-bd10-2e519b7e96bc",
"data": [
{
"startDate": "2026-04-20",
"ads": [
{
"id": "facebook_123456789",
"collationId": "3810635369204881",
"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": "FR",
"gender": "all",
"ageMin": 18,
"ageMax": 65
},
"rank": {
"positionInPage": 3,
"currentRank": 12,
"rankDelta": -4,
"improvementPct": 0.25
},
"flags": {
"isEuAd": true,
"hasPartnerBadge": true
}
}
],
"adsReturned": 20,
"maxAdsPerBatch": 20,
"runningCount": 1,
"isWinner": true,
"stats": {
"reach": {
"min": 1200,
"avg": 4200,
"max": 9800,
"total": 16800
},
"daysRunning": {
"min": 2,
"avg": 12,
"max": 31
},
"activeCount": 2,
"totalCount": 4,
"bestPerformerId": "facebook_123456789"
}
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 73,
"totalPages": 3
}
}Changes
No recorded changes to this operation across all 1 revision of this API.