{
  "openapi": "3.0.1",
  "info": {
    "title": "Ads Presence Unified Lookup: Google/LinkedIn/Meta from $16/1k",
    "description": "Is this company running ads anywhere? One domain or name in, one row out: Google, LinkedIn, Meta, Microsoft and Snapchat ad libraries checked at once. Never charged for a company with no ads on any checked platform.",
    "version": "1.0",
    "x-build-id": "VE0qYYHx3Wu6Bb0tG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/accountable_eel~ads-presence-unified-lookup/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-accountable_eel-ads-presence-unified-lookup",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/accountable_eel~ads-presence-unified-lookup/runs": {
      "post": {
        "operationId": "runs-sync-accountable_eel-ads-presence-unified-lookup",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/accountable_eel~ads-presence-unified-lookup/run-sync": {
      "post": {
        "operationId": "run-sync-accountable_eel-ads-presence-unified-lookup",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "domains": {
            "title": "Company domains or names to check for ad presence",
            "type": "array",
            "description": "One domain or company name per line. Each is checked against Google Ads Transparency Center, the LinkedIn Ad Library, Meta's Ad Library API, Microsoft's Advertising Ad Library, and Snapchat's Ads Library, and comes back as one row. Accepted formats: nike.com, https://www.nike.com/gb/, Nike, Inc.. You're only charged for the ones we actually find — a miss costs nothing.",
            "items": {
              "type": "string"
            }
          },
          "metaAccessToken": {
            "title": "Your Meta Ad Library API access token (optional)",
            "type": "string",
            "description": "Optional. Without it, Meta Ads is skipped gracefully for every row (reported as \"not checked\", never a failure) instead of erroring. Apply for your own token at developers.facebook.com/docs/graph-api/reference/ads_archive — never shipped or shared by this actor."
          },
          "testRun": {
            "title": "Try it first — only process the first 5",
            "type": "boolean",
            "description": "Turn this on to test your input on a small sample before running the full list. Turn it off to process everything.",
            "default": false
          },
          "onlyFound": {
            "title": "Hide rows with no result",
            "type": "boolean",
            "description": "Only keep rows where something was actually found. Misses are always free, whether or not you show them here.",
            "default": false
          },
          "includeKeywords": {
            "title": "Only keep rows containing",
            "type": "array",
            "description": "Optional. Only keep results that mention at least one of these words (e.g. a job title, a city, a product name). Leave empty to keep everything.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Skip rows containing",
            "type": "array",
            "description": "Optional. Drop any result that mentions one of these words. Leave empty to skip nothing.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Stop after this many results",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Stop the run once this many results have been found — useful for a quick, cheap sample. Leave blank for no limit."
          },
          "checkGoogleAds": {
            "title": "Check Google Ads",
            "type": "boolean",
            "description": "Checks the Google Ads Transparency Center for each company. Turn off to skip Google entirely (cheaper, faster) if you only care about the other platforms.",
            "default": true
          },
          "checkLinkedinAds": {
            "title": "Check LinkedIn Ads",
            "type": "boolean",
            "description": "Checks the LinkedIn Ad Library for each company. This is the platform most likely to need a retry under load — it's the only one of the three that requires Apify's UNBLOCKER proxy group to get past LinkedIn's bot defenses.",
            "default": true
          },
          "checkMetaAds": {
            "title": "Check Meta Ads",
            "type": "boolean",
            "description": "Checks Meta's official Ad Library API for each company — only useful if you've supplied your own access token above. Leave this on even without a token; it's a no-op cost-free skip either way.",
            "default": true
          },
          "checkMicrosoftAds": {
            "title": "Check Microsoft Ads",
            "type": "boolean",
            "description": "Checks Microsoft's EU Advertising Ad Library for each company. Name search only (no domain filter) — a company name matches more reliably than a bare domain. Uses adsMarket below.",
            "default": true
          },
          "checkSnapchatAds": {
            "title": "Check Snapchat Ads",
            "type": "boolean",
            "description": "Checks Snapchat's Ads Library for each company. A RATE_LIMITED result is a real availability miss on Snap's own EU repository (retried automatically), not a failed row, and is never charged. Uses adsMarket below.",
            "default": true
          },
          "adsMarket": {
            "title": "EU market for Microsoft & Snapchat Ads",
            "enum": [
              "AT",
              "BE",
              "BG",
              "HR",
              "CY",
              "CZ",
              "DK",
              "EE",
              "FI",
              "FR",
              "DE",
              "GR",
              "HU",
              "IE",
              "IT",
              "LV",
              "LT",
              "LU",
              "MT",
              "NL",
              "PL",
              "PT",
              "RO",
              "SK",
              "SI",
              "ES",
              "SE",
              "IS",
              "LI",
              "NO"
            ],
            "type": "string",
            "description": "Two-letter EU/EEA country used as Microsoft's market and Snapchat's country filter. Google, LinkedIn and Meta are not limited to this market. Default Germany (DE).",
            "default": "DE"
          },
          "columns": {
            "title": "Which columns do you want?",
            "type": "array",
            "description": "Choose which pieces of information to include in each result row. All are included by default.",
            "items": {
              "type": "string",
              "enum": [
                "advertiserName",
                "googleAdsFound",
                "googleAdsCount",
                "googleAdsLast30Days",
                "googleAdsReason",
                "linkedinAdsFound",
                "linkedinAdsCount",
                "linkedinAdsReason",
                "metaAdsFound",
                "metaAdsCount",
                "metaAdsReason",
                "microsoftAdsFound",
                "microsoftAdsCount",
                "microsoftAdsSampleUrl",
                "microsoftAdsReason",
                "snapchatAdsFound",
                "snapchatAdsCount",
                "snapchatAdsImpressionsTotal",
                "snapchatAdsReason",
                "anyAds",
                "platformsActive",
                "sampleAdUrls"
              ],
              "enumTitles": [
                "Advertiser name",
                "Running Google Ads?",
                "Google Ads in library (est.)",
                "Google Ads shown in last 30 days (est.)",
                "Google note",
                "Running LinkedIn Ads?",
                "LinkedIn Ads in library",
                "LinkedIn note",
                "Running Meta Ads?",
                "Meta active ads (est., up to 50)",
                "Meta note",
                "Running Microsoft Ads?",
                "Microsoft Ads in market",
                "Microsoft sample destination URL",
                "Microsoft note",
                "Running Snapchat Ads?",
                "Snapchat ads in sample",
                "Snapchat impressions in sample",
                "Snapchat note",
                "Running ads anywhere?",
                "Platforms active",
                "Sample ad URLs"
              ]
            },
            "default": [
              "advertiserName",
              "googleAdsFound",
              "googleAdsCount",
              "googleAdsLast30Days",
              "googleAdsReason",
              "linkedinAdsFound",
              "linkedinAdsCount",
              "linkedinAdsReason",
              "metaAdsFound",
              "metaAdsCount",
              "metaAdsReason",
              "microsoftAdsFound",
              "microsoftAdsCount",
              "microsoftAdsSampleUrl",
              "microsoftAdsReason",
              "snapchatAdsFound",
              "snapchatAdsCount",
              "snapchatAdsImpressionsTotal",
              "snapchatAdsReason",
              "anyAds",
              "platformsActive",
              "sampleAdUrls"
            ]
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Parallel requests. Keep conservative — this target has no browser fallback, so getting blocked costs more than slow-and-steady.",
            "default": 5
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}