---
title: "Migrate a legacy survey"
method: POST
path: "/engagement/surveys/{surveyId}/migrate"
tags: ["Engagement Survey"]
---

# Migrate a legacy survey

`POST /engagement/surveys/{surveyId}/migrate`

## Request

- Base URL: `https://api.gleap.io/v3`
- URL: `https://api.gleap.io/v3/engagement/surveys/{surveyId}/migrate`
- Auth: HTTP bearer

Convert a legacy survey to Surveys 2.0 (published as version 1) and move its answer tickets into
survey responses. Idempotent. Up to 1000 tickets move in the request; the rest continue in the
background. Returns the outbound (with `survey`) and `migration: { status: 'done'|'running',
responses?, warnings? }`; 422 `{ errors }` when the legacy form cannot be converted.

## Path parameters

- `surveyId` string, required

## Headers

- `project` string, required

## Response `200`

Ok

- unknown

## Changes

- **2026-10-08** `fd83cd1963c4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gleap/apis/gleap-server/changes/engagement/surveys/:surveyId/migrate/post.md)

---

[API](https://skmtc.dev/gleap/apis/gleap-server.md) - [All operations](https://skmtc.dev/gleap/apis/gleap-server/llms.txt) - [OpenAPI document](https://skmtc.dev/gleap/apis/gleap-server/revisions/3b025e883cef?raw)
