Discover/Deere API
live

Deere APIshop.deere.com

Search and browse the John Deere parts catalog. Access part details, pricing, availability, equipment model lookups, categories, and related part recommendations.

Endpoint health
verified 6d ago
search_parts
get_maintenance_kits
get_part_details
get_subcategories
get_parts_by_category
9/9 passing latest checkself-healing
Endpoints
9
Updated
22d ago

What is the Deere API?

The shop.deere.com API provides structured access to the John Deere parts catalog across 9 endpoints, covering part search, category browsing, equipment model lookups, pricing, and related product recommendations. The get_part_details endpoint returns real-time pricing fields including ecommPrice, regularPrice, and customerPrice alongside fulfillment details and frequentlyBoughtTogether recommendations — making it practical for building parts lookup tools, inventory integrations, or fleet maintenance workflows.

Try it
Page number.
Results per page.
Sort order.
Search keyword or part number.
api.parse.bot/scraper/4211ceff-b33b-4e00-ae8f-4fb172d44b93/<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/4211ceff-b33b-4e00-ae8f-4fb172d44b93/search_parts?page=1&size=5&sort=RELEVANCE&query=oil+filter' \
  -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 shop-deere-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.john_deere_parts_shop_api import JohnDeere, Sort, PartNotFound

client = JohnDeere()

# Search for oil filters sorted alphabetically
for part in client.parts.search(query="oil filter", sort=Sort.NAME_A_TO_Z, limit=5):
    print(part.code, part.name, part.brand)
    if part.pricing and part.pricing.ecomm_price:
        print("  Price:", part.pricing.ecomm_price.amount, part.pricing.ecomm_price.currency)

# Fetch a specific part by code and explore recommendations
oil_filter = client.parts.get(code="AM125424")
print(oil_filter.name, oil_filter.description)
for rec in oil_filter.related():
    print("  Related:", rec.product_code, rec.product_name, rec.confidence)

# Browse parts in the Filters category
filters_category = client.category(slug="Filters")
for facet in filters_category.facets():
    print(facet.name, facet.code)
    for fv in facet.facet_values:
        print("  ", fv.name, fv.count)

for part in filters_category.browse(size=10, limit=10):
    print(part.code, part.name)

# Look up catalogs for a specific equipment model and search its parts
z445 = client.equipmentmodel(model="Z445")
for catalog in z445.catalogs():
    print(catalog.pc_number, catalog.title)

for part in z445.search_parts(query="filter", limit=5):
    print(part.code, part.name)

# List all categories
for cat in client.categories.list():
    print(cat.name, cat.slug)

# Browse maintenance kits
for kit in client.parts.maintenance_kits(limit=3):
    print(kit.code, kit.name)
    if kit.pricing and kit.pricing.availability:
        print("  Availability:", kit.pricing.availability)
All endpoints · 9 totalmissing one? ·

Full-text search across the John Deere parts catalog by keyword or part number. Returns paginated products with pricing, facets for filtering (models, categories, tiers), and total result count. Pagination via integer page counter; facets describe the result set for client-side narrowing.

Input
ParamTypeDescription
pageintegerPage number.
sizeintegerResults per page.
sortstringSort order.
queryrequiredstringSearch keyword or part number.
Response
{
  "type": "object",
  "fields": {
    "facets": "array of facet objects for filtering (models, categories, sub-categories)",
    "products": "array of product objects with code, name, description, assets, categories, pricing",
    "totalResults": "integer total number of matching products"
  },
  "sample": {
    "data": {
      "facets": [
        {
          "code": "productTierLabel",
          "name": "Parts Tier",
          "facetValues": [
            {
              "name": "Original",
              "count": 4239
            }
          ]
        }
      ],
      "products": [
        {
          "code": "AM125424",
          "name": "AM125424: Engine Oil Filter",
          "brand": "John Deere",
          "assets": [
            {
              "url": "https://johndeere.widen.net/content/xoqnizp1uj/webp/AM125424_iso1.webp",
              "type": "Image",
              "resolution": "original"
            }
          ],
          "pricing": {
            "ecommPrice": {
              "amount": "10.42",
              "currency": "USD"
            },
            "availability": "InStock"
          },
          "categories": [
            "Filters/EngineOilFilters"
          ],
          "description": "Oil Filter",
          "productType": "PARTS",
          "productTierLabel": "Original"
        }
      ],
      "totalResults": 7926
    },
    "status": "success"
  }
}

About the Deere API

Searching and Browsing Parts

The search_parts endpoint accepts a query string (keyword or part number) and returns paginated products arrays with code, name, description, assets, categories, and pricing objects. Results can be sorted by RELEVANCE, NAME_A_TO_Z, or NAME_Z_TO_A and filtered using the facets array returned alongside results — facets include model, category, and sub-category dimensions. get_parts_by_category provides the same response shape when browsing a known category slug, discoverable via get_parts_categories, which lists every top-level category with its name and slug.

Part Details and Pricing

get_part_details takes a part_number (e.g. AM125424) and returns the full part record: pricing.availability, pricing.ecommPrice, pricing.regularPrice, pricing.customerPrice, fulfillment details, category path strings, and a frequentlyBoughtTogether array of related product objects. If you only need recommendation data without the full detail payload, get_related_parts returns a relatedProducts array where each entry includes productCode, productName, productAssets, and a confidence score.

Equipment Model and Maintenance Lookups

get_parts_by_equipment_model accepts a model number (e.g. Z445) and returns a catalogs array — each entry has a pcNumber and title that identify the relevant parts catalog for that machine. search_parts_by_model takes the same model param plus an optional query keyword to narrow results to parts associated with that specific equipment. get_maintenance_kits is a dedicated endpoint for the maintenance kits category, returning paginated kit products with code, name, description, assets, and pricing.

Subcategory Discovery

get_subcategories accepts a category_id and returns the full facets array for that category — including name, code, and facetValues — useful for populating filter UIs or enumerating valid filter parameters before passing them to get_parts_by_category.

Reliability & maintenanceVerified

The Deere API is a managed, monitored endpoint for shop.deere.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when shop.deere.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 shop.deere.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
6d ago
Latest check
9/9 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 lookup tool that resolves a part number to current ecommPrice and customerPrice via get_part_details.
  • Populate a compatible-parts page by calling get_parts_by_equipment_model with a machine model to retrieve associated catalog pcNumber references.
  • Generate upsell recommendations in a checkout flow using frequentlyBoughtTogether from get_part_details or the confidence-scored relatedProducts from get_related_parts.
  • Sync a third-party inventory system with John Deere filter parts by paginating get_parts_by_category with the Filters category slug.
  • Surface maintenance kit options for a given machine by combining search_parts_by_model (model param) with get_maintenance_kits for category-level browsing.
  • Enumerate all top-level categories and their sub-facets using get_parts_categories followed by get_subcategories to build a navigable parts catalog tree.
  • Monitor price changes for a watchlist of part numbers by periodically calling get_part_details and comparing regularPrice against ecommPrice.
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 shop.deere.com have an official developer API?+
John Deere does offer developer APIs through its Operations Center platform at developer.deere.com, primarily focused on equipment telematics and agronomic data. That platform does not expose the public parts catalog search and pricing data that this API covers.
What pricing fields does `get_part_details` return, and how do they differ?+
get_part_details returns three price fields: regularPrice (the standard list price), ecommPrice (the online store price), and customerPrice (a potentially account-specific or promotional price). The pricing object also includes availability status and fulfillment details. get_related_parts and search_parts also include pricing objects within their product arrays.
Can I filter `search_parts` results by equipment model or category?+
The search_parts endpoint returns a facets array containing model, category, and sub-category dimensions alongside results. However, the endpoint inputs currently accept query, page, size, and sort — facet-based filtering is not a direct input parameter. You can use get_parts_by_category with a category slug, or search_parts_by_model to scope results to a specific model.
Does the API expose dealer location or in-store stock availability by ZIP code or region?+
Not currently. The API covers catalog-level availability and pricing fields (such as pricing.availability and fulfillment from get_part_details) but does not include dealer locator or per-store inventory by geography. You can fork the API on Parse and revise it to add that endpoint if dealer-level stock data is accessible on the site.
Are parts catalog PDFs or diagram images returned by any endpoint?+
The assets array on product objects contains image and media asset references for parts. Full illustrated parts diagram PDFs (the type found in printed John Deere PC-numbered catalogs) are not currently returned — the get_parts_by_equipment_model endpoint returns catalog pcNumber and title references but not diagram content. You can fork the API on Parse and revise it to add an endpoint that retrieves diagram assets if they are accessible via catalog PC numbers.
Page content last updated . Spec covers 9 endpoints from shop.deere.com.
Related APIs in AutomotiveSee all →
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.
menards.com API
Search Menards' complete product catalog across lumber, building materials, and all categories while viewing real-time pricing, sale prices, rebates, and final values. Browse by category or use search suggestions to find exactly what you need with full pricing transparency.
octopart.com API
Search electronic parts and get instant access to pricing, stock levels, and specs from multiple distributors in one place. Browse manufacturers and categories to compare availability and find the best deals on components you need.
shop.boeing.com API
Browse and search Boeing's online parts catalog. Retrieve product details, technical specifications, shipping attributes (hazmat, ITAR, ECCN), categories, brands, and suppliers for parts available on shop.boeing.com.
mcmaster.com API
Search McMaster-Carr's industrial supply catalog to discover products by category, view detailed listings with part numbers and prices, and apply filters to find exactly what you need. Look up specific part numbers to get complete product information and pricing in seconds.
dba.dk API
Search and retrieve detailed listings from Denmark's largest marketplace DBA.dk, including product information, pricing, and seller details across general goods and car categories. Browse marketplace categories, find specific items, and access comprehensive data on both regular listings and automotive inventory.
hagebau.de API
Browse Hagebau's complete product catalog, search across thousands of items by category and brand, and check real-time store availability for building materials and home improvement products. Access detailed product specifications, filter by brand, and discover what's in stock at your nearest location.
equipmenttrader.com API
Search and browse thousands of machinery listings with detailed pricing, specifications, and seller contact information. Find the right equipment for your needs by filtering inventory across Equipment Trader's marketplace.