Makita Tools APImakitatools.com ↗
Access the Makita USA product catalog via API. Search tools, retrieve specs and features, list all active model numbers, and find local or online retailers.
What is the Makita Tools API?
The Makita Tools API covers 5 endpoints that expose the full Makita USA product catalog, including detailed specifications, key features, documents, and dealer locations. The get_product_details endpoint returns over a dozen distinct fields per model — from spec tables and feature lists to included accessories and video embeds — while get_active_model_numbers can enumerate roughly 6,400 active SKUs across the product line.
curl -X GET 'https://api.parse.bot/scraper/c7812a2f-0f86-4198-8e99-a3bd2897e88a/search_products?query=drill' \ -H 'X-API-Key: $PARSE_API_KEY'
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 makitatools-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.makita_tools_api import Makita, Product, ProductSummary, Dealer, Retailer
makita = Makita()
# Search for cordless drills
for product in makita.productsummaries.search(query="cordless drill"):
print(product.model_number, product.title)
# Drill into full details for the first match
full = product.details()
print(full.model_number, full.title)
for doc in full.documents:
print(doc.title, doc.url)
for spec_name, spec_value in full.specs.items():
print(spec_name, spec_value)
break
# Fetch a product directly by model number
product = makita.products.get(model_number="GPH03Z")
print(product.title, product.about)
for feat in product.key_features:
print(feat)
# List all active model numbers
for model in makita.modelnumbers.list(product_type=0):
print(model)
break
# Find nearby dealers
for dealer in makita.dealers.find_nearby(zip_code="10001", lat="40.7128", lon="-74.0060", radius=25):
print(dealer.name, dealer.address, dealer.city, dealer.state, dealer.distance)
break
# List online retailers
for retailer in makita.retailers.list():
print(retailer.name, retailer.website)
break
Full-text search across Makita's product catalog by keyword. Returns product summaries including model number, title, description, images, and status badges. Useful for discovering products before fetching full details. Results are not paginated; the full matching set is returned.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g., 'drill', 'saw', 'impact') |
{
"type": "object",
"fields": {
"total": "integer total number of matching products",
"products": "array of product summary objects with model_number, title, about, summary, status, images, url"
},
"sample": {
"data": {
"total": 1258,
"products": [
{
"url": "https://www.makitatools.com/products/details/GPH03Z",
"about": "The Makita 40V max XGT...",
"title": "40V max XGT Brushless Cordless 3-Speed 1/2\" Hammer Driver-Drill, Tool Only",
"images": [
"https://cdn.makitatools.com/apps/cms/img/gph/512406af-eea9-4944-b35e-8aa23f21f227_gph03z_p_500px.png"
],
"status": [],
"summary": "Premium Power delivers 1,590 in.lbs. of max torque",
"model_number": "GPH03Z"
}
]
},
"status": "success"
}
}About the Makita Tools API
Product Search and Detail
The search_products endpoint accepts a keyword string (e.g., drill, impact, saw) and returns an array of product summary objects. Each object includes model_number, title, about, summary, status badges (such as New), image URLs, and a direct url to the product page. The total field tells you how many matches exist without needing to paginate manually.
For deeper data, get_product_details takes a model_number string and returns the full product record: a specs object of name-value pairs, a features array, an includes list of bundled items, documents array with title and URL for each PDF (manuals, spec sheets), videos array of embed URLs, and a short take_away tagline. This is the endpoint to use when building comparison tables or populating a product database.
Model Enumeration
get_active_model_numbers returns a flat array of model number strings, optionally filtered by product_type integer. Passing 0 returns all active models (~6,400); passing 1 narrows to cordless and power tools (~4,400). This makes it straightforward to build a full catalog index or detect new SKUs over time by diffing runs.
Dealer and Retailer Lookup
find_local_dealers locates authorized Makita dealers near a given point. Supplying both lat and lon alongside a required zip_code produces the most accurate results; using ZIP code alone may return empty results. Each dealer record includes Name, Address1, City, State, Zip, Phone, Distance, and ToolType. get_online_retailers requires no inputs and returns a flat list of authorized online retailers with Name and Website fields.
The Makita Tools API is a managed, monitored endpoint for makitatools.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when makitatools.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 makitatools.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a Makita product comparison tool using
specsandfeaturesfromget_product_details - Index the full Makita catalog by iterating all ~6,400 model numbers from
get_active_model_numbers - Power a tool-finder app that lets users search by keyword via
search_productsand surface matching models - Generate a dealer locator map by querying
find_local_dealerswith latitude, longitude, and ZIP code - Populate an e-commerce affiliate page with product images, descriptions, and authorized retailer links from
get_online_retailers - Track new product launches by monitoring
statusbadge changes (e.g.,New) across catalog entries - Download all available product manuals and spec sheets by extracting
documentsarrays from each model record
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does Makita offer an official public developer API?+
What does `get_product_details` return beyond basic product info?+
specs object (name-value pairs for all listed specifications), a features array, an includes list of accessories bundled with the tool, a documents array with downloadable PDF titles and URLs, a videos array of embed URLs, and a take_away tagline. Status badges like New are returned in the status array.Does `find_local_dealers` work with a ZIP code alone?+
lat and lon alongside the ZIP code is strongly recommended for reliable results. The radius field lets you adjust the search distance in miles.