Feeds  ›  Feed Validator

Feed Validator

The Feed Validator is a dry-run endpoint that exercises the real PriceFirst parser against your feed and returns exactly the errors the live ingest would produce — without touching marchant prices. Run it before onboarding and before any significant feed change.

What it does, in order:

  1. Validates the URL is HTTPS. Plain http:// URLs are rejected outright.
  2. Performs a HEAD probe (10 s timeout) to confirm the feed is reachable.
  3. Downloads the feed (30 s timeout, 25 MB cap on the admin endpoint, 256 KB cap on the public one).
  4. Runs the appropriate parser in dry-run mode using the same rules as live ingest: 128-char Device ID cap, in-CSV duplicate detection, network whitelist, condition whitelist, 50p rounding, status enforcement.
  5. Returns a structured summary plus per-row errors.

Try it

Paste a URL, pick a CSV file, or drop in a CSV snippet. Results render inline — the table below breaks down every rejection with line number, code, field and message.

Try it out

No credentials required. 5MB CSV cap.

Rejection codes

CodeWhen it appears
missing_requiredRequired column missing from the header, or required cell blank.
invalid_pricePrice is non-numeric, zero, or negative.
invalid_device_idDevice ID cell is blank.
device_id_too_longDevice ID exceeds the 128-character cap.
duplicate_device_idDevice ID already appeared on an earlier line of the same CSV.
invalid_networkNetwork value doesn't resolve to the whitelist.
invalid_conditionCondition value doesn't resolve to one of the 5 base conditions.
invalid_statusStatus is neither `active` nor `inactive`.
row_inactiveInformational — row was skipped because Status=inactive.
malformedRow structure invalid, or Category doesn't match the parser's aliases.
A row_inactive entry is not an error — it's there so you can audit which rows were skipped. It does not count towards rejectedRows.

After validation

Once the validator reports success: true with zero or only-expected row-level errors, contact your PriceFirst integrator to:

  1. We will onboard you with the URLs you prepared for categories.
  2. Enable the recurring resync schedule every 10 minutes.
  3. Monitor ingestion via the admin feed dashboard.

Jump back to the Recycling Feeds reference for the underlying column rules.