What sellers.json is
sellers.json is the other half of app-ads.txt. A publisher's app-ads.txt says which accounts may sell its
inventory; the network's sellers.json says who owns each of those accounts. Every SSP, exchange or network
that gets paid for inventory publishes one at the root of its domain, for example
https://example-exchange.com/sellers.json.
Each entry has a seller_id (the account ID publishers write in field 2 of their lines), a
seller_type, and, unless it is marked confidential, the seller's name and
domain. PUBLISHER means the account owns the inventory it sells, INTERMEDIARY that it resells
someone else's, BOTH that one account does both. The file also carries a version, optional
contact fields and identifiers such as the network's TAG-ID.
Why buyers care
A buyer who sees an impression from seller ID 12345 on an exchange looks the ID up in that exchange's sellers.json. If it is missing, the seller is unknown. If its type is INTERMEDIARY but the publisher declared it DIRECT, something is wrong. If its domain is not the publisher's, the account may belong to someone else. The schain object in OpenRTB bid requests leans on the same file for every hop.
Common problems
- seller_id written as a number. JSON numbers drop leading zeros and some parsers reject them. Write every ID as a string.
- Missing domains. Without a domain nobody can match the account to the publisher's website, so the publisher's lines only pass half the check.
- Duplicate IDs. The same seller_id listed twice, often with different types after a migration. Crawlers keep one entry and the other is lost.
- Invalid seller_type. Values such as "Publisher/Intermediary", "RESELLER" or an empty string. Only PUBLISHER, INTERMEDIARY and BOTH are defined.
- The file is served as HTML or behind a bot wall. Crawlers then see no file at all, and every publisher line pointing at the network fails.
How this validator works
For networks we already crawl, the first result comes from our last read: no request leaves our servers, and the counts cover every seller, however large the file. A live check downloads the file now (up to 4 MB), parses it, and checks every entry against the IAB Tech Lab sellers.json specification. We never list seller names here, and contact fields are reported only as present or not.
How to validate a sellers.json, step by step
- Enter the network's domain. Use the domain publishers write in field 1 of their app-ads.txt lines, for example pubmatic.com.
- Read the summary. See whether the file exists, how many sellers it lists, and how they split between publishers, intermediaries and both.
- Run a live check for the schema. A live check downloads the file now and validates every entry: seller_id, seller_type, name, domain, flags and duplicates.
- Fix errors, then warnings. Errors make entries unusable to buyers. Warnings, such as a missing domain, make accounts impossible to confirm.