Menlo

API

An agentic robot management framework

API Endpoints

This section covers all available endpoints for robot management and control.


Authentication

In order to access the robot endpoints, you need to obtain an API key.

  1. Click Create API Key
  2. Copy your API key and use it in the Authorization header

Using the API Key

Include the API key in the Authorization header for all requests:

Authorization: Bearer YOUR_API_KEY

For requests with a body (POST, PATCH), also include:

Content-Type: application/json

Manage 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/robots

Response

{
  "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
}
FieldTypeDescription
codestringResponse code
next_idstringPagination cursor for next page
resultarrayArray of robot objects
totalintegerTotal number of robots

Robot Object

FieldTypeDescription
idstringUnique robot identifier
modelstringRobot model name
namestringRobot name
typestringRobot type: physical or virtual
languagestringRobot language setting
voicestringRobot voice setting
descriptionstringRobot description
statusobjectRobot status (omitted if unavailable)

Status Object

FieldTypeDescription
robot_idstringRobot ID
fw_modeintegerFirmware mode: 0=Damp, 1=Stand, 2=Move
error_flagsintegerError flags bitmask
timestampintegerStatus timestamp

Get Robot

Retrieve detailed information about a specific robot.

GET https://api.menlo.ai/v1/robots/:robot_id

Response

{
  "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_id

Request Body

{
  "name": "Updated Bot Name"
}
FieldTypeRequiredDescription
namestringYesNew 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_id

Response

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/session

Response

{
  "code": "string",
  "result": {
    "sfu_endpoint": "string",
    "webrtc_token": "string"
  }
}
FieldTypeDescription
sfu_endpointstringSFU server endpoint URL
webrtc_tokenstringWebRTC 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?

On this page