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:
- Validates the URL is HTTPS. Plain
http://URLs are rejected outright. - Performs a
HEADprobe (10 s timeout) to confirm the feed is reachable. - Downloads the feed (30 s timeout, 25 MB cap on the admin endpoint, 256 KB cap on the public one).
- 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.
- 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
| Code | When it appears |
|---|---|
missing_required | Required column missing from the header, or required cell blank. |
invalid_price | Price is non-numeric, zero, or negative. |
invalid_device_id | Device ID cell is blank. |
device_id_too_long | Device ID exceeds the 128-character cap. |
duplicate_device_id | Device ID already appeared on an earlier line of the same CSV. |
invalid_network | Network value doesn't resolve to the whitelist. |
invalid_condition | Condition value doesn't resolve to one of the 5 base conditions. |
invalid_status | Status is neither `active` nor `inactive`. |
row_inactive | Informational — row was skipped because Status=inactive. |
malformed | Row 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:
- We will onboard you with the URLs you prepared for categories.
- Enable the recurring resync schedule every 10 minutes.
- Monitor ingestion via the admin feed dashboard.
Jump back to the Recycling Feeds reference for the underlying column rules.