How to Validate sellers.json Correctly
Validating sellers.json means cross-referencing your ads.txt entries against what SSPs actually report. Here is the step-by-step process to verify every line.

Key Takeaways
- Validating sellers.json means checking your ads.txt entries against the SSP's sellers.json data. This cross-verification catches errors that syntax validation alone misses.
- 24% of ads.txt entries fail sellers.json cross-verification. These entries look correct syntactically but do not match what the SSP reports about the seller's identity and relationship type.
- Manual validation involves fetching each SSP's sellers.json and searching for your account ID. For each entry, check seller_type, domain, and name fields.
- Automated tools make this scalable. Manual validation works for 5-10 entries but becomes impractical for publishers with 30+ SSP relationships.
- Validation should happen at least quarterly. SSPs update sellers.json without notification. What verified last month may not verify today.
How to Validate sellers.json Correctly
Most publishers who validate their ads.txt stop at syntax checking. Is the format correct? Are the commas in the right place? Is DIRECT uppercase? These are important checks, but they only catch half the problem.
The other half is sellers.json cross-verification: does what you claim in ads.txt actually match what the SSP reports about your account? This is the step that catches the errors DSPs actually care about. A syntactically perfect ads.txt line that fails sellers.json verification is still a line that gets rejected by buyers.
BeamFlow's analysis of 120K+ publisher domains found that 24% of ads.txt entries fail this cross-verification. These are not formatting errors. They are identity and relationship mismatches that silently block bids.
What Cross-Verification Checks
For each line in your ads.txt, sellers.json validation checks five things:
1. Does the account ID exist? Your ads.txt says ssp-x.com, 12345, DIRECT. The validator checks if seller_id 12345 exists in ssp-x.com's sellers.json. If not, the entry is unverifiable.
2. Does the relationship type match? Your ads.txt says DIRECT. sellers.json should show seller_type: "PUBLISHER". If sellers.json says "INTERMEDIARY", the types conflict.
3. Does the domain match? For DIRECT entries, sellers.json should show your publisher domain in the domain field. A different domain means the DSP cannot confirm you are the account holder.
4. Is the entry confidential? If sellers.json has is_confidential: 1, the seller's identity is hidden. DSPs cannot fully verify the entry.
5. Does the SSP have sellers.json at all? If the SSP domain does not host a sellers.json file, none of your entries for that SSP can be cross-verified.
Manual Validation Process
For publishers with fewer than 15 SSP entries, manual validation is feasible.
Step 1: List your ads.txt entries. Open your ads.txt file and note each entry: exchange domain, account ID, and relationship type.
Step 2: Fetch the SSP's sellers.json. For each unique SSP domain, visit https://ssp-domain.com/sellers.json in your browser.
Step 3: Search for your account ID. Use your browser's search function (Ctrl+F / Cmd+F) to find your seller_id.
Step 4: Verify each field.
- seller_type matches your ads.txt relationship type
- domain matches your publisher domain (for DIRECT entries)
- name is your company name
- is_confidential is 0 or absent
Step 5: Document results. Note which entries pass, which fail, and the specific failure reason.
Example validation:
Your ads.txt line: pubmatic.com, 156423, DIRECT, 5d62403b186f2ace
You check pubmatic.com/sellers.json, search for "156423", and find:
json{ "seller_id": "156423", "name": "Your Company", "domain": "yourdomain.com", "seller_type": "PUBLISHER" }
seller_type PUBLISHER matches DIRECT. Domain matches. PASS.
Another line: openx.com, 537149485, DIRECT, 6a698e2ec38604c6
sellers.json shows: seller_type: "INTERMEDIARY", domain: "adnetwork.com"
Your ads.txt says DIRECT but sellers.json says INTERMEDIARY. Domain does not match. FAIL. This is a monetization partner holding the account. Your ads.txt should say RESELLER.
Automated Validation
Manual validation does not scale. For publishers with 20+ entries, automated tools are essential.
What automated validators do:
- Parse your entire ads.txt file
- Fetch sellers.json from every referenced SSP
- Cross-reference each entry against the corresponding sellers.json
- Report: pass, fail (with reason), or unable to verify
BeamFlow's scanner provides this cross-verification automatically. Enter your domain, and it validates every ads.txt entry against live sellers.json data, flagging mismatches with specific details.
What to Do With Results
Entries that pass: No action needed.
ID Not Found: Verify the correct ID from the SSP dashboard. Fix in ads.txt or wait for the SSP to update sellers.json.
Relationship Type Mismatch: Determine the actual relationship and correct ads.txt, or contact the SSP to fix their sellers.json.
Domain Mismatch: Contact the SSP to update the domain field. Provide your current publishing domain.
Exchange Not Found: The SSP does not have sellers.json. Contact them and encourage implementation.
Confidential Entry: Contact the SSP and request non-confidential status.
Validation Cadence
Monthly: Quick check of new or recently changed entries.
Quarterly: Full cross-verification of every entry. SSPs update sellers.json without notification.
After any ads.txt change: Validate new entries immediately.
After SSP notifications: When an SSP announces a platform change, validate all entries for that SSP.
Frequently Asked Questions
Can I validate sellers.json without downloading the file?
Yes, for small spot-checks. Visit the sellers.json URL in your browser and search for your ID. For comprehensive validation, automated tools are more practical.
Should I validate sellers.json for RESELLER entries too?
Yes. RESELLER entries should correspond to INTERMEDIARY in sellers.json. The account ID should exist and the seller_type should match.
How do I know if a mismatch is my error or the SSP's error?
Check who holds the account. If you receive payment directly from the SSP, you should be PUBLISHER/DIRECT. If payment comes through a partner, you should be INTERMEDIARY/RESELLER. Contact the SSP with evidence if their data is wrong.
Related Articles

What Small SSPs Need to Know About AAMP Before It's Too Late
Magnite has a seller agent. PubMatic is building one. The Agent Registry launches March 1. If your SSP isn't preparing for agentic advertising, buyer agents will route around you.

sellers.json Confidentiality: The Revenue Cost SSPs Don't See
Marking sellers as confidential in sellers.json hides their identity from DSPs. That breaks verification, tanks SPO scores, and costs SSPs real money. Here's the data.

Supply Path Optimization: How DSPs Use sellers.json
DSPs use sellers.json to map, score, and prune supply paths. Here's how SPO actually works, what SSPs get cut, and why your sellers.json data determines your share of DSP spend.
Ready to optimize your ads.txt?
Check your domain's supply chain health instantly, free.
Check Your Domain Free