Product API v1
Free, read-only JSON access to our full catalog — every product, price, availability and standardized specification. No API key required. CORS-enabled for browser use.
Base URL: https://materialhandling.com/api/v1 · Responses cached 5 minutes ·
Specifications are manufacturer-published data from our typed attribute engine — never AI-generated.
Endpoints
| Endpoint | Description |
|---|---|
GET /api/v1/products | List products with filtering, search and pagination |
GET /api/v1/products/{sku} | Single product by SKU (or slug / numeric id) with full specs, images and verified compatibility |
GET /api/v1/categories | Full category tree with product counts and ready-made API links |
GET /api/v1/attributes | The attribute registry: every filterable spec, its unit and datatype |
List products
GET https://materialhandling.com/api/v1/products?category=lift-tables&f_load-capacity-lbs=2000:&instock=1&per_page=24&page=1
| Parameter | Type | Description |
|---|---|---|
category | path or id | Category path (lift-tables/electric-lift-tables) or numeric id. Includes all descendant categories. |
q | string | Full-text search with industry synonym expansion ("pump truck" finds pallet jacks). |
brand | slug | Brand slug, e.g. vestil. |
f_{attribute} | filter | Typed spec filter — see filter grammar. Up to 6 per request. |
instock | 0/1 | Only in-stock products. |
min_price / max_price | dollars | Price bounds in USD. |
sort | enum | featured (default), price-asc, price-desc, name, rating. |
page / per_page | int | Pagination — per_page max 100, default 24. |
Response shape
{
"page": 1, "per_page": 24, "total": 245, "total_pages": 11,
"filters_applied": { "category": "lift-tables", "attributes": [{ "slug": "load-capacity-lbs", "min": 2000, "max": null }] },
"products": [{
"id": 5892, "sku": "EHLT-4884-2-67",
"name": "EHLT-4884-2-67 ELECTRIC HYDRAULIC LIFT TABLE 2K 48X84",
"brand": "Vestil",
"url": "https://materialhandling.com/lift-tables/electric-lift-tables/ehlt-4884-2-67-electric-hydraulic-lift-table-2k-48x84/",
"image": "https://materialhandling.com/img/wp-content/uploads/2025/01/EHLT-4884-2-67.jpg",
"price": 6979.12, "regular_price": 6979.12, "on_sale": false, "currency": "USD",
"unit": "Each", "availability": "in_stock", "lead_time_days": 45,
"rating": null, "category": "/lift-tables/"
}]
}
Filter grammar (shared with the website)
Every f_{slug} parameter works identically on the JSON API and the HTML category pages, so
any filtered API query has an equivalent shareable storefront URL and vice versa.
| Form | Meaning | Example |
|---|---|---|
f_{slug}={value} | Text attribute equals value | f_material=Steel |
f_{slug}={min}:{max} | Numeric range (inclusive min, exclusive max) | f_load-capacity-lbs=2000:5000 |
f_{slug}={min}: | Open-ended minimum | f_raised-height-in=40: |
f_{slug}=:{max} | Open-ended maximum | f_lowered-height-in=:8 |
Discover every available slug, its unit and datatype at /api/v1/attributes —
389 standardized attributes including load-capacity-lbs, fork-length-in, platform-width-in,
power-type, material and osha.
Single product
GET https://materialhandling.com/api/v1/products/EHLT-4884-2-67
Accepts a SKU, URL slug or numeric id. Returns everything in the list shape plus gtin, mpn,
all images, the complete specifications array (slug, name, value, numeric_value, unit) and
compatible_products — verified accessory/replacement-part links only, sourced from manufacturer manuals
and verified imports, never inferred.
Copy-paste examples
Electric lift tables rated ≥ 2,000 lbs, in stock, cheapest first
curl "https://materialhandling.com/api/v1/products?category=lift-tables/electric-lift-tables&f_load-capacity-lbs=2000:&f_power-type=Electric&instock=1&sort=price-asc"
48-inch-fork pallet jacks for 3,500 lb pallets
curl "https://materialhandling.com/api/v1/products?category=pallet-jack&f_fork-length-in=48:&f_load-capacity-lbs=4500:"
Natural-language search with synonym expansion
curl "https://materialhandling.com/api/v1/products?q=pump+truck&per_page=5"
Full category tree
curl "https://materialhandling.com/api/v1/categories"
Usage notes
- Rate limits: fair use — cache responses and use
per_pageup to 100 for bulk reads. Contact [email protected] for feed access or authenticated pricing. - Prices are list prices in USD; volume and contract pricing is available by quote.
- Stability: v1 is additive-only — fields may be added, never removed or renamed. Breaking changes will ship as
/api/v2. - Selection tools: our sizing calculators are built on the same filter grammar — a good reference for building your own.