---
title: "Read Joint Positions"
method: POST
path: "/joints/read"
tags: ["control"]
---

# Read Joint Positions

`POST /joints/read`

## Request

- The document declares no server URL.
- Auth: none required

Read the current positions of the robot's joints in radians and motor units.

## Query parameters

- `robot_id` integer

## Request body

- JointsReadRequest: Request to read the joints of the robot.
  - `joints_ids` integer[], nullable: If set, only read the joints with these ids. If None, read all joints.
  - `source` 'sim' | 'robot': Source of the joint angles. 'sim' means the angles are read from the simulation, 'robot' means the angles are read from the hardware.
  - `unit` 'rad' | 'motor_units' | 'degrees': The unit of the angles. Defaults to radian.

## Response `200`

Successful Response

- JointsReadResponse: Response to read the joints of the robot.
  - `angles` number[], required: A list of length 6, with the position of each joint in the unit specified in the request. If a joint is not available, its value will be None.
  - `unit` 'rad' | 'motor_units' | 'degrees': The unit of the angles. Defaults to radian.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/phospho/apis/phospho-api.md) - [All operations](https://skmtc.dev/phospho/apis/phospho-api/llms.txt) - [OpenAPI document](https://skmtc.dev/phospho/apis/phospho-api/revisions/93e83588fc02?raw)
