---
title: "Move one member (human) on the floor"
method: PATCH
path: "/floor/members/{id}/position"
tags: ["Floor"]
---

# Move one member (human) on the floor

`PATCH /floor/members/{id}/position`

## Request

- Base URL: `https://api.atako.ai`
- URL: `https://api.atako.ai/floor/members/{id}/position`
- Auth: HTTP bearer

Same gesture as the agent move, for a person. `id` is the member's user id. When `teamId` differs from the member's current team, `company_members.team_id` is updated (same column as PATCH /company/me/members/{userId}/team, journalled `company.member.team_changed`); only the desk goes into the document. `teamId: null` sends the member to the teamless front row and drops their document entry. A member or team of another company answers 404.

## Path parameters

- `id` string, required

## Request body

- object
  - `teamId` string, uuid, nullable, required
  - `slot` integer, required: Desk index inside the pod of the occupant's own team.

## Response `200`

- object
  - `layout` FloorLayout, required: Stored floor arrangement (AF-41). Only what the automatic layout cannot infer: where each team platform sits, and which desk of its own team an occupant stands at. Reconciled at read time — entries whose id is no longer on the floor are stripped from the served document (never from the stored row).
    - `pods` object[], required
      - `teamId` string, uuid, required
      - `x` number, required: Pod centre, world units.
      - `z` number, required
    - `agents` object[], required: id = agentId, slot = desk index inside the pod of ITS OWN team (slot 0 of team A and slot 0 of team B are different desks).
      - `id` string, uuid, required
      - `slot` integer, required
    - `members` object[], required: id = userId, same slot semantics as `agents`.
      - `id` string, uuid, required
      - `slot` integer, required
  - `version` integer, required

## Other responses

- `400`: Malformed body, or the desk is already taken on that team.
- `401`: Missing, malformed, or invalid bearer token / API key, or revoked session (SESSION_REVOKED).
- `403`: Admin only — every floor write is reserved to a company admin.
- `404`: Not found, or the caller is not authorized to access this resource.

---

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