From the OE number to a marketplace-ready articleAll articles

From the OE number to a marketplace-ready article

A number on a label is the most common entry point in the parts trade. This route shows which four calls turn it into an article that speaks the same language in shop, marketplace and stock.

Published: 2026-09-11Reading time: 10 mintapinomahub API & workflows
API & processesAutomotive aftermarketOE numberIAM & aftermarketAPIMarketplacesParts trade

The OE number is the currency of the parts trade. It sits on the label, on the invoice, in the customer enquiry and in the donor vehicle's parts list. The problem: a number alone sells nothing. Between “5Q0941773B” and an article that a search engine finds and a marketplace filter lets through lie the name, the usage, the reference numbers, the category and the item specifics. This route describes which calls of the tapinomahub API take that distance off your hands.

From the OE number to a marketplace-ready articleInput: an OE number from a label, document, parts list or customer enquiry 1. Normalise the number (GET /parts/oe/normalize): matched, unresolved, ambiguous or invalid — with an equivalence list 2. Part and fitment (GET /parts/oe/{oeNumber}): part, fitment, replacementChain, references and tapiGenArt 3. Independent aftermarket (GET /parts/oe/{oeNumber}/aftermarket-references): Numbers of IAM manufacturers, count and paging data 4. Marketplace data (GET /parts/oe/{oeNumber}/seo): A title of up to 80 characters, category, item specifics, keywords 5. Price range (GET /parts/oe/{oeNumber}/price): min, average, max and confidence — or no_listings_found Output: one article carrying the same number in shop, marketplace and stock A reference number is not a fitment statement. The check belongs before publication, not after.From the OE number to a marketplace-ready articleInput: an OE number from a label, document, parts list or customer enquiry01Normalise the numberGET /parts/oe/normalizematched, unresolved, ambiguous or invalid — with an equivalence list02Part and fitmentGET /parts/oe/{oeNumber}part, fitment, replacementChain, references and tapiGenArt03Independent aftermarketGET /parts/oe/{oeNumber}/aftermarket-referencesNumbers of IAM manufacturers, count and paging data04Marketplace dataGET /parts/oe/{oeNumber}/seoA title of up to 80 characters, category, item specifics, keywords05Price rangeGET /parts/oe/{oeNumber}/pricemin, average, max and confidence — or no_listings_foundOutput: one article carrying the same number in shop, marketplace and stockA reference number is not a fitment statement. The check belongs before publication, not after.
Five calls from the raw number to a publishable article. The price range is optional — marketing works without it.

Why the number is normalised first

The same number is kept in half a dozen notations inside one business: with hyphens, with spaces, in lower case, with a colour index appended. GET /parts/oe/normalize checks the notation against the known rules and answers with a status that decides how the rest proceeds. The call is cheap, fast and prevents the most expensive kind of error: a clean query against a number that does not exist.

The four states of normalisation and the correct response
`status`MeaningResponse in your system
matchedThe number is confirmed; normalizedOeNumber and lookupKey are in the responseContinue with the normalised number, not the one that was typed in
ambiguousThe number fits several manufacturers or rules; knownCandidates lists themPass manufacturer and ask again, or let a person decide
unresolvedFormally plausible but not found in the reference dataCreate the article without reference data or hold it — never invent a number
invalidFormally not an OE number; reasons states whyCorrect the input; this is almost always a reading or typing error

The core: part, fitment, replacement, references

GET /parts/oe/{oeNumber} is the central call of the whole route. It returns four lists that are separate in substance and often confused in practice — and that separation is precisely the value of the answer. The service description is in Compare OE part name, fitment, reference family and replacement chain.

Fetch part data for an OE number
curl \
  -H 'X-Api-Key: <API_KEY>' \
  'https://api.tapinomahub.com/parts/oe/5Q0919275C?manufacturer=VW'
The response fields and what they do for the article
FieldContentUse
normalizedOeNumberThe confirmed, unified notationThe key under which the article is kept in stock
part.name, part.manufacturerPart name and manufacturer where availableTitle building block and item name; null when nothing is documented
part.listPriceOptional list price of the partOrientation for your own calculation, not a market price
tapiGenArt, vdiPart-type classification and VDI 4081 codesCategory assignment, dismantling planning, analysis by part type
fitment[]Vehicle type assignments with vehicleTypeKey and documented criteriaThe usage list in the listing — the most common reason returns are avoided
replacementChain[]Directed edges: from is replaced by toSpot successor parts, keep old stock findable under the current number
references[], referenceNumbersReference numbers grouped by manufacturer and mergedSearch hits from customers who know a different number than yours

When the independent aftermarket matters

Many customers do not know the OE number but the number of an aftermarket manufacturer. GET /parts/oe/{oeNumber}/aftermarket-references returns the IAM references found: per entry partNumber in its original notation, normalizedPartNumber without special characters, and manufacturer. count gives the total; limit and offset fetch the list page by page, and page.hasMore says whether something is still missing. When no references exist, the response is successful and the list is empty — that is not an error, see Determine aftermarket references for an OE number.

One confirmed OE number, four separate answersnormalizedOeNumber — The confirmed notation every further answer refers to 1. Technical data (GET /parts/oe/{oeNumber}): Name, manufacturer, fitment criteria, replacement edges 2. Marketing (GET /parts/oe/{oeNumber}/seo): Title, category, item specifics, keywords, shop copy 3. Alternatives (GET /parts/oe/{oeNumber}/aftermarket-references): Part numbers of independent manufacturers for the same OE number 4. Price (GET /parts/oe/{oeNumber}/price): Ranges for new and used plus a recommendation and confidence No field is derived from another: reference, fitment and replacement each carry their own meaning.normalizedOeNumberThe confirmed notation everyfurther answer refers toOne confirmed OE number, four separate answersTechnical dataGET /parts/oe/{oeNumber}Name, manufacturer, fitment criteria, replacement edgesMarketingGET /parts/oe/{oeNumber}/seoTitle, category, item specifics, keywords, shop copyAlternativesGET /parts/oe/{oeNumber}/aftermarket-referencesPart numbers of independent manufacturers for the same OEnumberPriceGET /parts/oe/{oeNumber}/priceRanges for new and used plus a recommendation and confidenceNo field is derived from another: reference, fitment and replacement each carry their own meaning.
One confirmed number, four separate answers. Each call answers one question; the assembly happens in your own system.

The marketplace side: title, category, item specifics

GET /parts/oe/{oeNumber}/seo is the call that turns part data into selling copy. marketplaceId selects the marketplace — the documented values are the eBay marketplaces EBAY_AT through EBAY_US, with EBAY_DE as the default. language selects the language of the generated content, vehicleType separates car and motorcycle. Described in detail in Optimise an eBay or marketplace article (SEO enrichment).

Generate marketplace data for eBay France
curl \
  -H 'X-Api-Key: <API_KEY>' \
  'https://api.tapinomahub.com/parts/oe/5Q0919275C/seo?marketplaceId=EBAY_FR&language=fr&vehicleType=car'
From the response field into the field of the sales channel
Response fieldTarget field in the channelEffect
content.ebayTitleItem headlineAt most 80 characters, calculated against the marketplace limit
categoryIdMarketplace categoryWithout the right category no filter and no search refinement applies
itemSpecifics[]Item specificsPer entry a name and a value list — the fields that feed the filters
keywords[]Search terms, shop tagsBasis for internal search and long-tail pages in your own shop
content.title, content.h1, content.slugShop pageHeadline, page title and address of your own article page
content.metaTitle, content.metaDescription, content.bulletPointsSearch engines and item descriptionPreview texts and a list of the essential characteristics
  • `404 seo_no_exact_match` means there is no exact match for the number in the chosen vehicle path. The response names oeNumber, marketplaceId, language and vehicleType — check vehicleType first.
  • `400 unsupported_marketplace_language` means the selected marketplace does not carry that language. That combination belongs in your configuration, not in the individual call.
  • `liveAvailability` with `status: "PAUSED"` shows that live enrichment is currently paused; availableAt and retryAfterSeconds give the earliest retry. The same as an error: 429 seo_live_requests_paused.
  • The result is publication content, not a fitment statement. It must be checked independently for accuracy and permissibility before publication — item specifics included, and especially those.

The price range, when you need it

GET /parts/oe/{oeNumber}/price returns an indicative valuation: new and used with min, max and average, plus priceRecommendation with confidence as HIGH, MEDIUM or LOW. result states where you stand: priced means usable offers were found; no_listings_found means there were none — the response then carries zero values, and that is not a price but an empty finding. A valuation with LOW rests on few offers; its midpoint cannot carry a purchase decision. See Evaluate the price of an OE part and Dynamic pricing for used parts without giving up control.

Replacement chains: the quiet revenue lever

Manufacturers replace part numbers several times over a model cycle. An article kept only under the oldest number is invisible to customers who know the newest — and the other way round. replacementChain makes that direction visible: from is replaced by to. Record the whole chain as search terms and reference numbers on the article, and your stock is found under every number that was ever valid. More in OE, OEM, OES and IAM: the difference in one overview and New, used, remanufactured, replica: four terms, two dimensions.

Billing, repeats and rate limits

  • An empty finding and a technical non-execution remain separate. The commercial treatment of 404 oe_part_not_found follows only the terms shown before ordering and agreed in the contract.
  • `422 ambiguous_oe_number` means the number could not be resolved unambiguously. Pass manufacturer instead of guessing.
  • Rate limits apply per endpoint key, not flatly to the account. One active call per client is permitted at a time; further requests are rejected with 429 client_request_in_progress.
  • Responses belong in your database. Part data, fitment and references rarely change. Repeating the call on every page view costs money and gains nothing.
  • The `X-Tapinoma-Billing-Source` header names the billing decision: plan, balance, bundle, sandbox or idempotent_replay. For accounting it is a more reliable source than an assumption.

The workflow in the inventory system

  1. Normalise the number and record the status on the article. Only matched continues without a question.
  2. Fetch part data and store the four lists separately. Throwing references and fitment into one field means you can no longer explain where a statement came from.
  3. Load IAM references when you carry aftermarket parts or your customers search with aftermarket numbers. Work page by page on long lists.
  4. Request marketplace data per target channel and target language. An article for three countries needs three calls, not a translation of the German text.
  5. Map item specifics onto the channel's mandatory fields and make missing mandatory fields visible instead of filling them with assumptions.
  6. Request the price range only where it carries a decision — at initial pricing and on slow movers, not for every article every day.
  7. Measure after publication: channel rejections, corrections, returns due to fit, share of articles without a category.

Limits you need to know

  • No assurance of fit. Reference, fitment and replacement are documentation. The technical check on the actual vehicle stays with whoever fits the part.
  • Empty lists are information about data. Rare series, special versions and very old parts are less documented. That is a coverage question, not a quality statement about the part.
  • Texts are proposals, not approvals. Brand and manufacturer names may be references but must not suggest origin; misleading statements about essential characteristics are unlawful.
  • A price range is not a price guarantee. The output is explicitly indicative and not a binding buying or selling statement.
  • Categories and specifics change. Marketplaces rework their structures. A lookup from two years ago is not the current state once a channel has rebuilt its fields.

All fields, error codes and example responses are in the developer documentation. If you start from a photo or from a whole vehicle instead of a number, the other two routes are From part photo to listing: the image route through the tapinomahub API and From the VIN to the economic evaluation: the vehicle route.

Frequently asked

Do I have to normalise the number first?

Not strictly, but it is sensible. Normalisation settles notation and uniqueness and prevents lookups against numbers that do not exist in that form.

What is the difference between a reference number and a replacement?

A reference number designates the same or a related part at another manufacturer. A replacement is directed: the part in from was replaced by the manufacturer with to.

Do I get separate data for each marketplace?

Yes. marketplaceId and language determine category, specifics and copy. For three countries you call three times instead of translating one text.

Is a lookup without a hit charged?

The commercial treatment of an empty finding follows only the terms shown before ordering and agreed in the contract.

Does the service guarantee better rankings?

No. What is owed is the supply of complete, structured data. How a marketplace or a search engine treats it is their own decision.