Changelog
Changes to the robot API, the sandbox and the test kit, newest first. The API is version 1: within it, changes only add (new fields, codes, notices and calls), so ignore what you don't know; anything that would break a client goes to /v2. The test kit keeps its own changelog.
2026-10-21
- Keys. Design partners take each robot's secret on their company's page, after signing in with a one-time link; Plynth never emails a secret. Visitor keys on
/docs, once open: your own robot for a day, riding and using the doors. - Drills on the sandbox reach only the robots of the company that started them;
POST /v1/drills/endends only your company's. New:POST /v1/sandbox/clearstarts your company afresh between test runs. - Emergencies. A building-wide emergency is told to every robot online. A robot the gateway can't place (no position in the last 15 seconds) is told "clear and hold", and sent to a holding zone once it shares a position.
- Errors. Every answer carries
X-Request-Id, and every error body arequest_id. New errors carry a machinecode:rate_limited,not_for_this_key,too_large,method_not_allowed.HEADandOPTIONSanswer. - Limits on the sandbox: 20 requests a second per robot, and 80 per address, so a fleet behind one address isn't held to one robot's share.
GET /v1/closureslists only the closures that apply to your robot.GET /v1/messagesno longer stops after many spoken messages.GET /v1/placesgivesrule_offandoutside_hourswhere it gaveother.- A passage request is at most 4,096 bytes of JSON. A signature in uppercase hex is accepted.
GET /v1/mecarriessandbox: trueon the sandbox.GET /v1/healthcarriesX-Gateway-ReleaseandX-Api-Version.- The test kit 0.2.0: the
plynthpackage,plynth.hello, the Apache License 2.0. - Keys. New secrets start
plynth_sbx_orplynth_live_(older ones keep working). A rotation can keep the old secret working up to a week (overlap_hon your company's page: Rotate keeps it 24 hours; Revoke Old stops it now). Read-only keys (plynth_read_) for dashboards: GET calls only,read_only_keyotherwise. - Scenario places on the sandbox: doors and elevators that always refuse or fail one way, for writing every handler before a site visit.
door-busyanswers each trip's first request with 429. - Sandbox-verified.
POST /v1/sandbox/gradegrades your own software on what the sandbox saw your robot do, and every check passed gives a certificate anyone can look up at/docs/certificates/<id>(Getting certified).X-Test-Runmarks a call as a test: a building's record shows its passages as one, and the grade leaves them out. - Reason codes for a site's own rules:
do_not_disturbandroom_vacant(a hotel),curb_rule,city_ruleandcity_paused(a street), where they gaveother. A robot first in line waits withwhyset tolobby fullorelevator busy, notrobots ahead. - ROS 2. plynth-ros2.zip: a node that goes through a door and rides an elevator, and an Open-RMF lift and door adapter, on ROS 2 Jazzy and the kit's client.
aboardin a passage's status: true while your robot is in the car, and after a ride ends without itsexited, until it says it got out. A 429's body carriesretry_after.lift-dropoutholds your robot's calls unanswered, so they time out as in a car out of Wi-Fi (a proxy had turned the dropped connection into a 502).Allowis the same on every 405 and on OPTIONS. The test kit 0.2.2: its client waits out a 429 for you, up towait_429seconds a call.- Visitor limits fit the sandbox's machine: 6 requests and a new trip a second for every visitor key together, 10 open streams, 30 new keys and then one every 20 seconds, so a busy day slows visitors first. Docs pages are kept once made.
- How your robots look on the building's screen, set on your company's page: your models (one of the screen's forms, at its size), which model each robot is, your brand color and your logo. On the sandbox, Add a Robot adds robots of your own, up to 10.
- Your company's page is in parts: a tile for each (today, run requests, robots, how they look, spec sheets, access, insurance) says what's in it, and one is open at a time. On the sandbox, Get Started comes first until one of your robots has connected. A secret a robot has used counts as used however long ago (it was the last 24 hours), so the page asks before replacing it; Get Secret keeps the old one working a day either way, since the sandbox's nightly reset clears the record.
- The building's admins can set how your robots look and file your spec sheets for you, from their view of your company's page; the building's record names who made each change.
- Spec sheets, one per model on your company's page: its values are read for you and you confirm them, and the building goes by them for that model's robots wherever a robot hasn't said for itself.
GET /v1/profilereads back what the building goes by: what your robot sent, and its model's confirmed sheet for the rest. GET /v1/placesgives the floor plate's size in meters,plate_m. Answering a complaint or confirming an order shows only your own company's robots, answer and clock.
2026-10-15
- The hosted sandbox: keys per design partner, this documentation, and the test kit.
2026-10-10 and 11
- Emergencies with holding zones and confirmations, and drills against the sandbox; help requests; the capability sheet; a trip's payload class and deadline; chargers; insurance on file; directions; data centers' life safety.
Before
- Version 1 of the robot API: passages through doors and elevators, refusals with reason codes, the stream, notices, lines, bookings, visitor passes and handoffs.