keh.com APIwww.keh.com ↗
Search KEH.com's used camera inventory via API. Filter by brand, grade, price, and category. Returns pricing, availability, and condition grades.
curl -X GET 'https://api.parse.bot/scraper/665fddb5-5793-4f04-b3cf-87b1b256054d/search_products?sort=min_price+asc&brand=Nikon&query=nikon&page_size=3' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for used cameras, lenses, and photography equipment. Supports filtering by brand, grade, product type, price range, and sorting options. Returns paginated results with product details including pricing, condition grades, and availability.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| sort | string | Sort order. Accepted values: 'min_price asc' (Price Low-High), 'min_price desc' (Price High-Low), 'title asc' (Name A-Z), 'title desc' (Name Z-A), 'pid desc' (Newest). Omit for relevance sorting. |
| brand | string | Filter by brand name (e.g., 'Canon', 'Nikon', 'Sony', 'Leica', 'Fuji') |
| grade | string | Filter by condition grade (e.g., 'Like New', 'Like New Minus', 'Excellent Plus', 'Excellent', 'Bargain', 'Ugly') |
| query | string | Search keyword (e.g., 'camera', 'mirrorless camera', 'canon lens', 'nikon') |
| category | string | Category ID to browse (e.g., '8258' for Used Cameras, '8226' for Used Camera Lenses). When provided, overrides keyword search. |
| max_price | string | Maximum price filter in USD |
| min_price | string | Minimum price filter in USD |
| page_size | integer | Number of results per page (1-100) |
| product_type | string | Filter by product type (e.g., 'Bodies', 'Fixed-Lens Cameras', 'Point & Shoots', 'Fixed Focal Length Lenses, Mfg') |
| in_stock_only | string | Filter to in-stock items only. Accepted values: 'true', 'false'. |
{
"type": "object",
"fields": {
"page": "integer - current page number",
"query": "string - the search query or category ID used",
"products": "array of product objects with id, title, url, image, image_webp, min_price, max_price, quantity_available, manufacturer, grades, product_type, system, lens_type, film_type, badges, specials",
"page_size": "integer - results per page",
"total_pages": "integer - total number of pages",
"total_results": "integer - total matching products"
},
"sample": {
"data": {
"page": 1,
"query": "nikon",
"products": [
{
"id": "353091",
"url": "https://www.keh.com/shop/nikon-d800-36-3-megapixel-digital-slr-camera-body-only-black.html",
"image": "https://cgi.keh.com/media/catalog/product/3/5/353091-2382706_01_r370x.jpg",
"title": "Nikon D800 DSLR Camera Body {36.3MP}",
"badges": [
"Savings1"
],
"grades": [
"Excellent",
"Excellent Plus"
],
"system": "Nikon Digital",
"specials": [
"Best Sellers",
"Featured Products",
"Overstock",
"Savings1"
],
"film_type": [],
"lens_type": [],
"max_price": 572,
"min_price": 512,
"image_webp": "https://cgi.keh.com/media/catalog/product/3/5/353091-2382706_01_r370x.webp",
"manufacturer": "Nikon",
"product_type": "Bodies",
"quantity_available": 159
}
],
"page_size": 3,
"total_pages": 292,
"total_results": 874
},
"status": "success"
}
}About the keh.com API
The KEH Camera API provides 2 endpoints for searching and browsing KEH's used photography equipment inventory. The search_products endpoint returns paginated product listings with up to 9 fields per item — including condition grade, price range, manufacturer, and stock quantity — while the suggest endpoint delivers query, product, and category autocomplete suggestions for a given partial search term.
Search Products
The search_products endpoint accepts a query string alongside a full set of filters: brand (e.g., Canon, Nikon, Leica), grade (e.g., Like New, Excellent Plus, Bargain), min_price and max_price in USD, and a category ID to browse specific sections of the catalog such as Used Cameras (8258) or Used Camera Lenses (8226). When category is supplied, it overrides keyword-based query matching. Results are sorted via the sort parameter — options include min_price asc, min_price desc, and title asc — and paginated with page, page_size, total_pages, and total_results fields in every response.
Product Response Shape
Each item in the products array includes id, title, url, image, image_webp, min_price, max_price, quantity_available, manufacturer, and grades. The grades field reflects KEH's condition grading system, which ranges from Like New down to Bargain and Ugly, giving you the full spread of available conditions for a given item rather than a single rolled-up state.
Autocomplete Suggestions
The suggest endpoint takes a partial query string and returns three typed suggestion arrays: query_suggestions (search term strings), product_suggestions (with id, title, url, image, min_price, max_price, and in_stock), and category_suggestions (with name and id). This makes it straightforward to build a type-ahead search interface that surfaces both matching products and relevant catalog categories before a full search is issued.
- Track price movements on specific used camera bodies across KEH's inventory by polling
search_productswith aqueryand recordingmin_price/max_priceover time. - Build a used gear price comparison tool by querying the same lens model across multiple
brandfilters and comparing returnedmin_pricevalues. - Populate a type-ahead search bar for a photography marketplace using
suggestwith partial brand or model strings. - Alert users when a specific condition grade (e.g.,
Like New) becomes available for a searched item by monitoringquantity_availableinsearch_productsresults. - Browse KEH's full category tree programmatically by supplying known
categoryIDs and paginating through results usingtotal_pages. - Filter used equipment by budget by combining
min_priceandmax_priceparameters to surface only gear within a target spend range. - Aggregate inventory counts across brands by iterating
brandvalues and summingtotal_resultsfor each.
| 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 | 250 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 KEH Camera have an official developer API?+
What condition grades does `search_products` support for filtering?+
grade parameter accepts values from KEH's own grading scale: Like New, Like New Minus, Excellent Plus, Excellent, Bargain, and Ugly. Each product in the response also returns a grades field listing all condition tiers currently in stock for that item, so you can see the full availability spread rather than a single grade.Does the API return individual product detail pages or seller information?+
How does pagination work in `search_products`?+
page (current page, 1-based), page_size (results per page), total_pages, and total_results. Increment the page parameter to walk through subsequent result pages. There is no cursor-based pagination; only integer page numbers are supported.