---
title: "POST /v1/robot-state/get"
method: POST
path: "/v1/robot-state/get"
tags: ["Robot Status"]
---

# POST /v1/robot-state/get

`POST /v1/robot-state/get`

## Request

- Base URL: `https://api.bearrobotics.ai`
- URL: `https://api.bearrobotics.ai/v1/robot-state/get`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bearrobotics/apis/bear-cloud-api/docs/v1/robot-state/get/post.ts> (a function with typed inputs; its response is checked against the schema)

Get the latest robot state.

 Robot state includes connectivity and operational states.

## Request body

- GetRobotStatusRequest: Request object for retrieving robot status
  - `robotId` string, required

## Response `200`

OK

- GetRobotStatusResponse
  - `robotState` RobotState: Represents the overall state of the robot.
    - `connection` RobotConnection: Represents the online connection state between the cloud and the robot.
      - `state` integer
    - `battery` BatteryState: Represents the state of the robot's battery system.
      - `chargePercent` integer: State of charge, from 0 (empty) to 100 (fully charged).
      - `state` integer
      - `chargeMethod` integer
    - `emergencyStop` EmergencyStopState: Represents the state of the robot's emergency stop system.
      - `emergency` integer: Whether the software level emergency stop is engaged.
      - `buttonPressed` integer: Whether the physical emergency stop button is engaged.
    - `mission` MissionState: MissionState represents the current state of a mission assigned to a robot.
      - `missionId` string: Unique identifier for the mission.
      - `state` integer
      - `goals` Goal[]: All goals associated with the mission, in the order the request was given.
        - union: Goal represents a target destination or pose for the robot to navigate to.
          - object
            - `destinationId` string, required
          - object
            - `pose` Pose, required: Represents the robot's pose on the map.
              - …
      - `currentGoalIndex` integer: Index of the currently active goal in the goals list.
      - `missionFeedback` union: Feedback provides mission-specific runtime information. Only one feedback type (baseFeedback, serviFeedback, or cartiFeedback) can be set at a time.
        - object
          - `baseFeedback` BaseFeedback, required: BaseFeedback provides status updates on mission progress, specific to base missions.
            - `status` integer
        - object
          - `serviFeedback` Feedback, required: Feedback provides status updates on mission progress, specific to Carti Family robot missions.
            - `status` integer
        - object
          - `cartiFeedback` Feedback, required: Feedback provides status updates on mission progress, specific to Carti Family robot missions.
            - `status` integer
      - `missionType` union: MissionType defines the different types of missions that can be executed. This uses a oneof structure to categorize mission types by their source. Only one type field (baseType, serviType, or cartiType) can be set at a time. The individual enum types are defined in their respective mission.proto files.
        - object
          - `baseType` integer, required
        - object
          - `serviType` integer, required
        - object
          - `cartiType` integer, required
      - `owner` string: Owner of the mission (e.g., "touchscreen", "api", etc.)
    - `pose` Pose: Represents the robot's pose on the map.
      - `xMeters` number, float: X-coordinate in meters within the map.
      - `yMeters` number, float: Y-coordinate in meters within the map.
      - `headingRadians` number, float: The heading of the robot in radians. Ranges from -π to π, where 0.0 points along the positive x-axis.
    - `errorCodes` ErrorCodes
      - `codes` ErrorCode[]
        - `code` integer: Integer code indicating the type of error. Does not indicate severity. Please refer to the error code documentation for more details. TODO(BA-545): Add link to error code documentation.
        - `severity` integer: Level of criticality of an error.
        - `message` string: Message about the error e.g. "Up camera process error."
    - `serviState` ServiState: Represents the set of robot states specifically for Servi robots.
      - `trayStates` TrayStates: A list of tray states reported by individual trays.
        - `trayStates` TrayState[]: State of enabled trays, ordered from the top-most tray on the robot to the bottom.
          - `trayName` string: Unique string name for the given tray. e.g. "top", "middle", "bottom" TODO: link to Tray name definitions.
          - `loadState` integer
          - `weightKg` number, float: Weight on the tray in kilograms. Minimum precision is 10g.
          - `loadRatio` number, float: Ratio of the current load to the tray's maximum load capacity. This value may exceed 1.0 if the tray is overloaded. Caveats: - If the maximum load is misconfigured (e.g., set to 0.0), this value may return NaN.
    - `cartiState` CartiState: Represents the set of robot states specifically for Carti robots.
      - `conveyorState` ConveyorState: Conveyor state includes the operation status, payload status, and health status.
        - `index` integer: Unique identifier for the conveyor.
        - `operationState` integer
        - `payloadState` integer
        - `healthState` integer
        - `installationState` integer
    - `twist` Twist: Represents the current velocity of the robot in 2D (linear along the forward axis, angular around the vertical axis). Omitted when the robot does not report velocity.
      - `linearVelocity` number, float: Current speed along the robot's forward axis, in m/s. Positive for forward, negative for reverse.
      - `angularVelocity` number, float: Current rotation rate, in rad/s. Positive for clockwise when viewed from above.
    - `localizationState` LocalizationState: Represents the current state of the localization process.
      - `state` integer
    - `navigationState` NavigationState: Represents navigation-related state for the robot.
      - `stuckState` StuckState: Represents whether the robot is currently unable to make navigation progress, and the reason for it when known. "Stuck" is distinct from a mission failure: it is a transient, recoverable navigation condition.
        - `state` integer: Current stuck state of the robot.
        - `reason` integer: Reason the robot is stuck. Only meaningful when state is STATE_STUCK; otherwise expect REASON_UNKNOWN.

## Other responses

- `400`: Bad Request, usually caused by malfored request body.
- `401`: Unauthorized credentials, ensure the JWT is correct and up to date.
- `500`: Internal Server Error
- `503`: Service is temporarily unavailable, which can usually be resolved by backoff retries.
- `504`: Server-side timeout, usually caused by the failure to send/receive commands/responses to the designated robot.

---

[API](https://skmtc.dev/bearrobotics/apis/bear-cloud-api.md) - [All operations](https://skmtc.dev/bearrobotics/apis/bear-cloud-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bearrobotics/apis/bear-cloud-api/revisions/b90843b624b5?raw)
