Open data
You can download the robots, prices and changes on this site as four JSON files, free to reuse with credit. 53 robots, 72 store offers and 65 changes, each with the day I checked it.
At a glance
- FormatJSON, UTF-8
- LicenseCC BY 4.0
- Offers42 for the robot itself, 30 bundles and warranties
- UpdatedNov 6, 2026
The files
Four files, each dated from its own rows.
- products.json
The home robots on this site, with the specs each maker states.
33 records, 77 KB. Newest date: Nov 2, 2026.
- offers.json
Where each home robot is sold, with the price and stock on the day I checked.
72 records, 33 KB. Newest date: Nov 2, 2026.
- humanoids.json
The humanoids with their own page on this site, with what each maker states. A tracker, not a buying guide.
20 records, 66 KB. Newest date: Nov 6, 2026.
- changes.json
Every change I’ve published, oldest first, with the page that shows it.
65 records, 40 KB. Newest date: Oct 31, 2026.
They’re built with the site, so they match its pages. updated at the top of each file is the newest check date in its rows.
How to read them
The same rules hold in every file.
- Joining the files:
slugin products.json and humanoids.json matchesrobot_slugin offers.json and changes.json. - Prices: US dollars, the cart price before tax and coupon codes, on the day in
checked. Only a row withoffer_type“Robot” is a robot’s price. Bundles and extended warranties have their own rows. - Amazon: these rows have no price, because Amazon doesn’t allow showing a price I checked myself. The row gives the link.
- “Not stated”: I looked and the maker doesn’t say.
- Empty (null): no value on record. The field doesn’t apply to that kind of robot, or there’s no figure to give. The robot’s page has any detail.
- Dates: YYYY-MM-DD, US Eastern.
- Makers’ words: specs, safety guidance and delivery dates are what the maker says, on the day I read it. A delivery or pre-order date is the maker’s claim, not a fact.
- Not ranked: robots are in order of their ID and changes in order of date. The order means nothing.
What each field means
Each file carries the same list under fields.
products.json: 42 fields
- slug
- The robot’s ID. Matches robot_slug in offers.json and changes.json.
- name
- The robot’s name.
- category
- Robot vacuum, Pool robot, Robot mower or Window robot.
- brand
- The maker’s brand.
- model
- The model name.
- status
- Whether it’s on sale.
- page_url
- Its page on this site.
- maker_url
- The maker’s product page.
- specs_checked
- The day I read the specs on the maker’s site.
- power
- Pool and window robots: how it’s powered.
- pool_types
- Pool robots: the pool types the maker names.
- cleans
- Pool robots: the parts of the pool it cleans.
- saltwater
- Pool robots: whether the maker says it’s safe in saltwater.
- surfaces
- Pool robots: the pool surfaces the maker names.
- max_pool_size
- Pool robots: the largest pool the maker states.
- navigation
- Mowers: how it finds its way.
- max_lawn_area_acres
- Mowers: the largest lawn the maker states, in acres.
- max_slope_percent
- Mowers: the steepest slope the maker states, in percent.
- awd
- Mowers: whether it has all-wheel drive.
- mopping
- Vacuums: whether it mops.
- self_emptying_dock
- Vacuums: whether the dock empties it.
- suction_pa
- Vacuums: the maker’s suction figure, in pascals.
- runtime_minutes
- The maker’s runtime, in minutes, in the maker’s own mode.
- glass_types
- Window robots: the glass the maker names.
- glass_limits
- Window robots: limits the maker states, such as glass thickness.
- smallest_pane
- Window robots: the smallest pane the maker states.
- auto_spray
- Window robots: whether it sprays water itself.
- edge_detection
- Window robots: whether it detects the edge of the glass.
- controls
- Window robots: how you control it.
- station
- Window robots: whether it has a station.
- holds_without_power_minutes
- Window robots: how long the maker says it holds on with no power, in minutes.
- safety_guidance
- The maker’s own safety guidance, in the maker’s words.
- camera
- Whether it has a camera.
- warranty
- The warranty the maker states.
- subscription
- Whether the maker asks for a subscription.
- subscription_notes
- What the maker says about the plan, with where and when I read it.
- plan_in_brief
- The plan in one line.
- recall_status
- What my recall search found.
- recall_checked
- The day I searched for recalls.
- recall_source_url
- The recall search page.
- recall_notes
- The terms I searched and the warnings I looked through.
- sources
- The maker’s pages I read: address, what I read there and the day.
offers.json: 13 fields
- robot_slug
- The robot’s ID. Matches slug in products.json.
- robot
- The robot’s name.
- offer_type
- Robot, Bundle or Extended warranty. Only a Robot row is the robot’s price.
- variant
- The size or package, when a store sells more than one.
- store
- The store’s web address.
- seller
- Who the store says sells it.
- store_type
- Maker is the maker’s own US store. Authorized retailer is a big retailer the maker names. Official storefront is the maker’s own storefront on a marketplace.
- authorized_by_maker_url
- The maker’s page that names this seller.
- price_usd
- The cart price in US dollars, before tax and coupon codes. Empty for Amazon.
- stock
- In stock or Out of stock, on the day I checked. Empty on bundle and warranty rows.
- url
- The listing.
- country
- The store’s country. US for every row.
- checked
- The day I checked this row on the seller’s site.
humanoids.json: 42 fields
- slug
- The robot’s ID. Matches robot_slug in changes.json.
- name
- The robot’s name.
- maker
- The company.
- model
- The model name.
- status
- The maker’s public status, such as Pre-order, Developer hardware or Announced.
- status_checked
- The day I read the status on the maker’s site.
- status_source_url
- The page that gives the status.
- page_url
- Its page on this site.
- made_for
- Who the maker says it’s for.
- price_as_stated
- The price in the maker’s words.
- price_usd
- The one-off price the maker states, in US dollars. The lowest, when there are several.
- price_source
- Where that price comes from.
- purchase_model
- How it’s sold: Purchase, By request, or Both (buy or subscribe).
- order_channel
- How you order it.
- ships_to
- The countries the maker says it ships to.
- delivery_claimed
- The maker’s claim about delivery. A claim, not a fact.
- where_it_is_today
- Where the robot stands, with the date.
- maker_country
- Where the company is based.
- manufacturing_country
- Where the maker says it’s built.
- ai_model
- The AI the maker names.
- on_device_or_cloud
- Where the AI runs, if the maker says.
- operating_model
- Autonomous or Mixed, as the maker describes how it works.
- remote_operators
- What the maker says about people operating it remotely.
- how_you_train_it
- The ways the maker says it learns a task.
- height
- As the maker states it.
- weight
- As the maker states it.
- payload
- What it can carry, as the maker states it.
- battery_life
- As the maker states it.
- degrees_of_freedom
- Its joints, as the maker states them.
- hands
- Its hands, as the maker states them.
- moves_on
- What it moves on, such as legs or wheels.
- sensors
- The cameras, microphones and other sensors the maker names.
- body_specs_checked
- The day I read the body specs on the maker’s site.
- safety_certifications
- Certifications and safety wording, in the maker’s words.
- home_fit
- What the maker says about use in a home.
- data_and_privacy
- What the maker says about data.
- demo_evidence
- What the maker has shown, and whether it says the demos ran on their own.
- recall_status
- What my recall search found.
- recall_checked
- The day I searched for recalls.
- recall_source_url
- The recall search page.
- recall_notes
- The terms I searched and the warnings I looked through.
- sources
- The maker’s pages I read: address, what I read there and the day.
changes.json: 21 fields
- date
- The day of the change.
- type
- New record, Price, Chore Map or Correction.
- about
- The robot or chore it’s about.
- robot_slug
- The robot’s ID. Matches slug in products.json and humanoids.json. Empty for a chore.
- chore
- The chore’s ID on the Chore Map. Empty for a robot.
- category
- The section of the site.
- page_url
- The page on this site.
- field
- A correction: the value that was corrected.
- old_value
- What it was. A price is in US dollars.
- new_value
- What it is now. A price is in US dollars.
- old_value_checked
- The day I checked the old value.
- price_usd
- A new record: its price in US dollars. Empty for Amazon.
- stock
- A new record: its stock on the day.
- status
- A new humanoid: its status on the day.
- terms
- A new humanoid: the maker’s terms in brief.
- size
- A new record: the size, when there’s more than one.
- on_sale
- Whether the price was a sale price that day.
- new_store
- True when a robot already listed was added on another store.
- store
- The store or site it was seen on.
- seller
- Who sells it on that store.
- source_url
- The page that shows it.
What isn’t in them
Only records I’ve checked and published.
- Store listings I haven’t confirmed: 4.
- Robots I don’t list: their names and reasons are on What I leave out.
- The Chore Map: it’s on its own page. Its moves are in changes.json.
- My working notes and the internal IDs from my database.
Using the data
Free to reuse, with credit.
The files are under the CC BY 4.0 license. You can copy, share and build on them, commercially too, as long as you credit RoboHousehold and link to this page.
The license covers my records. Words in quotes are the maker’s and stay the maker’s.
Prices and stock change. Go by the date on each row, and check the seller’s page before you rely on one.
Found a wrong value?
Tell me the file, the robot and the field. I check it against the maker’s own page before changing anything, and if it was wrong, it goes on Corrections.
See what I track
One page per kind of robot, and the Chore Map: which chores a robot can do today.



