// PARTS

A price is a snapshot: reading price.as_of

Every price in the response carries the date it was true.

4 min readOtoIndex

Parts prices move. A quote that prints a number without saying when that number was confirmed is making a promise the data cannot keep. So every price in a parts response is an object, not a scalar, and the third field is the one that does the work.

part.json
{
"oem_part_number": "45022-TLA-A02",
"name": "Front Brake Pads",
"price": {
"amount": 70.99,
"msrp": 103.07,
"as_of": 1787173928266
}
}

What each field is for

  • amount is the most recent trusted market price we hold for that exact part number, as of the as_of date.
  • msrp is the manufacturer's list price, which is what makes a discount legible on a quote.
  • as_of is when amount was last confirmed, as a timestamp, so your own freshness rules can run on it.

Freshness is your decision, not ours

Because the date travels with the number, you can set the policy that suits your business: refuse to quote on anything older than a week, show the date next to the price, or refresh on a schedule and cache the rest. None of that requires a different endpoint or a flag, and none of it breaks when the underlying price changes.

Parts come grouped by service rather than as a flat catalogue, with the labor for that service in the same object. That is deliberate: the unit a shop quotes is a job, not a part, and a response shaped like a job is one less thing to assemble on your side.

// TRY IT

Run these calls yourself.

Every endpoint in this post runs on the free sandbox with no key and no signup, against the reference vehicle.