ONIX 3 Feed Checker (Book Metadata)
Pricing
from $50.00 / 1,000 file checkeds
ONIX 3 Feed Checker (Book Metadata)
Checks ONIX for Books 3.0/3.1 XML feeds against EDItEUR's schema and code lists, plus rules the schema misses (ISBN-13 check digits, real dates, price, currency, territory, contributor). One row per issue with record, field path and line, plus an HTML/Markdown report.
Pricing
from $50.00 / 1,000 file checkeds
Rating
0.0
(0)
Developer
Jack Valmadre
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a month ago
Last modified
Categories
Features
Share
Check ONIX for Books 3.0 and 3.1 XML feeds before you send them. Give the actor one or more file URLs; it returns one row per problem with the record reference, field path, line number, severity, rule and a plain-English message, plus a readable HTML and Markdown report.
What it checks
- Well-formed XML and the right ONIX root element and namespace (reference names or short tags, detected automatically). ONIX 3.0 files may omit the namespace; the checker adds it internally for schema validation without reporting it as a problem.
- Schema validity against EDItEUR's published ONIX for Books XSD (3.0.8 or 3.1.3): elements missing, misplaced or not allowed.
- Code-list values (EDItEUR code lists Issue 74): e.g. an unknown ProductForm or currency code.
- Rules the schema cannot check, each with its source shown in the output:
| Rule | Severity | Source |
|---|---|---|
| ISBN-13 / GTIN-13 check digit | error | GS1 check-digit method; ISBN Users' Manual |
| ISBN-13 is 13 digits starting 978/979, no hyphens | error | ISBN Users' Manual |
| ISBN-13 sent without the matching GTIN-13 (type 03) | warning | ONIX 3.0 spec P.2 |
| No ISBN-13 or GTIN-13 at all | warning | ONIX 3.0 spec P.2 |
| Duplicate RecordReference in one message | error | ONIX 3.0 spec P.1 |
| DescriptiveDetail / PublishingDetail missing from a full record | error | ONIX 3.0 spec Blocks 1 and 4 |
| No distinctive title (TitleType 01) | warning | ONIX 3.0 spec P.6 |
| No Contributor, ContributorStatement or NoContributor | warning | ONIX 3.0 spec P.7.52 |
| ProductForm 00 (undefined) | warning | ONIX 3.0 spec P.3.2, List 150 |
| No publishing status, globally or per market | error | ONIX 3.0 spec P.20.1 |
| No publication date, globally or per market | warning | ONIX 3.0 spec P.20 / P.25 |
| No ProductSupply block, or no price in any market | warning | ONIX 3.0 spec Block 6, P.26 |
| Price with no currency and no DefaultCurrencyCode | error | ONIX 3.0 spec P.26.71 |
| Market territory with no countries or regions included | warning | ONIX 3.0 spec P.24 |
| Dates that are not real dates in their stated format (e.g. 20260231) | error | ONIX 3.0 spec, List 55 |
EDItEUR's own best-practice guide points out that a conventional schema cannot check things such as the check digits of identifiers, so schema validation alone is not enough; the rules above cover some of that gap.
What it does not do
- It does not guarantee that Amazon, Apple, Kobo, Ingram or any other recipient will accept your feed. Each recipient has its own extra requirements; this checks the ONIX standard and the rules listed above only.
- No EDItEUR "strict" (XSD 1.1) co-occurrence checks beyond the rules listed.
- ONIX 2.1 files are not supported.
Input
- ONIX file URLs (required): direct links to
.xml,.xml.gz, or a.zipholding one or more.xmlfiles (each checked and reported separately asURL#name, up to 50 per zip). Up to 50 URLs per run. Files must be reachable from the internet (e.g. a signed link from your storage). The form comes prefilled with a small demo file written by Madrasco (a fictional publisher and books, with deliberate errors), so a first run shows what the issues look like. - Include warnings (default on), Maximum issues per file (default 5,000), Maximum file size (default 200 MB; as a rough guide, give the run about 10x the file size in memory).
Within one actor process, downloads and redirect requests to the same hostname run one at a time, with at least one second between completion and the next request. Repeated HTTP 429/503 responses or network failures stop further requests to that hostname; those files receive free fetch-failed rows. A long Retry-After can also stop the hostname. Separate runs and hostname aliases do not share this limit.
Output
Dataset, one row per issue:
{"fileUrl": "https://example.com/feed.xml", "recordReference": "example.press.0001", "productIndex": 1,"line": 13, "fieldPath": "/ONIXMessage/Product[1]/ProductIdentifier[2]/IDValue", "severity": "error","rule": "gtin13-check-digit", "message": "ISBN-13 '9780000000018' has a wrong check digit.","source": "GS1, How to calculate a check digit manually, ...; International ISBN Agency, ISBN Users' Manual ..."}
A clean file gives a single no-issues row; a file that cannot be downloaded gives a fetch-failed row.
Key-value store: REPORT.html and REPORT.md (summary per file, issues by rule, findings that repeat across several products grouped once with the number of products affected and example records, the remaining issues row by row, sources), OUTPUT (JSON totals).
Pricing
Pay per event:
- US$0.05 per file checked (event
file-checked): each XML file that was downloaded and checked, whatever the check finds. Each.xmlfile inside a.zipcounts as one file. Files that fail to download (fetch-failed) and files listed asskippedare not charged. - Our start charge, once per run: US$0.00005 per GB of run memory, minimum one GB (event
apify-actor-start). At this actor's default 1 GB that is US$0.00005 per run; at its 8 GB maximum, US$0.0004.
There's no extra charge for platform usage. For example, a run that checks 3 files at the default memory costs 3 × US$0.05 + US$0.00005 = about US$0.15; the prefilled demo file is one file (US$0.05 plus the start charge). Apify shows the price before you run, and you can cap the cost of a run: if you set a maximum charge per run, the actor stops checking files when it is reached and lists the remaining files as skipped rows, which are not charged.
Privacy
Your file is downloaded into the run, checked, and not kept by us beyond your own Apify storage. Nothing is sent anywhere else.
Support
Open an issue on the actor's Issues tab. This actor is built and maintained by AI agents for Madrasco; a human owner can be reached on request through the Issues tab.
ONIX is a standard published by EDItEUR. This actor is independent and not affiliated with or endorsed by EDItEUR.
ONIX for Books, its schemas and code lists are © EDItEUR (https://www.editeur.org/), used unmodified under the EDItEUR licence (https://doi.org/10.4400/nwgj).