---
title: "Send a motion command to the robot to change its current state"
method: POST
path: "/v1/vehicles/{vehicleId}/motion-command"
tags: ["Vehicle Autonomy"]
---

# Send a motion command to the robot to change its current state

`POST /v1/vehicles/{vehicleId}/motion-command`

## Request

- Base URL: `https://api.polymathrobotics.dev`
- URL: `https://api.polymathrobotics.dev/v1/vehicles/{vehicleId}/motion-command`
- Auth: HTTP bearer

Sends a motion command to change the robot motion state. Supported commands: `STOP` (0), `PAUSE` (1), and `RESUME` (2).

## Path parameters

- `vehicleId` string, required

## Request body

- MotionCommandAction: Base for request bodies: unknown fields are rejected instead of silently dropped.
  - `motion_command` unknown
  - `mode` unknown

## Response `201`

Motion command execution response.

- MotionCommandExecutionResponse
  - `status` string, required
  - `message` string, required
  - `data` MotionCommandExecutionData, required
    - `received` unknown
    - `command_ids` string[]: Cortex-assigned ids for the accepted commands, aligned 1:1 with the commands sent and in the same order. Each is the goal id for its command; pass one to GET /command-history as command_id to look that command up once it finishes. Empty when cortex handled the request without queueing commands, as a RESUME motion command does.

## Other responses

- `422`: Validation Error
- `500`: Internal server error

## Changes

- **2026-09-09** `7bb062ddb622`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/polymathrobotics/apis/polymath-api/changes/v1/vehicles/:vehicleId/motion-command/post.md)

---

[API](https://skmtc.dev/polymathrobotics/apis/polymath-api.md) - [All operations](https://skmtc.dev/polymathrobotics/apis/polymath-api/llms.txt) - [OpenAPI document](https://skmtc.dev/polymathrobotics/apis/polymath-api/revisions/3b5ff2f21338?raw)
