Discover/RobotShop API
live

RobotShop APIrobotshop.com ↗

Search the RobotShop catalog via API. Get SKU, title, price, compare-at price, currency, availability, and image URL for up to 30 products per query.

Endpoint health
verified 2h ago
search_products
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

What is the RobotShop API?

The RobotShop API exposes one endpoint — search_products — that queries the robotshop.com catalog and returns up to 30 matching products per call, each carrying 7 structured fields: SKU, title, price, compare-at price, currency, product URL, and image URL. The response also includes pagination metadata so callers can determine total result counts and available pages for any given search term.

This call costs5 credits / call— charged only on success
Try it
Free-text search term, e.g. a product type, brand or part name. Must be non-empty.
→ api.parse.bot/scraper/6e677f75-f1c6-4f1a-ad3f-8d75918b500f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/6e677f75-f1c6-4f1a-ad3f-8d75918b500f/search_products?query=arduino' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 robotshop-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: RobotShop Product Search — find products and inspect results."""
from parse_apis.robotshop_com_api import RobotShop, InputFormatInvalid

client = RobotShop()

# Search for Arduino products and inspect catalog metadata.
try:
    result = client.products.search(query="arduino")
except InputFormatInvalid:
    print("Invalid search query")
    raise

print(f"Found {result.total_results} products across {result.total_pages} pages")

# Browse the first-page results: price, rating, and availability.
for product in result.products:
    on_sale = " [SALE]" if product.is_on_sale else ""
    print(f"{product.sku}: {product.title} — ${product.price}{on_sale}  ⭐{product.rating} ({product.reviews_count} reviews)")

# Drill into a single product for detailed availability flags.
if result.products:
    top = result.products[0]
    print(f"\nTop result: {top.title}")
    print(f"  Brand: {top.brand}")
    print(f"  Price: {top.price} {top.currency} (compare at {top.compare_at_price})")
    print(f"  In stock: {top.inventory} units, back-orderable: {top.can_be_back_ordered}")
    print(f"  URL: {top.product_url}")

print("\nexercised: products.search")
All endpoints · 1 totalmissing one? ·

Searches the RobotShop catalog for products matching a free-text query and returns the first page of results (up to 30 products, the site's own page size, in the site's relevance order). Each row is one product: SKU, title, price and compare-at price in the storefront currency (read from the site; USD on the US storefront), product and image URLs, average rating (0.0 when unrated) with review count, brand, stock quantity and availability flags. The site does not expose seller name, minimum order quantity or seller location on search results, so those are not returned. total_results is the site's reported match count and total_pages the number of result pages the site exposes for the query; this endpoint only returns the first page. A query with no matches returns an empty products array with total_results 0. Three upstream round trips per call.

Input
ParamTypeDescription
queryrequiredstringFree-text search term, e.g. a product type, brand or part name. Must be non-empty.
Response
{
  "type": "object",
  "fields": {
    "query": "the search term that was executed",
    "products": "array of product rows from the first results page, each with sku, title, price, compare_at_price, currency, product_url, image_url, rating, reviews_count, brand, inventory, is_on_sale, is_discontinued, can_be_back_ordered, is_pre_order",
    "page_size": "integer, maximum products per page (30)",
    "total_pages": "integer, number of result pages the site exposes for this query",
    "total_results": "integer, total matching products reported by the site"
  },
  "sample": {
    "data": {
      "query": "arduino",
      "products": [
        {
          "sku": "RB-Ard-34",
          "brand": "Arduino",
          "price": 29.44,
          "title": "Arduino Uno R3 USB Microcontroller",
          "rating": 4.95,
          "currency": "USD",
          "image_url": "https://cdn.robotshop.com/media/a/ard/rb-ard-34/img/thumbnail/arduino-uno-r3-usb-microcontroller-01_300px.webp",
          "inventory": 34,
          "is_on_sale": false,
          "product_url": "https://www.robotshop.com/products/arduino-uno-r3-usb-microcontroller",
          "is_pre_order": false,
          "reviews_count": 122,
          "is_discontinued": false,
          "compare_at_price": 29.44,
          "can_be_back_ordered": true
        }
      ],
      "page_size": 30,
      "total_pages": 34,
      "total_results": 1737
    },
    "status": "success"
  }
}

About the RobotShop API

What the API returns

The search_products endpoint accepts a single required query parameter — a free-text string such as a product type ("wheeled robot"), a brand name, or a part number — and returns the first page of results in the site's own relevance order. Each product object in the products array contains sku, title, price, compare_at_price, currency, product_url, and image_url. The compare_at_price field reflects any original/list price the storefront shows alongside a sale price, making it straightforward to detect discounted items.

Pagination metadata

Beyond the product rows themselves, the response includes three pagination fields: page_size (fixed at 30, the site's own page size), total_results (the total count of matching products reported by the site for the query), and total_pages (how many pages exist for that result set). These fields let callers gauge coverage for a query without issuing additional requests, though the endpoint itself returns only the first page.

Coverage and scope

RobotShop stocks robotics hardware, electronics, and STEM kits. The API's search covers that full catalog — consumer robots, drone components, sensors, actuators, and related accessories. Prices are returned in the storefront currency indicated by the currency field, so callers working across regions should note which currency code appears in responses.

Reliability & maintenanceVerified

The RobotShop API is a managed, monitored endpoint for robotshop.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when robotshop.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 robotshop.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.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track price drops by comparing price against compare_at_price for a set of saved SKUs
  • Build a robotics parts comparison tool that surfaces product titles, images, and prices from a single query
  • Monitor RobotShop catalog coverage for a specific brand by querying the brand name and reading total_results
  • Populate an affiliate product feed with product_url and image_url for robotics content sites
  • Identify sale items programmatically by flagging records where compare_at_price exceeds price
  • Research SKU availability across product categories by querying different part-type terms
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does RobotShop have an official developer API?+
RobotShop does not publish a public developer API for catalog access. This Parse API provides structured product data from the robotshop.com storefront.
What does the `compare_at_price` field represent?+
It reflects the original or list price shown alongside a promotional price on the product listing. When compare_at_price is higher than price, the item is on sale. When they are equal or compare_at_price is absent, no discount is being advertised.
Can I retrieve product reviews or detailed specifications through this API?+
Not currently. The API returns SKU, title, price, compare-at price, currency, product URL, and image URL. Review scores, spec tables, and stock counts are not included in the current response shape. You can fork this API on Parse and revise it to add those fields as a separate endpoint.
Can I retrieve results beyond the first page?+
The search_products endpoint returns only the first page of results (up to 30 products). The total_pages and total_results fields tell you how much more exists for a query. You can fork this API on Parse and revise it to accept a page parameter and fetch subsequent pages.
How fresh is the pricing data?+
Each API call reflects the product listings on robotshop.com at the time of the request. There is no caching layer that would return stale prices from a previous call, but RobotShop itself may update prices at any interval, so time-sensitive applications should re-query rather than cache results locally for extended periods.
Page content last updated . Spec covers 1 endpoint from robotshop.com.
Related APIs in EcommerceSee all →