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

# Read Joint Positions

`POST /joints/read`

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.net/phospho/apis/fastapi.md) · [All operations](https://skmtc.net/phospho/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/phospho/fastapi/revisions/93e83588fc02/schema)
