Fishersci APIfishersci.com ↗
Search Fisher Scientific's lab product catalog via API. Get product titles, catalog numbers, pricing, categories, and typeahead suggestions for 15 results per page.
What is the Fishersci API?
The Fisher Scientific API provides 2 endpoints for searching and discovering laboratory products from fishersci.com. The search_products endpoint returns paginated listings with up to 9 fields per product — including catalog number, price in cents, description, category, and image URL — while suggest_products delivers real-time typeahead results covering product names, brands, spelling corrections, and catalog number matches.
curl -X GET 'https://api.parse.bot/scraper/9c0a7a46-c7c5-4768-86ab-3ec5a168b585/search_products?page=1&limit=3&query=microscope&keyword=pipette&sort_by=price_asc' \ -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 fishersci-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.
"""Fisher Scientific product search — bounded, re-runnable walkthrough."""
from parse_apis.fisher_scientific_product_search_api import (
FisherScientific, Sort, ProductNotFound
)
client = FisherScientific()
# Search products by keyword with sort enum, capped at 5 total items.
for product in client.products.search(keyword="centrifuge", sort=Sort.RELEVANCE, limit=5):
print(product.title, product.price_cents, product.category)
# Drill down: get the first result from a price-sorted search.
cheapest = client.products.search(keyword="pipette", sort=Sort.PRICE_ASC, limit=1).first()
if cheapest:
print(cheapest.title, cheapest.catalog_number, cheapest.url)
# Typeahead suggestions for autocomplete — grab first few.
for suggestion in client.productsuggestions.suggest(term="beaker", limit=3):
print(suggestion.title, suggestion.brand, suggestion.catalog_number)
# Typed error handling: catch ProductNotFound for a nonsensical query.
try:
result = client.products.search(keyword="xyznonexistent99", limit=1).first()
if result:
print(result.title)
except ProductNotFound as exc:
print(f"Nothing found for: {exc.keyword}")
print("exercised: products.search / productsuggestions.suggest / Sort enum / ProductNotFound error")
Full-text search across Fisher Scientific's product catalog. Returns paginated product listings with title, catalog number, description, category, image, and pricing data. Results are paginated at 15 per page. Sort by relevance (default), ascending price, or descending price.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| keywordrequired | string | Search keyword (e.g., 'pipette', 'centrifuge', 'gloves') |
| sort_by | string | Sort order for results. |
{
"type": "object",
"fields": {
"page": "integer — current page number",
"keyword": "string — the search keyword used",
"sort_by": "string — sort order applied",
"products": "array of product objects with family_id, price_cents, child_part_numbers, title, catalog_number, url, description, category, image_url",
"page_size": "integer — results per page (always 15)",
"total_pages": "integer — total number of pages",
"total_results": "integer — total number of matching products"
},
"sample": {
"data": {
"page": 1,
"keyword": "pipette",
"sort_by": "score",
"products": [
{
"url": "https://www.fishersci.com/shop/products/fisherbrand-elite-adjustable-volume-pipetters-13/FBE05000",
"title": "Fisherbrand™ Elite™ Adjustable-Volume Pipettes",
"category": "Manual Single Channel Pipettes",
"family_id": "4249384",
"image_url": "https://assets.fishersci.com/TFS-Assets/CCG/product-images/F107059_p.eps-250.jpg",
"description": "Extremely low plunger forces work longer without fatigue and reduce the risk of RSI.",
"price_cents": 490,
"catalog_number": "FBE05000",
"child_part_numbers": [
"FBE00002",
"FBE00005",
"FBE00010"
]
}
],
"page_size": 15,
"total_pages": 964,
"total_results": 14458
},
"status": "success"
}
}About the Fishersci API
Product Search
The search_products endpoint accepts a required keyword parameter (e.g., 'pipette', 'centrifuge', 'gloves') and returns up to 15 products per page. Response objects include family_id, price_cents, child_part_numbers, title, catalog_number, url, description, category, and image. Use the page parameter (1-based) to iterate through results; total_pages and total_results are included in every response to support pagination logic. Results can be sorted by relevance (score), ascending price (price_asc), or descending price (price_desc) via the sort_by parameter.
Typeahead Suggestions
The suggest_products endpoint takes a single term input and returns five distinct suggestion arrays: product_suggestions (with title, catalog_number, brand, seo_keyword, and url), popular_terms (with suggestion and category_key), brand_suggestions, spell_suggestions, and catalog_number_matches (with catalog_number, title, and brand). This makes it useful for building search-as-you-type interfaces or quickly resolving a partial catalog number to its full product entry.
Data Coverage
Pricing is returned as price_cents (integer), avoiding floating-point ambiguity. Each product record links to its canonical Fisher Scientific URL and may carry child_part_numbers, useful when a family ID maps to multiple SKU variants — for example, different sizes or pack counts of the same item. Category data comes back as a string field, reflecting Fisher Scientific's internal product taxonomy.
The Fishersci API is a managed, monitored endpoint for fishersci.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fishersci.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 fishersci.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 lab procurement tool that compares Fisher Scientific prices across product families using
price_centsandchild_part_numbers. - Populate an autocomplete search box for laboratory supplies using
suggest_productswithbrand_suggestionsandpopular_terms. - Aggregate catalog numbers from
search_productsto cross-reference items against an internal LIMS or inventory system. - Monitor category-level product availability by paginating
search_productsresults and grouping by thecategoryfield. - Resolve partial catalog numbers to full product records using the
catalog_number_matchesarray fromsuggest_products. - Generate a curated product directory for a specific reagent type by iterating pages and filtering on
descriptioncontent. - Surface spelling corrections in a lab supply search interface using the
spell_suggestionsfield fromsuggest_products.
| 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 Fisher Scientific offer an official developer API?+
What does `search_products` return per product, and how does pagination work?+
family_id, price_cents, child_part_numbers, title, catalog_number, url, description, category, and image. The page size is fixed at 15. Use the page parameter (starting at 1) along with the total_pages value in the response to iterate through the full result set.Does the API return product reviews, ratings, or stock availability?+
Can I filter `search_products` results by category or brand?+
search_products endpoint accepts keyword and sort_by as filters; there is no dedicated category or brand filter parameter. To narrow by brand, include the brand name in the keyword string. The suggest_products endpoint does return brand_suggestions and popular_terms with category_key values, which can be used to inform keyword construction. You can fork the API on Parse and revise it to add explicit category or brand filter parameters.Is pricing data reliable for all products?+
price_cents when available, but Fisher Scientific displays some prices only after login or institutional account verification. Products in that category may return zero or null for price_cents. The API surfaces what is publicly visible without an authenticated session.