---
title: "Migrate Sets"
method: POST
path: "/api/price-compare/sets/migrate"
tags: ["Price Compare"]
---

# Migrate Sets

`POST /api/price-compare/sets/migrate`

## 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/sets/migrate`
- Auth: OAuth 2
  - Password
  - Token URL: `/api/auth/login`

One-time lift of whatever is still in the browser.

Deliberately additive and idempotent: it only writes ids this user does not
have yet, so a second run (or two tabs racing) cannot overwrite work already
on the server. The client keeps its copy until this returns.

## Request body

- MigrateRequest
  - `sets` SetUpsert[]
    - `name` string, required
    - `payload` object, required
    - `base_updated_at` string, nullable
  - `ids` string[], nullable

## Response `200`

Successful Response

- SetResponse[]
  - `id` string, required
  - `name` string, required
  - `payload` object, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `deleted_at` string, date-time, 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)
