SharkNinja APIsharkninja.com ↗
Access Shark and Ninja product data via 3 endpoints: search by keyword, retrieve full product details, and get typeahead suggestions with prices and images.
What is the SharkNinja API?
The SharkNinja API provides 3 endpoints for accessing product data from sharkninja.com, covering both Shark and Ninja branded appliances. Use search_products to query by keyword with pagination across the full catalog, get_product_details to retrieve specs, stock status, and images for a specific item, and get_search_suggestions for typeahead results that return product names, prices, and category matches in real time.
curl -X GET 'https://api.parse.bot/scraper/cc97431f-77b1-4bf8-8cb3-6b0acb337847/search_products?page=1&query=vacuum&page_size=8' \ -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 sharkninja-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: SharkNinja SDK — search products, drill into details, get suggestions."""
from parse_apis.sharkninja_product_search_api import SharkNinja, ProductNotFound
client = SharkNinja()
# Search for cordless vacuums — limit caps total items fetched across pages.
for product in client.productsummaries.search(query="cordless vacuum", limit=5):
print(product.name, product.brand, product.price, product.category)
# Drill into the first result's full details via the navigation op.
summary = client.productsummaries.search(query="blender", limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.sku, detail.price, detail.in_stock, detail.description[:80])
# Autocomplete suggestions for building a search UI.
suggestion = client.suggestions.get(query="robot")
print(suggestion.total_results)
for ps in suggestion.product_suggestions:
print(ps.name, ps.price, ps.url)
# Typed error handling when a PID doesn't exist.
try:
bad = client.productsummaries.search(query="NONEXIST999XYZ", limit=1).first()
if bad:
bad.details()
except ProductNotFound as exc:
print(f"Product not found: {exc.pid}")
print("exercised: productsummaries.search / details / suggestions.get / ProductNotFound")
Full-text search over the Shark and Ninja product catalog by keyword. Returns paginated product listings with name, price, brand, category, image, features, color variants, and badges. Pagination is page-based (1-indexed). Each result carries a pid suitable for fetching full details via get_product_details.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based). |
| query | string | Search keyword to match against product names and descriptions. |
| page_size | integer | Number of results per page (1-100). |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search keyword used",
"has_next": "boolean, whether more pages exist",
"products": "array of product summary objects with item_id, name, pid, price, brand, category, url, image, features, badge, color_variants",
"page_size": "integer, results per page",
"total_pages": "integer, total number of pages",
"total_results": "integer, total number of matching products"
},
"sample": {
"data": {
"page": 1,
"query": "vacuum",
"has_next": true,
"products": [
{
"pid": "IA3241-MASTER",
"url": "https://www.sharkninja.com/shark-powerdetect-speed-clean-empty---luxe-collection-sagewood/IA3246GN.html",
"name": "Shark PowerDetect Speed Clean & Empty System",
"badge": "Sale",
"brand": "Shark",
"image": "https://assets.sharkninja.com/image/example.json",
"model": "IA3246GN",
"price": null,
"item_id": "IA3241-MASTER",
"category": "Cordless Vacuums",
"currency": "USD",
"discount": 0,
"features": [
"Best debris cleaning",
"Auto-Empties & Charges"
],
"category2": "Vacuum Cleaners",
"category3": "Vacuums & Air Care",
"variant_id": "",
"product_type": "main",
"full_category": "home > vacuums & air care > vacuum cleaners > cordless vacuums",
"color_variants": [
"Oatstone",
"Harbor Slate",
"Sagewood"
],
"review_product_id": "IA3241-MASTER"
}
],
"page_size": 8,
"total_pages": 257,
"total_results": 2056
},
"status": "success"
}
}About the SharkNinja API
Searching the Catalog
The search_products endpoint accepts a query string (e.g., 'vacuum', 'air fryer', 'blender') and returns paginated results. Each product object in the products array includes item_id, name, price, brand, category, url, image, features, badge, and color_variants. Pagination is controlled via page and page_size (up to 100 per page), and the response includes total_results, total_pages, and a has_next boolean so you can walk through large result sets without guessing.
Product Details
get_product_details accepts either a product_url or a pid (product ID/SKU such as 'IX141' or 'RV2310AE'). Providing a product_url directly is the faster path; if only a pid is given, a catalog lookup is performed first. The returned product object includes item_id, name, sku, description, brand, images (array), price, currency, in_stock, category, and additional specification fields. The in_stock field makes this endpoint useful for availability monitoring.
Typeahead Suggestions
get_search_suggestions takes a single required query string and returns three structured arrays: phrase_suggestions (alternative search strings), product_suggestions (each with name, url, price, and image), and category_suggestions (each with name and url). The response also includes a total_results count for the query. This endpoint mirrors the autocomplete behavior on the SharkNinja website and is well suited for building search interfaces or discovery features.
Coverage Notes
The API covers the sharkninja.com US storefront and returns data for both the Shark and Ninja product lines across categories such as vacuums, air fryers, blenders, and kitchen appliances. All three endpoints return structured JSON with consistent field naming.
The SharkNinja API is a managed, monitored endpoint for sharkninja.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sharkninja.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 sharkninja.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?+
- Monitor in-stock status for specific Shark or Ninja SKUs using
get_product_detailsand thein_stockfield. - Build a product comparison tool by fetching full specs for multiple PIDs across vacuum and kitchen appliance categories.
- Power an autocomplete search bar using
get_search_suggestionsto surface relevant products, phrases, and categories. - Scrape paginated catalog data with
search_productsto track price changes across the Ninja air fryer or Shark robot vacuum lines. - Feed product
featuresandcolor_variantsarrays into a filtered browsing interface for Shark and Ninja appliances. - Aggregate category-level product counts using
total_resultsfrom search queries to map the breadth of each product line. - Enrich an affiliate product feed by pairing
item_id,price,image, andurlfields from search results.
| 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 SharkNinja offer an official developer API?+
What does `get_product_details` return beyond what `search_products` already includes?+
search_products returns a surface-level product object with name, price, brand, image, features, and color variants. get_product_details adds sku, a full description, an images array (typically multiple angles), in_stock status, currency, and additional specification fields not present in search results.Does the API return customer reviews or ratings for products?+
Is there a limit to how many results `search_products` can return per request?+
page_size parameter accepts a maximum of 100 results per page. For larger result sets, use the total_pages and has_next fields in the response to iterate through subsequent pages by incrementing the page parameter.