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 | Property, placement, country, date window, and delegation type |
Location |
|
|
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
Log in to surge.sulvo.com/recover.
Open the Recover tab for the site.
Generate
adagents.json. Sulvo fills in your property and authorizes the Sulvo sales path.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.jsonRequirements 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
Create a
.well-knownfolder at the site root (same level aswp-content).Upload
adagents.jsoninto that folder.Confirm the URL returns JSON, not a WordPress 404 page.
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 youdelegated— the agent sells on your behalfad_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
Open
https://yourdomain.com/.well-known/adagents.jsonin a browser. You should see JSON, not an HTML error page.Confirm the address bar stays on HTTPS and the response is 200.
Confirm your domain appears under
propertiesand at least one agent is listed underauthorized_agents.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.
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:
Buyer agents can find you. An AdCP buyer looks up
/.well-known/adagents.json, then talks to an authorized sales agent instead of guessing fromads.txtalone.You control who may sell. Only agents you list are authorized. You can limit an agent to certain placements, countries, or dates.
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
placementslist is how you name those products.You keep
ads.txtfor 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 |
|
| File is missing on the canonical host ( |
| WAF, hotlink protection, or auth on |
| Server is wrapping JSON in an HTML error or directory listing. |
Agents ignore the file | Missing |
You authorized the wrong party | Only list agents you intend to sell through. This file is public. |
