Logo

What are you looking for?

Stop losing ad revenue...

adagents.json — What It Is, Why It Matters, and How to Set It Up

General Questions

adagents.json — What It Is, Why It Matters, and How to Set It Up

Last updated on 14 Aug, 2026

adagents.json is a public file on your domain that tells AI advertising agents what you publish and which sales agents are authorized to sell it. It does not replace ads.txt. Keep both.

Sulvo can generate the file for you on the Recover tab: surge.sulvo.com/recover.

Do I need this if I monetize through ad serving?

It depends on how you sell inventory.

You still need ads.txt. Google Ad Manager, AdX, AdSense, Prebid, and traditional SSPs/DSPs use ads.txt to check who is allowed to sell your domain. Missing or wrong ads.txt still costs impressions. See Ads.txt — What is it? Why? and How do I set it up?.

You should add adagents.json now if you want AI buyer agents and AdCP-compatible sales agents to find your inventory, authorize a seller agent (including Sulvo) to represent you, or declare specific placements, countries, or time windows those agents may sell.

You do not need it for today's Google / header-bidding auction to keep running. A missing adagents.json does not stop Ad Manager or Prebid. Buyer agents that follow the Ad Context Protocol (AdCP) will simply skip undeclared inventory.

Adding the file does not change how your current tags, auctions, or Sulvo earnings work. It is a declaration file, like ads.txt or robots.txt.

What is adagents.json?

adagents.json is the publisher-hosted declaration in the Ad Context Protocol (AdCP). Host it at:

https://yourdomain.com/.well-known/adagents.json

Think of it as the machine-readable list of:

  • Properties — your website, apps, CTV, or other inventory

  • Authorized agents — which AI sales agents may sell that inventory, and under what terms

  • Optional catalog — public placements, formats, and first-party signals a buyer agent can read

AdCP launched in October 2025 (founding members include PubMatic, Scope3, Optable, Yahoo, Swivel, and Triton Digital). The current file format is AdCP 3.1.2.

Buyer agents do not browse your site the way a person does. They fetch this file, then decide whether they can talk to an authorized sales agent about your inventory.

ads.txt vs adagents.json

Keep both files. They answer different questions.

ads.txt

adagents.json

Who reads it

SSPs, DSPs, Ad Manager, crawlers

AI buyer agents and AdCP sales agents

Question it answers

May this seller resell my domain?

Which properties and placements may this agent sell, and how?

Detail

Domain-level DIRECT or RESELLER lines

Property, placement, country, date window, and delegation type

Location

https://yourdomain.com/ads.txt

https://yourdomain.com/.well-known/adagents.json

Required for Sulvo auctions today

Yes

No — recommended so agents can find you

Replaces the other file?

No

No

ads.txt is a flat seller list. adagents.json can say things ads.txt cannot, for example: this agent may sell homepage video in the US and Canada only, this other agent may sell programmatic banners, and a third path is a network-managed slot.

The AdCP equivalent of sellers.json is the operator's brand.json, not another file on your site.

Generate the file in Sulvo

  1. Log in to surge.sulvo.com/recover.

  2. Open the Recover tab for the site.

  3. Generate adagents.json. Sulvo fills in your property and authorizes the Sulvo sales path.

  4. Download the file. Do not edit private ad-unit IDs, GAM paths, or delivery mappings into it. The public file should only describe inventory you want buyer agents to see.

If you manage many domains, you can host one authoritative file and point each domain at it with authoritative_location. The Recover generator produces a ready-to-host file for the selected site.

Host the file

Publishers must serve the file here:

JavaScripthttps://yourdomain.com/.well-known/adagents.json

Requirements from the AdCP spec:

  • HTTPS

  • HTTP 200 (not a redirect that ends in 404)

  • Valid UTF-8 JSON

  • Content-Type: application/json

If yourdomain.com redirects to www.yourdomain.com, the file must also exist at the final host. A redirect chain that ends in 404 means the file is missing.

Do not block unknown user-agents. Agent crawlers will not always send a browser-like user-agent.

WordPress

  1. Create a .well-known folder at the site root (same level as wp-content).

  2. Upload adagents.json into that folder.

  3. Confirm the URL returns JSON, not a WordPress 404 page.

  4. If a security plugin blocks /.well-known/, allowlist that path.

Some hosts need an extra rule so .json in .well-known is not rewritten to WordPress. If the URL shows your theme instead of JSON, ask hosting to serve that path as a static file.

After you publish

Crawlers cache the file. After an update, re-check the live URL. If you use a CDN, purge /.well-known/adagents.json.

What a valid file looks like

A minimum useful file declares the site and who may sell it. Every authorized_agents entry needs url, authorized_for, authorization_type, and the matching selector (here, property_ids).

JSON{
  "$schema": "https://adcontextprotocol.org/schemas/3.1.2/adagents.json",
  "contact": {
    "name": "Publisher Ad Operations",
    "email": "adops@example.com",
    "domain": "example.com"
  },
  "properties": [
    {
      "property_id": "main_site",
      "property_type": "website",
      "name": "Example Site",
      "identifiers": [
        { "type": "domain", "value": "example.com" }
      ]
    }
  ],
  "authorized_agents": [
    {
      "url": "https://agent.example.com",
      "authorized_for": "Official sales agent for the main site",
      "authorization_type": "property_ids",
      "property_ids": ["main_site"],
      "delegation_type": "direct"
    }
  ],
  "last_updated": "2026-08-14T12:00:00Z"
}

Use the file Sulvo generates on Recover rather than hand-writing this unless you know the agent URL you want to authorize.

delegation_type is optional and should match how you actually sell:

  • direct — buyers treat this as a direct path to you

  • delegated — the agent sells on your behalf

  • ad_network — inventory is sold as a network/package path

You can later add placements, country limits (countries), and date windows (effective_from / effective_until). Do not publish seller-private placement IDs or raw ad-server paths.

How to verify

  1. Open https://yourdomain.com/.well-known/adagents.json in a browser. You should see JSON, not an HTML error page.

  2. Confirm the address bar stays on HTTPS and the response is 200.

  3. Confirm your domain appears under properties and at least one agent is listed under authorized_agents.

  4. From a terminal:

JavaScriptcurl -sI "https://yourdomain.com/.well-known/adagents.json"

Check for HTTP/2 200 (or HTTP/1.1 200) and content-type: application/json.

  1. Optional: validate with the official builder at agenticadvertising.org/adagents/builder.

How this helps with AI buyer agents

Hosting the file is the discovery step. It does not by itself create a new auction or raise CPM.

Once the file is live:

  1. Buyer agents can find you. An AdCP buyer looks up /.well-known/adagents.json, then talks to an authorized sales agent instead of guessing from ads.txt alone.

  2. You control who may sell. Only agents you list are authorized. You can limit an agent to certain placements, countries, or dates.

  3. You can describe inventory as products. Agents buy packaged inventory (a site, a placement group, a series) more readily than an unlabeled 300x250. The public placements list is how you name those products.

  4. You keep ads.txt for the open auction. Agent deals sit beside GAM / Prebid. They do not replace them.

What the file does not do:

  • It does not make Google or a traditional DSP start paying more.

  • It does not bypass ads.txt, MCM, or site approval.

  • It does not require you to turn off existing demand.

If you only run standard Sulvo / Google / header-bidding demand today, add the file so you are discoverable, then leave the rest of your stack as it is.

Common problems

Symptom

Likely cause

Browser shows your WordPress theme

.well-known/adagents.json is being rewritten to the CMS. Serve it as a static file.

301/302 then 404

File is missing on the canonical host (www vs apex). Put it on the final URL.

403

WAF, hotlink protection, or auth on .well-known. The file must be public.

Content-Type: text/html

Server is wrapping JSON in an HTML error or directory listing.

Agents ignore the file

Missing authorization_type or empty selector. Every agent entry must say what it is authorized for.

You authorized the wrong party

Only list agents you intend to sell through. This file is public.

Did you find this article helpful?
Previous

How to Set the Right CPM Rate for Passbacks

Next