BotRegistry dataset

39 robots · 21 manufacturers · 5 categories · generated 2026-08-29

What this covers

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 39 individual robot pages render from — not a separate summary.

How it's compiled

Every record starts from the manufacturer's own product page, spec sheet, or press materials. A recurring automated sweep (verify_links.py) 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 prioritized first in the next sweep. 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).

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." Accessed 2026-08-29. https://skyteamlabs.com/robots/dataset/. Licensed CC BY 4.0.

Download

dataset.json dataset.csv

39 records each. 37 of 39 records carry at least one null spec field (186 null fields total, each with a stated reason — see unknown_fields below). No field is ever a guessed or estimated value.

Update cadence

Verification sweep: every 21 days, 6 robots per pass (still-backfilled records first, then oldest-checked) — a full pass across all 39 robots takes about 21 weeks. This export regenerates from the same source files as the live pages every time build.py runs, so it is never a separate hand-maintained copy and is never older than the catalog itself.

Fields (JSON and CSV share this schema)

FieldTypeUnitDescription
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 Minimum current price across variants. null = manufacturer sells only by direct quote ("contact us"), not a missing value.
price_from_type string|null purchase | lease | monthly | annual | null (matches price_from_usd's basis).
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.
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.

Changelog

Contact

Questions, corrections, or a spec you can verify that we have marked null? info@skyteamlabs.com.