398 robots · 143 manufacturers · 12 categories · data as of 2026-10-19
The full data behind the BotRegistry comparator: one record per robot family, covering physical specs (height, weight, DOF, speed, battery, IP rating, compute), current pricing, manufacturer details, and where each spec was verified. This is the same data the comparator and its 398 individual robot pages render from — not a separate summary.
Every record starts from the manufacturer's own product page, spec sheet, or press materials. A checking tool (verify_links.py, run by hand) re-fetches each source page, hashes its visible text, and flags drift; a variant's specs are only marked verification_method="fetched" in a pass that actually retrieved and read that page on verified_date. Records not yet independently re-checked are marked "backfilled" — adopted as a starting baseline with no verification claim attached, and checked first next time. No specification value is estimated, inferred, or generated by a model; a value BotRegistry could not confirm is left null, and the reason is recorded per record in unknown_fields (see the field dictionary below). Prices are different: a price marked price_type "estimated" is a published analyst, press or target figure, labelled as such.
License: CC BY 4.0. Free to use, share, and adapt — including commercially — with attribution to Sky Team Labs and a link back to skyteamlabs.com/robots/. Full license text: creativecommons.org/licenses/by/4.0.
Suggested citation:
Sky Team Labs. "BotRegistry robot dataset," version 2026-10-19. https://skyteamlabs.com/robots/dataset/. Licensed CC BY 4.0.
398 records each. 398 of 398 records carry at least one null spec field (2940 null fields total, each with a stated reason — see unknown_fields below). No field is ever a guessed or estimated value.
Records are re-checked by hand, not on a fixed schedule. Each record's verified_date says when its source page was last read, and verification_method says whether it was read at all. This export regenerates from the same source files as the live pages every time the catalog is rebuilt, so it is never a separate hand-maintained copy and is never older than the catalog itself.
| Field | Type | Unit | Description |
|---|---|---|---|
| id | string | — | Unique catalog slug, convention {manufacturer}-{model}. |
| name | string | — | Display name. |
| manufacturer | string | — | Manufacturer company name. |
| manufacturer_country | string|null | ISO 3166-1 alpha-2 | Country of the manufacturer's headquarters. |
| manufacturer_website | string|null | — | Manufacturer's official website. |
| category | string | — | Robot type (BotRegistry taxonomy). |
| subcategory | string|null | — | Free-form subcategory assigned by the catalog, not manufacturer-sourced. null = not categorized. |
| year_announced | integer|null | year | Year the robot was first publicly announced. |
| status | string | — | Best-case status across variants: available | limited | pre-order | development | discontinued. |
| price_from_usd | number|null | USD | Lowest current price (each variant's newest priced entry) across variants that can be bought now (available, limited, pre-order); across all variants only if none of those has a price. Purchase prices win over other types. null = no published price ("contact us"), not a missing value. |
| price_from_type | string|null | — | purchase | estimated | lease | monthly | annual | null. 'estimated' = an analyst, press or target figure, not a price anyone quoted for sale. |
| height_cm | number|null | cm | Standing height. |
| weight_kg | number|null | kg | Robot mass. |
| payload_kg | number|null | kg | Maximum carried load. |
| dof | integer|null | count | Total degrees of freedom. |
| max_speed_kmh | number|null | km/h | Maximum locomotion speed. |
| max_speed_ms | number|null | m/s | Maximum locomotion speed. |
| battery_wh | number|null | Wh | Battery capacity. |
| battery_hours | number|null | hours | Typical runtime, not maximum. |
| battery_swappable | boolean|null | — | Whether the battery can be hot-swapped. |
| ip_rating | string|null | — | Ingress protection rating, e.g. IP54. |
| operating_temp_min_c | number|null | °C | Minimum rated operating temperature. |
| operating_temp_max_c | number|null | °C | Maximum rated operating temperature. |
| compute | string|null | — | Onboard compute platform name. |
| compute_tops | number|null | TOPS | AI compute throughput. |
| certifications | string[] | — | Regulatory certifications (e.g. CE, FCC). |
| locomotion | string[] | — | Locomotion modes (e.g. bipedal walking, running). |
| use_cases | string[] | — | Manufacturer-stated intended use cases. |
| sensor_count | integer | count | Number of distinct sensor types listed for this robot. |
| source_url | string|null | — | The manufacturer page whose spec section was read for the represented variant. Null only when verification_method is "none", or "backfilled" with no source recorded. |
| verified_date | string|null | ISO 8601 date | Date source_url was checked (or the baseline-adoption date for a backfilled record). |
| verification_method | string | — | fetched = this variant's own page was retrieved and read on verified_date. backfilled = pre-existing data adopted as a baseline, no independent verification claim. none = no variant/provenance data recorded for this robot. |
| verified_variant_id | string|null | — | Which configuration/variant this record's specs and provenance represent (the "base" variant when one exists, otherwise the first listed). |
| last_updated | string | ISO 8601 date | Date this robot's underlying record was last edited in the source catalog. |
| detail_page_url | string | — | The BotRegistry page this record was derived from. |
| category_id | string | — | Robot type id (one per robot: what the robot is). Names and descriptions: /robots/data/categories.json. |
| applications | string[] | — | Application ids (zero or more: where the maker markets the robot for use). Names and descriptions: /robots/data/applications.json. |
| software_checked | string|null | ISO 8601 date | Date the software and 3D model flags below were checked. null = not checked yet. |
| has_urdf | boolean|null | — | true = a public a URDF robot description exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_mjcf | boolean|null | — | true = a public a MuJoCo (MJCF) model exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_usd_isaac | boolean|null | — | true = a public an NVIDIA Isaac Sim (USD) model exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_gazebo_sdf | boolean|null | — | true = a public a Gazebo (SDF) model exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_cad | boolean|null | — | true = a public a CAD model (STEP) exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_sdk | boolean|null | — | true = a public a software development kit exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_ros | boolean|null | — | true = a public a ROS 1 package exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_ros2 | boolean|null | — | true = a public a ROS 2 package exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_robodk | boolean|null | — | true = a public a RoboDK library entry exists for this robot; false = none found on software_checked; null = not checked. Links are not published. |
| has_sim_model | boolean|null | — | true when any of has_urdf, has_mjcf, has_usd_isaac or has_gazebo_sdf is true. null = not checked. |
| unknown_fields | object[] (JSON) / unknown_fields_note string (CSV) | — | One {field, reason} entry per DATASET_SPEC_FIELDS value left null. See the scope note above this table. |
Questions, corrections, or a spec you can verify that we have marked null? info@skyteamlabs.com.