# OpenAdLibrary Public API - **OpenAPI Version:** `3.1.1` - **API Version:** `0.1.0` OpenAdLibrary's **read-only, key-authenticated** developer API. It returns the same leak-safe public DTOs as the share pages — public creative content, public thumbnail URLs, and aggregate counts only. It never returns raw click URLs, redirect chains, destination URLs, internal asset/observation ids, landing-page screenshots, moderation/ML internals, or any other account's data. ## Connect an AI agent (MCP) OpenAdLibrary runs a hosted **Model Context Protocol** server so agents like Claude and Cursor can query the whole public corpus through tools. It is a thin, read-only pass-through over this same `/api/v1` surface. - **Server URL:** `https://mcp.openadlibrary.com/mcp` (streamable HTTP) - Authenticate with your own key in the `Authorization` header: ```json { "mcpServers": { "openadlibrary": { "url": "https://mcp.openadlibrary.com/mcp", "headers": { "Authorization": "Bearer oal_your_key_here" } } } } ``` Replace `oal_your_key_here` with a key from **Settings → API keys**. Cursor / VS Code can instead send the key as an `x-api-key` header. **claude.ai custom connectors**: just add `https://mcp.openadlibrary.com/mcp` with no credentials — claude.ai shows a **Connect** button that signs you in with your OpenAdLibrary account (OAuth) and provisions an API key automatically. Alternatively, put a key in the connector URL — `https://mcp.openadlibrary.com/mcp/oal_your_key_here` (or `…/mcp?key=…`) — and treat that URL as a secret, like the key itself. ## Authentication Every request authenticates with your own API key. Create one from **Settings → API keys** (shown once at creation — store it safely). Send it as an `Authorization: Bearer ` header (the MCP convention) **or** an `x-api-key` header. Keys are scoped to public data only; the same key works for both this REST API and the MCP server. ## Rate limits & quota Your daily allowance depends on your plan, and the two limits return **different** status codes — check the code, not just the message: - **Free accounts** get **2 requests/day**. Past that the API returns **HTTP 402 (Payment Required)** — subscribe to OpenAdLibrary Pro at to unlock the full daily quota. - **Pro accounts** get each key's daily quota (default **5,000 requests/day**). Exceeding it returns **HTTP 429 (Too Many Requests)**. - A **per-minute burst limit** of **120 requests/minute** applies on every plan; bursting past it also returns **HTTP 429**. Your live usage for the day is shown on the **Settings → API keys** page (the count there reflects the limit that actually applies to your plan). ## Pagination & sync For one-off queries use offset paging. For large or repeated exports use keyset pagination (an opaque `after` cursor) so results stay stable as new ads arrive. To keep a local mirror in sync, poll the delta endpoint with the `serverTime` watermark from your last successful sync. ## Servers - **URL:** `https://openadlibrary.com` - **Description:** Production ## Operations ### GET /api/v1/ads - **Method:** `GET` - **Path:** `/api/v1/ads` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `sortBy` - **In:** `query` `string` ##### `sortDir` - **In:** `query` `string`, possible values: `"asc", "desc"`, default: `"desc"` ##### `dateFrom` - **In:** `query` `string` ##### `dateTo` - **In:** `query` `string` ##### `geoCountry` - **In:** `query` `string` ##### `deviceType` - **In:** `query` `string` ##### `vertical` - **In:** `query` `string` ##### `adFormat` - **In:** `query` `string` ##### `adNetwork` - **In:** `query` `string` ##### `industryCategory` - **In:** `query` `string` ##### `iabCategoryId` - **In:** `query` `string` ##### `iabTier1` - **In:** `query` `string` ##### `semantic` - **In:** `query` `boolean` ##### `concept` - **In:** `query` `string` ##### `semanticText` - **In:** `query` `string` ##### `searchLocal` - **In:** `query` `string` ##### `publisher` - **In:** `query` `string` ##### `channel` - **In:** `query` `string` ##### `platform` - **In:** `query` `string` ##### `collectionSource` - **In:** `query` `string` ##### `domains` - **In:** `query` `string` ##### `advertiserDomain` - **In:** `query` `string` ##### `landingDomain` - **In:** `query` `string` ##### `landingDomainIn` - **In:** `query` `string` ##### `creativeText` - **In:** `query` `string` ##### `minConfidence` - **In:** `query` `number` ##### `reviewStatus` - **In:** `query` `string`, possible values: `"PENDING", "NEEDS_ENRICHMENT", "IN_REVIEW", "APPROVED", "REJECTED", "AUTO_APPROVED"` ##### `captureMode` - **In:** `query` `string`, possible values: `"NO_CLICK_EXTRACTED_DESTINATION", "APPROVED_CLICK_CAPTURE", "MANUAL_REVIEW_ONLY", "CLICK_TRACE_RESOLVE", "MGID_WIDGET_UNCLOAK"` ##### `search` - **In:** `query` `string` ##### `scope` - **In:** `query` `string`, possible values: `"everywhere", "adtext", "landing", "url"` ##### `status` - **In:** `query` `string`, possible values: `"active", "inactive"` ##### `sort` - **In:** `query` `string` ##### `mediaType` - **In:** `query` `string` ##### `affiliateNetwork` - **In:** `query` `string` ##### `language` - **In:** `query` `string` ##### `trackerTool` - **In:** `query` `string` ##### `landingPlatform` - **In:** `query` `string` ##### `landingBuilder` - **In:** `query` `string` ##### `arbNetwork` - **In:** `query` CSV of search-arbitrage feed providers. Allowed: tonic, system1, codefuel, clicksco, inuvo, visymo, compado, medianet, yahoo\_search, rsoc\_unknown (arb confirmed, provider unattributed). Unknown values are dropped. `string` ##### `adSize` - **In:** `query` `string` ##### `cta` - **In:** `query` `string` ##### `osFamily` - **In:** `query` `string` ##### `browserFamily` - **In:** `query` `string` ##### `deviceClass` - **In:** `query` `string` ##### `minDaysRunning` - **In:** `query` `integer` ##### `maxDaysRunning` - **In:** `query` `integer` ##### `lastSeenFrom` - **In:** `query` `string` ##### `lastSeenTo` - **In:** `query` `string` ##### `minPlacements` - **In:** `query` `integer` ##### `inLink` - **In:** `query` `string` ##### `tld` - **In:** `query` `string` ##### `searchScope` - **In:** `query` `string`, possible values: `"link", "landing"` ##### `redirectFragment` - **In:** `query` `string` ##### `chainHash` - **In:** `query` `string` ##### `groupBy` - **In:** `query` `string`, possible values: `"creative", "advertiser", "domain"` ##### `newEntrant` - **In:** `query` `boolean` ##### `searchArb` - **In:** `query` Search arbitrage only: true returns ONLY ads whose landing page is a monetized search/keyword lander (any feed provider). false is IGNORED — it is not an exclusion filter. `boolean` ##### `olderHistory` - **In:** `query` `boolean` ##### `rules` - **In:** `query` **Any of:** - **`op` (required)** `string`, possible values: `"AND", "OR", "NOT"` - **`rules` (required)** `array` **Items:** * **`field` (required)** `string` * **`value` (required)** `object` #### Responses ##### Status: 200 Default Response ### GET /api/v1/ads/{id} - **Method:** `GET` - **Path:** `/api/v1/ads/{id}` - **Tags:** public-data #### Parameters ##### `id` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/brands - **Method:** `GET` - **Path:** `/api/v1/brands` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `sortBy` - **In:** `query` `string` ##### `sortDir` - **In:** `query` `string`, possible values: `"asc", "desc"`, default: `"desc"` ##### `dateFrom` - **In:** `query` `string` ##### `dateTo` - **In:** `query` `string` ##### `geoCountry` - **In:** `query` `string` ##### `deviceType` - **In:** `query` `string` ##### `vertical` - **In:** `query` `string` ##### `adFormat` - **In:** `query` `string` ##### `adNetwork` - **In:** `query` `string` ##### `industryCategory` - **In:** `query` `string` ##### `iabCategoryId` - **In:** `query` `string` ##### `iabTier1` - **In:** `query` `string` ##### `semantic` - **In:** `query` `boolean` ##### `concept` - **In:** `query` `string` ##### `semanticText` - **In:** `query` `string` ##### `searchLocal` - **In:** `query` `string` ##### `publisher` - **In:** `query` `string` ##### `channel` - **In:** `query` `string` ##### `platform` - **In:** `query` `string` ##### `collectionSource` - **In:** `query` `string` ##### `domains` - **In:** `query` `string` ##### `advertiserDomain` - **In:** `query` `string` ##### `landingDomain` - **In:** `query` `string` ##### `landingDomainIn` - **In:** `query` `string` ##### `creativeText` - **In:** `query` `string` ##### `minConfidence` - **In:** `query` `number` ##### `reviewStatus` - **In:** `query` `string`, possible values: `"PENDING", "NEEDS_ENRICHMENT", "IN_REVIEW", "APPROVED", "REJECTED", "AUTO_APPROVED"` ##### `captureMode` - **In:** `query` `string`, possible values: `"NO_CLICK_EXTRACTED_DESTINATION", "APPROVED_CLICK_CAPTURE", "MANUAL_REVIEW_ONLY", "CLICK_TRACE_RESOLVE", "MGID_WIDGET_UNCLOAK"` ##### `search` - **In:** `query` `string` ##### `scope` - **In:** `query` `string`, possible values: `"everywhere", "adtext", "landing", "url"` ##### `status` - **In:** `query` `string`, possible values: `"active", "inactive"` ##### `sort` - **In:** `query` `string` ##### `mediaType` - **In:** `query` `string` ##### `affiliateNetwork` - **In:** `query` `string` ##### `language` - **In:** `query` `string` ##### `trackerTool` - **In:** `query` `string` ##### `landingPlatform` - **In:** `query` `string` ##### `landingBuilder` - **In:** `query` `string` ##### `arbNetwork` - **In:** `query` CSV of search-arbitrage feed providers. Allowed: tonic, system1, codefuel, clicksco, inuvo, visymo, compado, medianet, yahoo\_search, rsoc\_unknown (arb confirmed, provider unattributed). Unknown values are dropped. `string` ##### `adSize` - **In:** `query` `string` ##### `cta` - **In:** `query` `string` ##### `osFamily` - **In:** `query` `string` ##### `browserFamily` - **In:** `query` `string` ##### `deviceClass` - **In:** `query` `string` ##### `minDaysRunning` - **In:** `query` `integer` ##### `maxDaysRunning` - **In:** `query` `integer` ##### `lastSeenFrom` - **In:** `query` `string` ##### `lastSeenTo` - **In:** `query` `string` ##### `minPlacements` - **In:** `query` `integer` ##### `inLink` - **In:** `query` `string` ##### `tld` - **In:** `query` `string` ##### `searchScope` - **In:** `query` `string`, possible values: `"link", "landing"` ##### `redirectFragment` - **In:** `query` `string` ##### `chainHash` - **In:** `query` `string` ##### `groupBy` - **In:** `query` `string`, possible values: `"creative", "advertiser", "domain"` ##### `newEntrant` - **In:** `query` `boolean` ##### `searchArb` - **In:** `query` Search arbitrage only: true returns ONLY ads whose landing page is a monetized search/keyword lander (any feed provider). false is IGNORED — it is not an exclusion filter. `boolean` ##### `olderHistory` - **In:** `query` `boolean` ##### `rules` - **In:** `query` **Any of:** - **`op` (required)** `string`, possible values: `"AND", "OR", "NOT"` - **`rules` (required)** `array` **Items:** * **`field` (required)** `string` * **`value` (required)** `object` #### Responses ##### Status: 200 Default Response ### GET /api/v1/brands/{domain} - **Method:** `GET` - **Path:** `/api/v1/brands/{domain}` - **Tags:** public-data #### Parameters ##### `domain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/ads/keyset - **Method:** `GET` - **Path:** `/api/v1/ads/keyset` - **Tags:** public-data #### Parameters ##### `limit` - **In:** `query` `integer`, default: `50` ##### `after` - **In:** `query` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/ads/changes - **Method:** `GET` - **Path:** `/api/v1/ads/changes` - **Tags:** public-data #### Parameters ##### `limit` - **In:** `query` `integer`, default: `50` ##### `after` - **In:** `query` `string` ##### `since` - **In:** `query` `string`, format: `date-time` #### Responses ##### Status: 200 Default Response ### POST /api/v1/brands/batch - **Method:** `POST` - **Path:** `/api/v1/brands/batch` - **Tags:** public-data #### Request Body ##### Content-Type: application/json - **`domains` (required)** `array` **Items:** `string` **Example:** ```json { "domains": [ "" ] } ``` #### Responses ##### Status: 200 Default Response ### GET /api/v1/advertisers/ - **Method:** `GET` - **Path:** `/api/v1/advertisers/` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `sort` - **In:** `query` `string`, possible values: `"creatives", "placements", "running", "recent"`, default: `"placements"` ##### `vertical` - **In:** `query` `string` ##### `geoCountry` - **In:** `query` `string` ##### `adNetwork` - **In:** `query` `string` ##### `dateFrom` - **In:** `query` `string` ##### `dateTo` - **In:** `query` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/advertisers/new - **Method:** `GET` - **Path:** `/api/v1/advertisers/new` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `windowDays` - **In:** `query` `integer`, default: `90` #### Responses ##### Status: 200 Default Response ### GET /api/v1/advertisers/search - **Method:** `GET` - **Path:** `/api/v1/advertisers/search` - **Tags:** public-data #### Parameters ##### `q` required - **In:** `query` `string` ##### `limit` - **In:** `query` `integer`, default: `10` #### Responses ##### Status: 200 Default Response ### GET /api/v1/advertisers/{domain}/similar - **Method:** `GET` - **Path:** `/api/v1/advertisers/{domain}/similar` - **Tags:** public-data #### Parameters ##### `limit` - **In:** `query` `integer`, default: `10` ##### `domain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/trending - **Method:** `GET` - **Path:** `/api/v1/trending` - **Tags:** public-data #### Parameters ##### `dimension` - **In:** `query` `string`, possible values: `"advertiser", "vertical", "geo", "network"`, default: `"advertiser"` ##### `direction` - **In:** `query` `string`, possible values: `"up", "down", "new"`, default: `"up"` ##### `timeframe` - **In:** `query` `string`, possible values: `"7d", "30d"` ##### `limit` - **In:** `query` `integer`, default: `20` #### Responses ##### Status: 200 Default Response ### GET /api/v1/analytics/share-of-voice - **Method:** `GET` - **Path:** `/api/v1/analytics/share-of-voice` - **Tags:** public-data #### Parameters ##### `dimension` - **In:** `query` `string`, possible values: `"advertiser", "vertical", "geo", "network"`, default: `"advertiser"` ##### `scopeValue` - **In:** `query` `string` ##### `geoCountry` - **In:** `query` `string` ##### `vertical` - **In:** `query` `string` ##### `adNetwork` - **In:** `query` `string` ##### `industryCategory` - **In:** `query` `string` ##### `dateFrom` - **In:** `query` `string` ##### `dateTo` - **In:** `query` `string` ##### `limit` - **In:** `query` `integer`, default: `20` #### Responses ##### Status: 200 Default Response ### GET /api/v1/analytics/perf-benchmark - **Method:** `GET` - **Path:** `/api/v1/analytics/perf-benchmark` - **Tags:** public-data #### Parameters ##### `format` required - **In:** `query` `string`, possible values: `"native", "display"` ##### `geo` - **In:** `query` `string` ##### `iabTier1` - **In:** `query` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/insights/copy - **Method:** `GET` - **Path:** `/api/v1/insights/copy` - **Tags:** public-data #### Parameters ##### `scope` - **In:** `query` `string`, possible values: `"advertiser", "global"`, default: `"global"` ##### `value` - **In:** `query` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/insights/keywords - **Method:** `GET` - **Path:** `/api/v1/insights/keywords` - **Tags:** public-data #### Parameters ##### `timeframe` - **In:** `query` `string`, possible values: `"D7", "D30", "ALL"`, default: `"D7"` #### Responses ##### Status: 200 Default Response ### GET /api/v1/insights/trending-domains - **Method:** `GET` - **Path:** `/api/v1/insights/trending-domains` - **Tags:** public-data #### Parameters ##### `type` - **In:** `query` `string`, possible values: `"landing", "offer", "tracker"`, default: `"landing"` ##### `timeframe` - **In:** `query` `string`, possible values: `"D7", "D30", "D90"`, default: `"D7"` ##### `limit` - **In:** `query` `integer`, default: `25` #### Responses ##### Status: 200 Default Response ### GET /api/v1/publishers/ - **Method:** `GET` - **Path:** `/api/v1/publishers/` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `sort` - **In:** `query` `string`, possible values: `"creatives", "advertisers", "placements"`, default: `"creatives"` #### Responses ##### Status: 200 Default Response ### GET /api/v1/publishers/network-matrix - **Method:** `GET` - **Path:** `/api/v1/publishers/network-matrix` - **Tags:** public-data #### Parameters ##### `limit` - **In:** `query` `integer`, default: `500` #### Responses ##### Status: 200 Default Response ### GET /api/v1/publishers/{host}/monetization - **Method:** `GET` - **Path:** `/api/v1/publishers/{host}/monetization` - **Tags:** public-data #### Parameters ##### `host` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/publishers/{host}/similar - **Method:** `GET` - **Path:** `/api/v1/publishers/{host}/similar` - **Tags:** public-data #### Parameters ##### `limit` - **In:** `query` `integer`, default: `10` ##### `host` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/publishers/{host} - **Method:** `GET` - **Path:** `/api/v1/publishers/{host}` - **Tags:** public-data #### Parameters ##### `adsLimit` - **In:** `query` `integer`, default: `25` ##### `host` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/network-profile/{network} - **Method:** `GET` - **Path:** `/api/v1/network-profile/{network}` - **Tags:** public-data #### Parameters ##### `network` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/supply-chain/publisher/{domain} - **Method:** `GET` - **Path:** `/api/v1/supply-chain/publisher/{domain}` - **Tags:** public-data #### Parameters ##### `domain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/supply-chain/exchange/{domain} - **Method:** `GET` - **Path:** `/api/v1/supply-chain/exchange/{domain}` - **Tags:** public-data #### Parameters ##### `domain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/new-entrants - **Method:** `GET` - **Path:** `/api/v1/new-entrants` - **Tags:** public-data #### Parameters ##### `scope` - **In:** `query` `string`, possible values: `"advertiser", "category", "all"`, default: `"all"` ##### `signal` - **In:** `query` `string`, possible values: `"new", "spike", "both"`, default: `"both"` ##### `timeframe` - **In:** `query` `string`, possible values: `"7d", "30d"` ##### `limit` - **In:** `query` `integer`, default: `25` #### Responses ##### Status: 200 Default Response ### GET /api/v1/copy-patterns - **Method:** `GET` - **Path:** `/api/v1/copy-patterns` - **Tags:** public-data #### Parameters ##### `scope` - **In:** `query` `string`, possible values: `"global", "vertical", "advertiser"`, default: `"global"` ##### `scopeValue` - **In:** `query` `string` ##### `geoCountry` - **In:** `query` `string` ##### `limit` - **In:** `query` `integer`, default: `25` #### Responses ##### Status: 200 Default Response ### GET /api/v1/competitive-sets/ - **Method:** `GET` - **Path:** `/api/v1/competitive-sets/` - **Tags:** public-data #### Responses ##### Status: 200 Default Response ### GET /api/v1/competitive-sets/{ref}/members - **Method:** `GET` - **Path:** `/api/v1/competitive-sets/{ref}/members` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `sortBy` - **In:** `query` `string` ##### `sortDir` - **In:** `query` `string`, possible values: `"asc", "desc"`, default: `"desc"` ##### `ref` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/network/entities - **Method:** `GET` - **Path:** `/api/v1/network/entities` - **Tags:** public-data #### Parameters ##### `search` - **In:** `query` `string` ##### `limit` - **In:** `query` `integer`, default: `25` ##### `page` - **In:** `query` `integer`, default: `1` #### Responses ##### Status: 200 Default Response ### GET /api/v1/relationships/hierarchy/{domain} - **Method:** `GET` - **Path:** `/api/v1/relationships/hierarchy/{domain}` - **Tags:** public-data #### Parameters ##### `domain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/landing-pages/ - **Method:** `GET` - **Path:** `/api/v1/landing-pages/` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `sortBy` - **In:** `query` `string` ##### `sortDir` - **In:** `query` `string`, possible values: `"asc", "desc"`, default: `"desc"` ##### `scope` - **In:** `query` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/landing-pages/{finalDomain} - **Method:** `GET` - **Path:** `/api/v1/landing-pages/{finalDomain}` - **Tags:** public-data #### Parameters ##### `finalDomain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/landing-pages/{finalDomain}/ads - **Method:** `GET` - **Path:** `/api/v1/landing-pages/{finalDomain}/ads` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `sortBy` - **In:** `query` `string` ##### `sortDir` - **In:** `query` `string`, possible values: `"asc", "desc"`, default: `"desc"` ##### `finalDomain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/account/saved-searches - **Method:** `GET` - **Path:** `/api/v1/account/saved-searches` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `100` #### Responses ##### Status: 200 Default Response ### POST /api/v1/account/saved-searches - **Method:** `POST` - **Path:** `/api/v1/account/saved-searches` - **Tags:** public-data #### Request Body ##### Content-Type: application/json - **`name` (required)** `string` - **`query` (required)** `object` - **`adFormat`** `string` - **`adNetwork`** `string` - **`adSize`** `string` - **`advertiserDomain`** `string` - **`affiliateNetwork`** `string` - **`arbNetwork`** `string` — CSV of search-arbitrage feed providers. Allowed: tonic, system1, codefuel, clicksco, inuvo, visymo, compado, medianet, yahoo\_search, rsoc\_unknown (arb confirmed, provider unattributed). Unknown values are dropped. - **`browserFamily`** `string` - **`captureMode`** `string`, possible values: `"NO_CLICK_EXTRACTED_DESTINATION", "APPROVED_CLICK_CAPTURE", "MANUAL_REVIEW_ONLY", "CLICK_TRACE_RESOLVE", "MGID_WIDGET_UNCLOAK"` - **`chainHash`** `string` - **`channel`** `string` - **`collectionSource`** `string` - **`concept`** `string` - **`creativeText`** `string` - **`cta`** `string` - **`dateFrom`** `string` - **`dateTo`** `string` - **`deviceClass`** `string` - **`deviceType`** `string` - **`domains`** `string` - **`geoCountry`** `string` - **`groupBy`** `string`, possible values: `"creative", "advertiser", "domain"` - **`iabCategoryId`** `string` - **`iabTier1`** `string` - **`industryCategory`** `string` - **`inLink`** `string` - **`landingBuilder`** `string` - **`landingDomain`** `string` - **`landingDomainIn`** `string` - **`landingPlatform`** `string` - **`language`** `string` - **`lastSeenFrom`** `string` - **`lastSeenTo`** `string` - **`maxDaysRunning`** `integer` - **`mediaType`** `string` - **`minConfidence`** `number` - **`minDaysRunning`** `integer` - **`minPlacements`** `integer` - **`newEntrant`** `boolean` - **`olderHistory`** `boolean` - **`osFamily`** `string` - **`platform`** `string` - **`publisher`** `string` - **`redirectFragment`** `string` - **`reviewStatus`** `string`, possible values: `"PENDING", "NEEDS_ENRICHMENT", "IN_REVIEW", "APPROVED", "REJECTED", "AUTO_APPROVED"` - **`rules`** `object` - **`scope`** `string`, possible values: `"everywhere", "adtext", "landing", "url"` - **`search`** `string` - **`searchArb`** `boolean` — Search arbitrage only: true returns ONLY ads whose landing page is a monetized search/keyword lander (any feed provider). false is IGNORED — it is not an exclusion filter. - **`searchLocal`** `string` - **`searchScope`** `string`, possible values: `"link", "landing"` - **`semantic`** `boolean` - **`semanticText`** `string` - **`sort`** `string` - **`status`** `string`, possible values: `"active", "inactive"` - **`tld`** `string` - **`trackerTool`** `string` - **`vertical`** `string` **Example:** ```json { "name": "", "query": { "dateFrom": "", "dateTo": "", "geoCountry": "", "deviceType": "", "vertical": "", "adFormat": "", "adNetwork": "", "industryCategory": "", "iabCategoryId": "", "iabTier1": "", "semantic": true, "concept": "", "semanticText": "", "searchLocal": "", "publisher": "", "channel": "", "platform": "", "collectionSource": "", "domains": "", "advertiserDomain": "", "landingDomain": "", "landingDomainIn": "", "creativeText": "", "minConfidence": 0, "reviewStatus": "PENDING", "captureMode": "NO_CLICK_EXTRACTED_DESTINATION", "search": "", "scope": "everywhere", "status": "active", "sort": "", "mediaType": "", "affiliateNetwork": "", "language": "", "trackerTool": "", "landingPlatform": "", "landingBuilder": "", "arbNetwork": "", "adSize": "", "cta": "", "osFamily": "", "browserFamily": "", "deviceClass": "", "minDaysRunning": 0, "maxDaysRunning": 0, "lastSeenFrom": "", "lastSeenTo": "", "minPlacements": 1, "inLink": "", "tld": "", "searchScope": "link", "redirectFragment": "", "chainHash": "", "groupBy": "creative", "newEntrant": true, "searchArb": true, "olderHistory": true, "rules": { "op": "AND", "rules": [] } } } ``` #### Responses ##### Status: 200 Default Response ### DELETE /api/v1/account/saved-searches/{id} - **Method:** `DELETE` - **Path:** `/api/v1/account/saved-searches/{id}` - **Tags:** public-data #### Parameters ##### `id` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/account/watchlist - **Method:** `GET` - **Path:** `/api/v1/account/watchlist` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `100` #### Responses ##### Status: 200 Default Response ### POST /api/v1/account/watchlist - **Method:** `POST` - **Path:** `/api/v1/account/watchlist` - **Tags:** public-data #### Request Body ##### Content-Type: application/json - **`advertiserDomain` (required)** `string` - **`note`** `string` **Example:** ```json { "advertiserDomain": "", "note": "" } ``` #### Responses ##### Status: 200 Default Response ### DELETE /api/v1/account/watchlist/{domain} - **Method:** `DELETE` - **Path:** `/api/v1/account/watchlist/{domain}` - **Tags:** public-data #### Parameters ##### `domain` required - **In:** `path` `string` #### Responses ##### Status: 200 Default Response ### GET /api/v1/account/notifications - **Method:** `GET` - **Path:** `/api/v1/account/notifications` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `25` ##### `unreadOnly` - **In:** `query` `boolean` #### Responses ##### Status: 200 Default Response ### GET /api/v1/account/boards - **Method:** `GET` - **Path:** `/api/v1/account/boards` - **Tags:** public-data #### Parameters ##### `page` - **In:** `query` `integer`, default: `1` ##### `pageSize` - **In:** `query` `integer`, default: `100` #### Responses ##### Status: 200 Default Response