---
title: "Admin Move Set"
method: POST
path: "/api/price-compare/admin/sets/{set_id}/move"
tags: ["Price Compare"]
---

# Admin Move Set

`POST /api/price-compare/admin/sets/{set_id}/move`

## Request

- Base URL: `https://data.getplace.io` (the document declares no server; this is the origin it was published from)
- URL: `https://data.getplace.io/api/price-compare/admin/sets/{set_id}/move`
- Auth: OAuth 2
  - Password
  - Token URL: `/api/auth/login`

Hand a benchmark to a different account.

Implemented as a copy plus a deletion, NOT as an UPDATE of user_id, and the
difference matters: changing the owner in place makes the row disappear from
the old owner's `/sets`, their browser finds its cached copy among neither
the live rows nor the deleted ones, concludes it never reached the server,
and uploads it again. Leaving a tombstone behind is what tells them it left.

## Path parameters

- `set_id` string, required

## Request body

- MoveRequest
  - `target_user_id` string, required
  - `new_name` string, nullable

## Response `200`

Successful Response

- MoveResponse
  - `source_id` string, required
  - `set_id` string, required
  - `name` string, required
  - `target` Owner, required
    - `user_id` string, required
    - `email` string, nullable
    - `name` string, nullable
    - `source` 'local' | 'getplace'
    - `allow_menu_access` boolean, nullable
    - `can_sign_in` boolean, nullable
    - `grants` GrantSummary[]
      - `country_code` string, required
      - `chain_count` integer
      - `cities` string[]
  - `access` AccessReport, required: Whether an account would actually see data in a benchmark. Copying a set is not enough on its own: the Go API filters menu data by the account's grants, so a benchmark whose brands are not granted opens empty — which reads as a broken screen rather than as missing permissions. This report is what turns that into a sentence before anything is written.
    - `ok` boolean, required
    - `unrestricted` boolean
    - `allow_menu_access` boolean
    - `required` RequiredAccess, required: The data a benchmark needs its owner to be allowed to see.
      - `chain_ids` integer[]
      - `city_id` integer, nullable
      - `country` string, nullable
    - `missing_chain_ids` integer[]
    - `city_blocked` boolean
    - `note` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getplace/apis/getplace-insights-api.md) - [All operations](https://skmtc.dev/getplace/apis/getplace-insights-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getplace/apis/getplace-insights-api/revisions/0f337387603f?raw)
