Ads.txt Checker avatar

Ads.txt Checker

Pricing

Pay per event

Go to Apify Store
Ads.txt Checker

Ads.txt Checker

This actor checks websites for ads.txt and app-ads.txt files. It parses authorized digital sellers, identifies DIRECT and RESELLER relationships, extracts unique ad exchange domains, and validates entry formatting. Essential for programmatic advertising compliance.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Check websites for ads.txt and app-ads.txt compliance. Parse ad exchange entries, relationships, and domains.

What does Ads.txt Checker do?

This actor checks websites for ads.txt and app-ads.txt files. It parses authorized digital sellers, identifies DIRECT and RESELLER relationships, extracts unique ad exchange domains, and validates entry formatting. Essential for programmatic advertising compliance and supply chain transparency across the digital ad ecosystem.

The actor fetches both /ads.txt and /app-ads.txt from each domain, parses every entry according to the IAB Tech Lab specification, and returns structured data ready for analysis or integration into your ad-ops workflows.

Use cases

  • Ad fraud prevention -- verify authorized sellers for your domains and detect unauthorized resellers siphoning revenue
  • Programmatic compliance -- ensure ads.txt meets IAB Tech Lab standards before ad exchange onboarding
  • Publisher monitoring -- track ad partners across publisher sites to understand the supply chain
  • Competitive intelligence -- discover which ad networks and SSPs competitors use for monetization
  • Supply chain transparency -- audit ad exchange relationships for ads.txt/sellers.json alignment

Why use Ads.txt Checker?

  • Batch processing -- check hundreds of domains in a single run instead of visiting each site manually
  • Structured output -- get clean JSON with entry counts, relationship types, and unique domains ready for analysis
  • API access -- integrate ads.txt monitoring into your ad-ops platform or compliance dashboard
  • Fast execution -- lightweight HTTP requests mean results in seconds, not minutes
  • Pay-per-event pricing -- only pay for what you use with no monthly subscription
  • Dual file support -- checks both ads.txt and app-ads.txt in one pass

Input parameters

ParameterTypeRequiredDefaultDescription
urlsarrayYes--List of website URLs or domains to check for ads.txt. URLs are automatically cleaned to extract the domain.

Example input

{
"urls": [
"https://www.nytimes.com",
"https://www.bbc.com",
"https://www.cnn.com"
]
}

Output fields

Each domain produces one record with the following fields:

FieldDescription
urlThe original URL provided in the input
domainThe extracted domain name
hasAdsTxtWhether an ads.txt file was found
hasAppAdsTxtWhether an app-ads.txt file was found
adsTxtUrlThe full URL of the ads.txt file
entryCountTotal number of parsed entries
directCountNumber of DIRECT relationship entries
resellerCountNumber of RESELLER relationship entries
uniqueDomainsArray of unique ad exchange domains found
variablesParsed variable declarations (e.g., contact, subdomain)
issuesArray of formatting or compliance issues
errorError message if the check failed, null otherwise
checkedAtISO 8601 timestamp of the check

Output example

{
"url": "https://www.bbc.com",
"domain": "www.bbc.com",
"hasAdsTxt": true,
"hasAppAdsTxt": false,
"adsTxtUrl": "https://www.bbc.com/ads.txt",
"entryCount": 45,
"directCount": 12,
"resellerCount": 33,
"uniqueDomains": ["google.com", "appnexus.com", "rubiconproject.com"],
"variables": { "contact": "ads@bbc.com" },
"issues": [],
"error": null,
"checkedAt": "2026-03-01T12:00:00.000Z"
}

How much does it cost to check ads.txt?

Ads.txt Checker uses Apify's pay-per-event pricing. You only pay for what you use.

EventPriceDescription
Start$0.035One-time per run
Domain checked$0.001Per domain checked

Cost examples:

  • 10 domains: $0.035 + 10 x $0.001 = $0.045
  • 100 domains: $0.035 + 100 x $0.001 = $0.135
  • 1,000 domains: $0.035 + 1,000 x $0.001 = $1.035

How to check ads.txt for a website

  1. Go to the Ads.txt Checker page in Apify Store
  2. Click Try for free to open the actor in Apify Console
  3. Enter website URLs or domains in the URLs field
  4. Click Start to run the check
  5. Review results in the Dataset tab — see authorized sellers, relationship types, and compliance issues
  6. Download results as JSON, CSV, or Excel for your ad-ops reporting

Using the Apify API

You can start Ads.txt Checker programmatically using the Apify API. Replace YOUR_TOKEN with your Apify API token.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('automation-lab/ads-txt-checker').call({
urls: ['https://www.nytimes.com', 'https://www.bbc.com'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('automation-lab/ads-txt-checker').call(run_input={
'urls': ['https://www.nytimes.com', 'https://www.bbc.com'],
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl "https://api.apify.com/v2/acts/automation-lab~ads-txt-checker/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"urls": ["https://www.nytimes.com", "https://www.bbc.com"]}'

Use with AI agents via MCP

Ads.txt Checker is available as a tool for AI assistants via the Model Context Protocol (MCP).

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Example prompts

  • "Check the ads.txt file for nytimes.com"
  • "Verify ads.txt compliance for these publisher domains"

Learn more in the Apify MCP documentation.

Integrations

Connect Ads.txt Checker with other tools using Apify integrations. You can pipe results directly into Google Sheets, send Slack alerts when unauthorized sellers appear, trigger workflows in Make or Zapier, push data to n8n automations, or set up webhooks for real-time notifications when ads.txt files change.

Tips and best practices

  • Schedule weekly runs to monitor ads.txt changes across your publisher portfolio and catch unauthorized modifications early.
  • Compare directCount vs resellerCount to understand the balance of direct and reseller relationships for each domain.
  • Check the issues array for formatting errors or entries that do not comply with the IAB specification.
  • Combine with competitive analysis by running the checker on top publisher domains in your vertical to benchmark your own ads.txt coverage.
  • Filter by uniqueDomains to quickly see which ad exchanges a publisher works with without parsing raw text files.

Legality

This tool analyzes publicly accessible web content. Automated analysis of public web resources is standard practice in SEO and web development. Always respect robots.txt directives and rate limits when analyzing third-party websites. For personal data processing, ensure compliance with applicable privacy regulations.

FAQ

What is ads.txt and why does it matter? Ads.txt (Authorized Digital Sellers) is an IAB Tech Lab standard that lets publishers declare which companies are authorized to sell their ad inventory. It helps prevent ad fraud by allowing buyers to verify seller legitimacy.

Does this actor check both ads.txt and app-ads.txt? Yes. The actor checks both /ads.txt (for web inventory) and /app-ads.txt (for in-app inventory) in every run and reports results for each file separately.

Can I use domain names instead of full URLs? Yes. You can pass bare domains like nytimes.com or full URLs like https://www.nytimes.com. The actor automatically extracts the domain and fetches the correct file path.

The actor shows hasAdsTxt as false but I know my site has an ads.txt file. Why? The actor fetches /ads.txt from the domain root. If your ads.txt is served at a different path, behind a redirect that does not resolve correctly, or if the server returns a non-200 status code, the file will not be detected. Verify the URL in a browser (e.g., https://yourdomain.com/ads.txt) to confirm it loads correctly.

Some entries show up in the issues array. Does that mean my ads.txt is invalid? Not necessarily. The issues array flags entries that do not strictly follow the IAB Tech Lab specification, such as missing fields or unrecognized relationship types. Review each issue to determine if it requires correction. Minor formatting inconsistencies may not affect ad serving but should be fixed for full compliance.

Other SEO and website audit tools