Sellers Json

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.

B
BeamFlow Team
BeamFlow Team
February 9, 2026
7 min read
How to Validate sellers.json Correctly

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:

  1. Parse your entire ads.txt file
  2. Fetch sellers.json from every referenced SSP
  3. Cross-reference each entry against the corresponding sellers.json
  4. 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.

Ready to optimize your ads.txt?

Check your domain's supply chain health instantly, free.

Check Your Domain Free