Darby Dental APIdarbydental.com ↗
Access Darby Dental's product catalog via API. Search products, browse categories, list manufacturers, and retrieve full product details with SKU, stock status, and variants.
What is the Darby Dental API?
The Darby Dental API exposes 8 endpoints for querying the darbydental.com product catalog, covering search, category browsing, manufacturer listings, and individual product detail retrieval. The get_product_details endpoint returns up to 10 distinct fields per product including variants, features, images, and stock status. Use search_products to run keyword queries with full pagination, or get_products_by_manufacturer to filter the catalog by a specific brand like 3M.
curl -X GET 'https://api.parse.bot/scraper/13558d7a-daf7-4ff4-91b7-d5043cab2250/search_products?page=1&query=gloves' \ -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 darbydental-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.
"""Walkthrough: Darby Dental SDK — search products, browse manufacturers and categories."""
from parse_apis.darby_dental_api import DarbyDental, Product, ProductSummary, Manufacturer, Category, PopularProduct, ItemNotFound
client = DarbyDental()
# Search for dental products by keyword
for item in client.productsummaries.search(query="composite", limit=3):
print(item.name, item.sku, item.stock_status)
# Drill into full product details from a search result
product = client.productsummaries.search(query="gloves", limit=1).first()
if product:
detail = product.details()
print(detail.name, detail.manufacturer, detail.stock_status)
print("Features:", detail.features)
print("Variants:", len(detail.variants))
# Browse a manufacturer's products using constructible navigation
mfr = client.manufacturer(name="3M")
for p in mfr.products(limit=3):
print(p.name, p.sku, p.stock_status)
# List categories and browse a category's products
cat = client.categories.list(limit=1).first()
if cat:
print(cat.name, cat.product_count)
for p in cat.products(limit=2):
print(p.name, p.sku)
# Typed error handling for a non-existent product
try:
bad = client.productsummaries.search(query="gloves", limit=1).first()
if bad:
bad._data['sku'] = "0000000-99"
bad.details()
except ItemNotFound as exc:
print(f"Product not found: {exc}")
# Popular homepage products
for pop in client.popularproducts.list(limit=5):
print(pop.name, pop.manufacturer)
print("exercised: search / details / manufacturer.products / categories.list / category.products / popularproducts.list")
Full-text search over the Darby Dental product catalog. Returns paginated results matching the query keyword against product names and descriptions. Each result includes SKU, stock status, and image URL. Paginates via integer page number with 36 results per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| queryrequired | string | Search keyword to match against product names and descriptions |
{
"type": "object",
"fields": {
"page": "integer current page number",
"query": "string the search query used",
"products": "array of product objects with name, sku, url, image_url, stock_status",
"page_size": "integer number of results per page",
"total_pages": "integer total number of pages",
"total_results": "integer total number of matching products"
},
"sample": {
"data": {
"page": 1,
"query": "gloves",
"products": [
{
"sku": "5253596-01",
"url": "https://www.darbydental.com/5253596-01.html",
"name": "Nitrile Utility Gloves",
"image_url": "https://www.darbydental.com/media/catalog/product/5/2/525359601_01_1.jpeg?optimize=medium&bg-color=255,255,255&fit=bounds&height=&width=",
"stock_status": "IN_STOCK"
}
],
"page_size": 36,
"total_pages": 17,
"total_results": 608
},
"status": "success"
}
}About the Darby Dental API
Product Search and Detail
The search_products endpoint accepts a query string and an optional page integer, returning a paginated list of matching products. Each result includes name, sku, url, image_url, and stock_status, along with total_results and total_pages for navigating large result sets. For a full product record, pass an item_number to get_product_details — note that the endpoint automatically appends a -01 suffix when no dash is present in the input. The response includes description, features (an array of strings), variants (each with its own sku and stock_status), manufacturer, categories, and multiple images.
Browsing by Category and Manufacturer
get_categories returns the full category tree with name, id, url, product_count, and nested subcategories. Pass any matching category name to get_products_by_category to list products within it, paginated via the page parameter. Similarly, get_all_manufacturers returns every brand on the site with brand_id, letter, product_count, and image_url — the manufacturer name from that list feeds directly into get_products_by_manufacturer for brand-scoped browsing.
Homepage and Promotional Products
get_popular_products returns the featured products shown on the Darby Dental homepage, each with name, sku, manufacturer, url, and image_url — useful for tracking what the site surfaces as current top picks. get_promotional_products is also available with pagination, but the endpoint notes that promotions may require login on the live site, so the products array may return empty in some cases.
SKU Handling and Manufacturer Matching
Both get_products_by_manufacturer and get_products_by_category require inputs that exactly match values returned by get_all_manufacturers and get_categories respectively. Running those discovery endpoints first is the correct pattern before filtering by brand or category. SKUs returned across all endpoints follow Darby's standard format (e.g., 5256735-01), making them consistent for cross-referencing between search results and detail lookups.
The Darby Dental API is a managed, monitored endpoint for darbydental.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when darbydental.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 darbydental.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 dental supply price-tracking tool using SKUs from
search_productsfed intoget_product_detailsfor stock status and variant data. - Populate a procurement catalog by iterating
get_categoriessubcategories and pulling products viaget_products_by_category. - Monitor a specific brand's product availability by listing all items via
get_products_by_manufacturerand checkingstock_statusper product. - Index the full manufacturer directory using
get_all_manufacturersto mapbrand_id,product_count, and brand images. - Surface featured product recommendations by polling
get_popular_productsand displaying the returnedname,manufacturer, andimage_url. - Sync a dental office ordering system by resolving product
variantsand their individual SKUs fromget_product_details. - Audit category coverage by comparing
product_countfields fromget_categoriesagainst actual paginated results fromget_products_by_category.
| 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 Darby Dental have an official public developer API?+
What does `get_product_details` return and how should the item number be formatted?+
get_product_details returns name, sku, url, description, manufacturer, stock_status, an images array, a features array, a variants array (each variant has its own sku and stock_status), and a categories array. If you pass an item number without a dash (e.g., 525673501), the endpoint appends -01 automatically. If a dash is already present (e.g., 5256735-01), the input is used as-is.Are promotional product listings reliably available?+
get_promotional_products endpoint notes that promotions on darbydental.com may require a logged-in session. When that is the case, the products array will return empty. The API covers all non-login-gated catalog data including search, categories, manufacturers, and product details.Does the API return pricing information for products?+
name, sku, stock_status, variants, features, and related catalog metadata, but no price field is exposed. You can fork this API on Parse and revise it to add a pricing endpoint if darbydental.com surfaces prices without a login requirement.