Menlo

API Reference

An agentic robot management framework

API Endpoints

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


Get Your API Key

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

  1. Go to https://platform.menlo.ai/account/api-keys
  2. Click Create API Key
  3. 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

Claim the Robot

Before you can interact with a robot, you must first claim it. Claiming a robot associates it with your account and grants you exclusive access to control it.

Endpoint

POST https://api.menlo.ai/v1/robots/{robot_id}/claim

Request Body

{
  "pin_code": "string"
}
FieldTypeRequiredDescription
pin_codestringYesRobot's PIN code

Example Request

curl -X POST https://api.menlo.ai/v1/robots/{robot_id}/claim \
  -H "Authorization: Bearer {apikey}" \
  -H "Content-Type: application/json" \
  -d '{"pin_code": "123456"}'

Response

Success (200 OK)

{
  "code": "string",
  "result": {
    "id": "string",
    "model": "string",
    "name": "string",
    "type": "physical"
  }
}
FieldTypeDescription
idstringUnique robot identifier
modelstringRobot model name
namestringRobot name
typestringRobot type: physical or virtual

Error Responses

Status CodeDescription
400Invalid request body
401Unauthorized - invalid or missing API key
404Robot not found with given robot_id
409Robot already claimed by another user
429Too many claim attempts - rate limited

Error Example

{
  "code": "7eb3e2c3-b6a6-40e0-ae8c-23a76be0c317",
  "message": "This robot is already claimed by another user"
}

Robot Management

Robot Management endpoints allow you to manage your claimed robots, update their settings, and handle robot-to-user associations.

List Your 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": "physical"
    }
  ],
  "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

Get Robot Details

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": "physical"
  }
}

Update Robot

Update robot 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": "physical"
  }
}

Create Session

Join a robot's agent session. Returns 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

Control

The Control endpoints allow you to send commands to your robot and manage its behavior remotely.

Send Semantic Command

Send a semantic command to a robot (simple directional commands).

POST https://api.menlo.ai/v1/robots/:robot_id/semantic-command

Request Body

{
  "command": "forward"
}
FieldTypeRequiredDescription
commandstringYesSemantic command (see below)

Available Commands

CommandDescription
forwardMove forward
backwardMove backward
leftMove left
rightMove right
turn-leftTurn left
turn-rightTurn right

Response

{
  "code": "string",
  "result": null
}

Simulation

The simulation endpoints create a simulated instance in the virtual world, accessible via the management and control endpoints.

Create a Virtual Robot

Create a new virtual robot. This issues a robot and claims it for the current user, then summons it in the virtual world.

POST https://api.menlo.ai/v1/robots

Request Body

{
  "name": "My Virtual Robot",
  "model": "string",
  "type": "virtual"
}
FieldTypeRequiredDescription
namestringYesRobot name
modelstringYesRobot model
typestringYesMust be virtual

Response

{
  "code": "string",
  "result": {
    "id": "string",
    "model": "string",
    "name": "string",
    "type": "virtual"
  }
}

On this page