- Data maintenance at parts manufacturers, suppliers and data providers
- Software in which article master data for the parts market is created and maintained: product information systems (PIM) and catalogue systems of parts manufacturers and suppliers, data deliveries to catalogues such as TecDoc, to trading partners and marketplaces, plus service providers who prepare such data on behalf of others. The users are product data and catalogue teams. What is recorded there as OE references, article types and designations later reaches every workshop, distributor and dismantler working with the data — that is where the API comes in.
Where data is missing in the process
A supplier's article carries its own number and a list of the OE numbers it replaces. That list is the anchor by which trade and workshops find the article — and the part of the record most often produced by hand, see OE number. The typical places:
- When the reference list is created. OE numbers come from engineering documents, dealer invoices and competitor catalogues — with spaces, with hyphens, without index letters. Whether
5Q0 919 275 Cand5Q0919275Care the same number is decided by a member of staff while reading. - In classification. Article type and VDI 4081 position are picked per article from a dropdown. For wear parts that is quick; for electronics and body parts it is rarely consistent.
- In translation. Designations are translated by hand per target language or taken from an old catalogue; marketplace texts once more per country.
- In price orientation. Where an article sits in the market is derived from individual competitor prices, without date and without source.
- After delivery. Whether an OE number in the list has since been affected by a recall is checked by nobody — the registers are not connected to the master data.
What the API delivers
| Process step | Call | Result |
|---|---|---|
| Validate an OE number | GET /parts/oe/normalize | matched, unresolved, ambiguous or invalid, plus documented replacement numbers; the optional manufacturer improves the assignment |
| Classify an article | GET /parts/oe/{oeNumber} | Exactly one tapiGenArt; VDI 4081 if confirmed, else empty; replacement chain, reference family, fitment; 404 without a base match |
| Compare references | GET /parts/oe/{oeNumber}/aftermarket-references | Documented aftermarket references for the OE number; empty list when there are none; no guarantee of fit |
| Translate a designation | GET /translation/translations | Exactly one part designation into the supported target languages — no titles, sentences or lists |
| Enrich marketplace texts | GET /parts/oe/{oeNumber}/seo | SEO enrichment per language and marketplace with product, content and item-specific fields |
| Position the price | GET /parts/oe/{oeNumber}/price | Indicative price evaluation from comparison and market references; no price guarantee |
| Check recalls | POST /recalls/parts | Up to 100 positions per call against the recall registers; per position status, measures, confidence |
One process from start to finish
- Prepare the classification once.
GET /vdireturns the VDI 4081 catalogue with main groups and positions, plus its data state and check value. With it you map your product group scheme to VDI 4081 once; the catalogue holds no OE assignments, those come per number from the cross-check. - Clean up the reference list. Every OE number in the list goes through
GET /parts/oe/normalizewithoeNumberand, where known,manufacturer. Onmatchedyou take over the normalised spelling and the documented replacement numbers.unresolved,ambiguousandinvalidstay as entered and receive a task — no case is closed by guessing. - Classify the article. For every confirmed number,
GET /parts/oe/{oeNumber}returns exactly onetapiGenArtand, where a confirmed mapping exists, the VDI 4081 position; if the VDI 4081 mapping is empty, the product group stays open. Replacement chain, reference family and fitment come with it — see GenArt number. On404there was no confirmed base match: the article stays created, the classification stays open. - Hold your own references against the market.
GET /parts/oe/{oeNumber}/aftermarket-referencesshows which aftermarket references are documented for an OE number — so a data provider sees where its own list deviates from the market. A reference is no guarantee of fit; an empty list is a finding, not an error — see OE, OEM, OES and IAM. - Designations and marketplace texts. The part designation goes individually through
GET /translation/translations— exactly one per call, no titles or lists.GET /parts/oe/{oeNumber}/seosupplies product, content and item-specific fields per language and marketplace; the text is checked before publication. - Position the price.
GET /parts/oe/{oeNumber}/pricereturns an indicative price evaluation from comparison and market references. It belongs in the record as a dated market reference, not as a list price — and it is no price guarantee. - Recalls in the nightly run. A job sends the reference list in batches of up to 100 positions to
POST /recalls/parts, withvehicle.make,vehicle.modeland build period where known. Per position, status, measures and confidence come back; affected articles receive a notice for trading partners.
curl \ -H 'X-Api-Key: <API_KEY>' \ 'https://api.tapinomahub.com/parts/oe/normalize?oeNumber=5Q0919275C&manufacturer=VOLKSWAGEN'
The integration
- Store the key server-side. The key in the
X-Api-Keyheader belongs in the configuration of your backend or batch system — never in the browser, never in an import script that is passed on with the data package. The path from contract to go-live is in the documentation. - Start with one endpoint. For master data that is
GET /parts/oe/normalizeon import of the reference list: one call per number, and afterwards every row has astatusyou can count. - Define the field mapping. The normalised number and the replacement numbers into the reference field,
tapiGenArtonto your article type, the VDI 4081 mapping onto your product group,part.manufacturerandpart.nameinto the master fields — and every field that returnsnullstays empty. - Separate failure from empty result.
unresolved,ambiguousandinvalidin normalisation,404in the OE cross-check and an empty reference list are empty results: keep the record, leave the field empty, raise a task. Only a technical error is retried. - Collect 202 responses. Long-running operations answer with
202,Location,Retry-Afterand a job ID; the status comes from the matching.../jobs/{jobId}endpoint at the interval ofRetry-After— for instanceGET /vin/cart-check/jobs/{jobId}whenPOST /vin/cart-checkchecks up to 30 OE positions against a vehicle, orGET /vision/part/generation-jobs/{jobId}for product-image jobs on new parts fromPOST /vision/part/generate. - Roll out and observe. First one product group, then the stock.
GET /client/usageshows which calls run how often; theX-Tapinoma-Usage-Warningheader speaks up before the credit runs out.
What to watch out for
- Set an Idempotency-Key. A nightly run that restarts after a crash sends the same batches to
POST /recalls/parts. With theIdempotency-Keyheader the repeat is recognised and flagged in theX-Tapinoma-Idempotent-Replayresponse header. Exception: calls that issue a key once — after a timeout, reconcile what exists instead of creating again. - Do not fill empty fields.
unresolveddoes not mean „probably this number“, and anullinpart.listPriceis a statement. A record that plausibly closes gaps carries the false statement into every catalogue that takes your data. - Store the tapiId. If a process has matched a vehicle through a VIN flow, keep the
tapiId;GET /vehicles/{tapiId}returns the technical data as part of that paid workflow, without VIN and equipment. - Store results, do not re-query per export. What
GET /parts/oe/{oeNumber}returns belongs to that number in your database; every request is billed from the credit. - Never the key in the browser. A checking tool for the catalogue team also runs through your backend; rate limits per sub-user contain an import that accidentally re-checks the whole stock.
- Do not deliver SEO content as fit. SEO enrichment creates publication copy and item specifics. A fit claim must come from the dedicated part or VIN comparison.
- Check the result before delivery. Translation, SEO enrichment and price evaluation are meant for review, not for unseen forwarding. The use of the results lies with the customer.
What the API does not do
The API delivers cross-checks and analyses, not a data set: with the result you acquire no rights to the underlying data sets and no catalogue you could sublicense. What is owed is the query; checking and using the results lies with you. GET /vdi returns the classification catalogue without OE assignments, the price evaluation is indicative and no price guarantee, an aftermarket reference is no promise of fit. Vehicle data from provider 1 is not retrieved directly by third-party systems — for that there is the browser redirect via POST /vin/redirect-sessions, whose session expires after ten minutes and contains neither vehicle nor access data. The image endpoints deliver visual inspections, no expert report; a number plate on a photo leads to no keeper lookup. And where the data yields nothing, the field stays empty.
Frequently asked
What does `ambiguous` mean in normalisation?
The input hits several replacement families without the number itself appearing character for character in the data. The API then deliberately does not guess. A manufacturer passed in manufacturer can narrow down the candidates; if the result stays ambiguous, the case remains a task.
Does `GET /vdi` replace classification per article?
No. GET /vdi returns the catalogue with main groups and positions, without OE assignments. Which position belongs to a number comes per article from GET /parts/oe/{oeNumber}.
May I take the price evaluation into the data delivery as a list price?
No. GET /parts/oe/{oeNumber}/price is an indicative market reference from comparison and market references and no price guarantee. It belongs in the record as dated orientation, not as a price field.
Do I acquire rights to the data sets with the results?
No. What is owed is the cross-check or analysis and the output of the result. No data set is sold; checking and using the results lies with you.
