Discover/oreillyauto API
live

oreillyauto APIoreillyauto.com

Search O'Reilly Auto Parts products, check pricing and availability, look up vehicle year/make/model compatibility, and find store locations via a structured API.

Endpoint health
verified 5d ago
get_product_details
get_product_price_availability
get_vehicle_years
get_vehicle_makes
get_vehicle_models
7/7 passing latest checkself-healing
Endpoints
7
Updated
22d ago

What is the oreillyauto API?

The O'Reilly Auto Parts API provides 7 endpoints covering product search, detailed part data, pricing and availability checks, vehicle fitment lookups, and store finder functionality. The search_products endpoint returns part names, images, SKUs, and store availability in a single call, while the vehicle endpoints let you traverse the full year → make → model hierarchy needed to filter parts by fitment.

Try it
Search keyword (e.g. 'alternator', 'brake pads', 'oil filter')
ZIP code for pricing/availability context. Currently uses a default store regardless of value.
api.parse.bot/scraper/cec18493-73b6-4781-a16c-2d0cfd6e9bd6/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/cec18493-73b6-4781-a16c-2d0cfd6e9bd6/search_products?query=oil+filter&zip_code=30301' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace oreillyauto-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.o_reilly_auto_parts_api import OReillyAutoParts, Product, VehicleMake, VehicleModel, Store, PriceAvailability

client = OReillyAutoParts()

# Search for oil filters
for product in client.products.search(query="oil filter"):
    print(product.name, product.id)
    if product.pricing:
        print(product.pricing.price, product.pricing.retail_price, product.pricing.currency)
    if product.availability:
        print(product.availability.avail_pickup, product.availability.in_store_now)
    break

# Get full product details by URL
detail = client.products.get(url="/detail/c/performance-gold/k-n-engineering-performance-gold-oil-filter/kan1/hp1008")
print(detail.name, detail.brand, detail.manufacturer, detail.sku)

# List vehicle makes for a year
for make in client.vehiclemakes.list(year="2020"):
    print(make.id, make.name)
    break

# List vehicle models for a year and make
for model in client.vehiclemodels.list(year="2020", make_id="23076"):
    print(model.id, model.name)
    break

# Find stores in a city
for store in client.stores.find(city="Atlanta", state="GA"):
    print(store.store_id, store.url)
    break

# Check price and availability at a store
avail = client.priceavailabilities.check(parts='[{"itemNumber":"HP1008","lineCode":"KAN"}]', store_id="100")
print(avail.pricing_map, avail.avail_pickup_map)
All endpoints · 7 totalmissing one? ·

Search for products by keyword. Returns up to 24 product listings per page with names, images, pricing, and store availability at a default store. Results include lineCodeItemNumber for use with the get_product_price_availability endpoint.

Input
ParamTypeDescription
queryrequiredstringSearch keyword (e.g. 'alternator', 'brake pads', 'oil filter')
zip_codestringZIP code for pricing/availability context. Currently uses a default store regardless of value.
Response
{
  "type": "object",
  "fields": {
    "items": "array of product objects with id, itemId, name, image, lineCodeItemNumber, pricing, and availability"
  },
  "sample": {
    "data": {
      "items": [
        {
          "id": "7865776",
          "name": "BrakeBest Select Ceramic Brake Pads",
          "image": "https://images-prod.oreillyauto.com/parts/img/medium/obb/orly_sc1001_202_ang_primary.jpg",
          "itemId": "BB|SC1001",
          "pricing": {
            "price": 69.99,
            "onSale": false,
            "storeId": 100,
            "currency": "USD",
            "corePrice": 0,
            "retailPrice": 69.99
          },
          "availability": {
            "inStoreNow": false,
            "pickupTime": "by 8 AM tomorrow",
            "availPickup": true
          },
          "lineCodeItemNumber": {
            "lineCode": "BB",
            "itemNumber": "SC1001"
          }
        }
      ]
    },
    "status": "success"
  }
}

About the oreillyauto API

Product Search and Detail

The search_products endpoint accepts a keyword query (e.g. 'alternator', 'brake pads') and returns an array of product objects, each containing id, itemId, name, image, lineCodeItemNumber, pricing, and store availability. An optional zip_code parameter is accepted but note that pricing and availability are currently returned against a default store regardless of ZIP. To get full product detail — including brand, sku, mpn, manufacturer, primaryImage, and brandInformation — pass a product URL path (as returned in search results) to get_product_details.

Pricing and Availability

get_product_price_availability accepts a JSON array of parts, each identified by itemNumber and lineCode, and an optional store_id. The response object contains a pricingMap keyed by lineCode-itemNumber, plus multiple availability maps: availPickupMap, specialOrderMap, twoDayAvailabilityMap, threeDayAvailabilityMap, and availShipMap, all keyed by broadleaf product ID. This makes it practical to check same-day pickup versus shipping options in one call.

Vehicle Compatibility Lookup

Three endpoints handle vehicle fitment data in sequence. get_vehicle_years returns an array of supported model year integers, newest first. Pass a year to get_vehicle_makes to get an array of make objects with id and name. Pass both year and make_id to get_vehicle_models to get the matching model list. These endpoints form the full year/make/model chain used to narrow parts searches to a specific vehicle.

Store Finder

find_stores takes a city and two-letter state code and returns an array of store objects, each with a store_id and a url pointing to the store's location page. The store_id values returned here feed directly into get_product_price_availability to check inventory at a specific location.

Reliability & maintenanceVerified

The oreillyauto API is a managed, monitored endpoint for oreillyauto.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when oreillyauto.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official oreillyauto.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
7/7 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a parts fitment tool that traverses year/make/model to surface compatible parts for a given vehicle.
  • Compare same-day pickup vs. two-day or three-day shipping availability across multiple part numbers using the availability maps from get_product_price_availability.
  • Aggregate pricing data across a set of SKUs by lineCode and itemNumber for competitive price monitoring.
  • Populate an auto repair app's parts catalog with images, brand info, and MPNs from get_product_details.
  • Locate the nearest O'Reilly store by city and state, then check local stock for a specific part using the returned store_id.
  • Automate inventory checks for fleet maintenance by querying known part line codes and item numbers against a target store.
  • Index O'Reilly product data including brand information and manufacturer details for a parts cross-reference database.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does O'Reilly Auto Parts offer an official public developer API?+
O'Reilly Auto Parts does not publish a public developer API or documentation portal for third-party access to its product, pricing, or vehicle data.
What does `get_product_price_availability` return beyond a single price?+
The endpoint returns a pricingMap keyed by lineCode-itemNumber, plus five separate availability maps: availPickupMap (same-day in-store pickup), specialOrderMap, twoDayAvailabilityMap, threeDayAvailabilityMap, and availShipMap. Each availability map is keyed by broadleaf product ID, so you can distinguish fulfillment method per part in a single response.
Does the ZIP code in `search_products` change which store's pricing is returned?+
Currently, pricing and availability in search_products are returned against a default store regardless of the zip_code value provided. To get store-specific pricing, use find_stores to obtain a store_id and pass it to get_product_price_availability.
Does the API return customer reviews or ratings for products?+
Not currently. The API covers product names, images, SKUs, brand data, pricing, and availability. Customer review content and star ratings are not included in any current endpoint response. You can fork this API on Parse and revise it to add an endpoint targeting product review data.
Can I retrieve a list of all parts compatible with a specific vehicle, not just search by keyword?+
Not currently. The vehicle endpoints (get_vehicle_years, get_vehicle_makes, get_vehicle_models) return the year/make/model hierarchy, but there is no endpoint that queries all fitment-compatible parts for a resolved vehicle without a keyword. You can fork this API on Parse and revise it to add a vehicle-based parts catalog endpoint.
Page content last updated . Spec covers 7 endpoints from oreillyauto.com.
Related APIs in AutomotiveSee all →
napaonline.com API
Search NAPA Auto Parts' catalog to find compatible parts by vehicle type, get detailed product information with reviews, and discover similar products all in one place. Browse by vehicle year, make, and model to quickly locate the right parts and read what other customers think about them.
car-part.com API
Search for recycled auto parts across thousands of vehicles and get detailed information on pricing, availability, and specifications from car-part.com. Find the exact parts you need with comprehensive search metadata and individual part details to compare options and locate the best deals.
carmax.com API
Search CarMax's inventory to find vehicles by make, model, price, and features, then access detailed specs, photos, and pricing for any car that interests you. Locate nearby CarMax stores, view their hours and contact information, and browse the specific inventory available at each location.
autotrader.com API
Search Autotrader.com vehicle listings and access detailed information like pricing, specifications, and VIN data with flexible filtering options. Browse all available vehicle makes and models to refine your search across thousands of listings.
autodoc.co.uk API
Find auto parts and check compatibility with your vehicle by browsing makes, models, and engines, then search for parts with detailed specifications and discover equivalent alternatives. Get everything you need to identify the right replacement parts for any car in the Autodoc catalog.
kbb.com API
Search vehicle ratings, OBD-II diagnostic codes, and current lease deals across years, makes, and models from Kelley Blue Book. Get comprehensive car information and pricing data to compare vehicles and find the best deals.
edmunds.com API
Search new and used car inventory on Edmunds by make, model, year, condition, and location. Retrieve detailed specs, pricing, history, and dealer info by VIN, and browse all available car makes.
hondapartsnow.com API
Find and purchase genuine Honda parts and accessories by browsing your vehicle's year, model, and trim, or by searching parts directly and looking up components by VIN number. Manage your shopping experience with real-time cart updates and access to detailed part information across all available Honda categories.