API
An agentic robot management framework
API Endpoints
This section covers all available endpoints for robot management and control.
Authentication
Obtain and use an API key to authenticate your requests.
Manage Robots
List, retrieve, update, and delete your robots.
Join a Session
Connect to a robot's live WebRTC session.
Authentication
In order to access the robot endpoints, you need to obtain an API key.
- Click Create API Key
- Copy your API key and use it in the
Authorizationheader
Using the API Key
Include the API key in the Authorization header for all requests:
Authorization: Bearer YOUR_API_KEYFor requests with a body (POST, PATCH), also include:
Content-Type: application/jsonManage Robots
To get a robot to manage, create a virtual robot at https://platform.menlo.ai.
Note: The Menlo Platform API currently creates and manages virtual robots only. Physical Asimov robots are controlled directly through the Asimov API; registering and claiming them via the Menlo Platform API is coming soon.
List Robots
Get all robots associated with your account.
GET https://api.menlo.ai/v1/robotsResponse
{
"code": "string",
"next_id": "string",
"result": [
{
"id": "string",
"model": "string",
"name": "string",
"type": "virtual",
"language": "string",
"voice": "string",
"description": "string",
"status": {
"robot_id": "string",
"fw_mode": 0,
"error_flags": 0,
"timestamp": 0
}
}
],
"total": 0
}| Field | Type | Description |
|---|---|---|
code | string | Response code |
next_id | string | Pagination cursor for next page |
result | array | Array of robot objects |
total | integer | Total number of robots |
Robot Object
| Field | Type | Description |
|---|---|---|
id | string | Unique robot identifier |
model | string | Robot model name |
name | string | Robot name |
type | string | Robot type: physical or virtual |
language | string | Robot language setting |
voice | string | Robot voice setting |
description | string | Robot description |
status | object | Robot status (omitted if unavailable) |
Status Object
| Field | Type | Description |
|---|---|---|
robot_id | string | Robot ID |
fw_mode | integer | Firmware mode: 0=Damp, 1=Stand, 2=Move |
error_flags | integer | Error flags bitmask |
timestamp | integer | Status timestamp |
Get Robot
Retrieve detailed information about a specific robot.
GET https://api.menlo.ai/v1/robots/:robot_idResponse
{
"code": "string",
"result": {
"id": "string",
"model": "string",
"name": "string",
"type": "virtual",
"language": "string",
"voice": "string",
"description": "string",
"status": {
"robot_id": "string",
"fw_mode": 0,
"error_flags": 0,
"timestamp": 0
}
}
}Update Robot
Update a robot's name.
PATCH https://api.menlo.ai/v1/robots/:robot_idRequest Body
{
"name": "Updated Bot Name"
}| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | New robot name |
Response
{
"code": "string",
"result": {
"id": "string",
"model": "string",
"name": "Updated Bot Name",
"type": "virtual",
"language": "string",
"voice": "string",
"description": "string",
"status": {
"robot_id": "string",
"fw_mode": 0,
"error_flags": 0,
"timestamp": 0
}
}
}Delete Robot
Delete a virtual robot. Only virtual robots owned by the current user can be deleted.
DELETE https://api.menlo.ai/v1/robots/:robot_idResponse
Success (204 No Content)
No response body.
Join a Session
Connect to a robot's live WebRTC session. Returns a WebRTC token and SFU endpoint for connecting.
POST https://api.menlo.ai/v1/robots/:robot_id/sessionResponse
{
"code": "string",
"result": {
"sfu_endpoint": "string",
"webrtc_token": "string"
}
}| Field | Type | Description |
|---|---|---|
sfu_endpoint | string | SFU server endpoint URL |
webrtc_token | string | WebRTC authentication token |
Using the Session
Once you have the sfu_endpoint and webrtc_token, follow the Asimov API documentation to connect to the robot and start controlling it, receiving telemetry, or streaming video.
How is this guide?