Discover/Mcmaster API
live

Mcmaster APImcmaster.com

Search McMaster-Carr's industrial catalog via API. Get part numbers, prices, specs, filter options, and autocomplete suggestions across millions of products.

Endpoint health
verified 5h ago
get_product_filters
search_suggest
search_products
get_product_detail
get_part_number
3/5 passing latest checkself-healing
Endpoints
5
Updated
22d ago

What is the Mcmaster API?

The McMaster-Carr API provides 5 endpoints for querying McMaster-Carr's industrial supply catalog, returning part numbers, prices, specs, and category filters. The search_products endpoint maps a free-text query to organized category tiles and navigation IDs, which you can then pass to get_product_detail to retrieve individual products with prices and technical specs, or to get_product_filters to surface attribute-level facets like thread size, material, and length.

Try it
Max number of suggestions to return
Search query text (partial or full)
api.parse.bot/scraper/56275657-6d7f-4930-b070-9129c4e412a8/<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/56275657-6d7f-4930-b070-9129c4e412a8/search_suggest?count=5&query=bolts' \
  -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 mcmaster-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.mcmaster_carr_search_api import McMaster, Suggestion, SearchResult, Category, ProductFamily, Product, Filter, FilterValue, PartLookup

mcmaster = McMaster()

# Search for autocomplete suggestions
for suggestion in mcmaster.suggestions.search(query="bolts", count=5):
    print(suggestion.name, suggestion.rank, suggestion.is_part_number)

# Search catalog for product categories
result = mcmaster.searchresults.search(query="o-rings")
print(result.search_result_id, result.total_categories)

# Browse categories from the search result
for category in result.categories:
    print(category.title, category.tile_type, category.product_outline_entry_id)

# Get product families within a category
first_category = result.categories[0]
for family in first_category.families(search_result_id=result.search_result_id):
    print(family.title, family.product_set_id)

# Get individual products from a product family
family = mcmaster.productfamily(product_set_id="1230802104037")
for product in family.products(search_result_id=result.search_result_id, product_outline_entry_id="10000001449376"):
    print(product.part_number, product.price, product.url)

# Get filter options for a category
for filt in first_category.filters(search_result_id=result.search_result_id):
    print(filt.name, filt.is_numeric)
    for val in filt.values:
        print(val.name, val.product_count)

# Look up a specific part number
part = mcmaster.partlookups.get(part_number="92620A401")
print(part.found, part.catalog_status, part.catalog_page, part.parent_part)
All endpoints · 5 totalmissing one? ·

Get search autocomplete suggestions for a query. Returns ranked suggestions with images, useful for building search UIs or discovering product terms. Each suggestion includes a popularity rank and whether it matches a part number.

Input
ParamTypeDescription
countintegerMax number of suggestions to return
queryrequiredstringSearch query text (partial or full)
Response
{
  "type": "object",
  "fields": {
    "query": "string - the original search query",
    "total": "integer - number of suggestions returned",
    "suggestions": "array of suggestion objects with name, rank, is_part_number, and optional image_url"
  },
  "sample": {
    "data": {
      "query": "bolts",
      "total": 10,
      "suggestions": [
        {
          "name": "bolts",
          "rank": 564324,
          "image_url": "https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/913/91309a540p1-b01-digital@300p_637026952995155778.png",
          "is_part_number": false
        },
        {
          "name": "long bolts",
          "rank": 14042,
          "image_url": "https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/913/91309a540p1-b01-digital@300p_637026952995155778.png",
          "is_part_number": false
        }
      ]
    },
    "status": "success"
  }
}

About the Mcmaster API

Search and Category Navigation

The search_products endpoint accepts a plain-text query (e.g., 'ball bearings', 'hex bolts') and returns an array of category objects, each carrying a category_group, title, tile_type, and either a product_outline_entry_id or product_family_id. These IDs are the entry point for all downstream product calls. The response also includes a search_result_id that must be threaded through to get_product_detail and get_product_filters. A complementary search_suggest endpoint returns ranked autocomplete suggestions — each with a name, rank, is_part_number flag, and an optional image_url — useful for type-ahead search UIs or term discovery.

Product Detail Retrieval

get_product_detail operates in two modes. Without a product_set_id, it returns a list of product families (product_families array) each with a title, product_set_id, presentation_id, and href. Passing a product_set_id from that first call shifts the response to individual products, where each entry carries a part_number, url, price, and specs object. The endpoint echoes back search_result_id, product_outline_entry_id, and product_set_id for traceability across paginated or chained workflows.

Filters and Part Lookup

get_product_filters returns structured facet data for a given category: each filter object includes an id, human-readable name, an is_numeric flag, and a values array where each value carries its own id, name, product_count, and is_selected state. This is suitable for building a filterable product browser or narrowing result sets programmatically. For direct part validation, get_part_number accepts any McMaster part number string and returns found, discontinued, catalog_status ('Current' or 'Discontinued'), catalog_page, parent_part, and a direct url to the product listing.

Reliability & maintenanceVerified

The Mcmaster API is a managed, monitored endpoint for mcmaster.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mcmaster.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 mcmaster.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
5h ago
Latest check
3/5 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 filterable parts selector using get_product_filters to expose attributes like thread size, material, and length
  • Validate supplier BOMs by running each line item through get_part_number to check found and discontinued status
  • Populate a type-ahead search field using search_suggest results with thumbnail images from image_url
  • Monitor price changes on specific product families by periodically calling get_product_detail with a product_set_id
  • Discover related product categories for a search term using the category_group and title fields from search_products
  • Map internal part references to McMaster catalog pages using the catalog_page field returned by get_part_number
  • Aggregate spec data across a product family for comparison tables using the specs fields from individual product objects
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 McMaster-Carr have an official developer API?+
McMaster-Carr does not publish a public developer API or offer documented API access for third-party developers. This Parse API provides structured access to catalog data that McMaster-Carr does not expose through an official programmatic interface.
What does `get_part_number` return beyond confirming a part exists?+
It returns found (boolean), discontinued (boolean), catalog_status ('Current' or 'Discontinued'), catalog_page (the printed catalog page reference), parent_part (the part family the number belongs to), and a direct url to that part's listing on mcmaster.com.
Does the API return customer reviews or product ratings?+
Not currently. The API covers part numbers, prices, specs, category filters, and catalog status. McMaster-Carr does not display user reviews on its product pages, so this data does not exist in the source. If you need to extend coverage for adjacent data (such as technical documents or CAD availability flags), you can fork the API on Parse and revise it to add the missing endpoint.
Does `search_products` return paginated results or all categories at once?+
The search_products response includes a total_categories count and returns category tiles in a single response. Pagination within a category is handled downstream by calling get_product_detail with a product_set_id; the response includes product_count and total_products to indicate how many items exist in that set.
Is inventory availability or stock status included in product responses?+
Not currently. Product responses from get_product_detail include part_number, price, and specs, but do not include real-time stock levels or availability dates. The discontinued flag from get_part_number is the closest indicator of availability status. You can fork the API on Parse and revise it to add an endpoint targeting that data if McMaster surfaces it.
Page content last updated . Spec covers 5 endpoints from mcmaster.com.
Related APIs in EcommerceSee all →
motion.com API
Search and browse Motion's product catalog to find industrial parts, specifications, and pricing, then locate nearby distributors or find substitute products. Get instant autocomplete suggestions and retrieve detailed product information by searching, category browsing, or manufacturer part numbers.
mouser.com API
mouser.com API
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.
mann-filter.com API
Search and explore MANN-FILTER's complete product catalog to find filter specifications, vehicle compatibility information, cross-references, and product images. Discover new products and retrieve information on discontinued items.
grainger.com API
grainger.com API
macys.com API
Browse Macy's product catalog by navigating categories, searching for items, and viewing detailed product information all in one place. Discover products across different categories and get comprehensive details to help you find exactly what you're looking for.
fishersci.com API
Search and discover laboratory products from Fisher Scientific's catalog with real-time results and typeahead suggestions. Find exactly what you need with paginated product listings to browse their full inventory of lab supplies and equipment.
cityelectricsupply.com API
Search and browse City Electric Supply's product catalog across categories, view detailed product information with localized pricing and inventory based on a ZIP code, and manage a shopping cart. Access product details and real-time stock availability for any area.