---
title: "Reorder a surface"
method: POST
path: "/api/workspaces/{slug}/surfaces/{surfaceSlug}/move"
tags: ["Surfaces"]
---

# Reorder a surface

`POST /api/workspaces/{slug}/surfaces/{surfaceSlug}/move`

## Request

- Base URL: `https://trydock.ai`
- URL: `https://trydock.ai/api/workspaces/{slug}/surfaces/{surfaceSlug}/move`
- Auth: HTTP bearer

Change a surface's tab position. Other tabs shift accordingly.

## Path parameters

- `slug` string, required
- `surfaceSlug` string, required

## Request body

- object
  - `position` integer, required: New 0-indexed tab position. Other tabs shift to accommodate.

## Response `200`

Moved.

- object
  - `surface` object, required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `kind` 'table' | 'doc', required: Whether this tab is a typed-row table or a TipTap rich-text doc.
    - `position` integer, required: Tab order within the workspace, 0-indexed.
    - `columns` object[], nullable: Column schema for table surfaces. `null` on doc/html surfaces.
      - `key` string, required
      - `label` string, required
      - `type` 'text' | 'longtext' | 'number' | 'status' | 'person' | 'date' | 'url' | 'checkbox' | 'select', required
      - `position` integer, required
      - `width` integer
      - `hidden` boolean
      - `wrap` boolean
      - `description` string
      - `options` object[]
        - `value` string, required
        - `label` string, required
        - `color` string

## Changes

- **2026-11-05** `dd96ae96a412`: 1 info
  - added the optional property `surface/columns/items/wrap` to the response with the `200` status

[Operation history](https://skmtc.dev/trydock/apis/dock-rest-api/changes/api/workspaces/:slug/surfaces/:surfaceSlug/move/post.md)

---

[API](https://skmtc.dev/trydock/apis/dock-rest-api.md) - [All operations](https://skmtc.dev/trydock/apis/dock-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/trydock/apis/dock-rest-api/revisions/dd96ae96a412?raw)
