---
title: "Archive a survey"
method: POST
path: "/api/v3/surveys/{surveyId}/archive"
tags: ["V3 Surveys"]
---

# Archive a survey

`POST /api/v3/surveys/{surveyId}/archive`

Archives (soft-deletes) a survey by id. Archived surveys are hidden from the default list, stop collecting responses, and become read-only until restored — a subsequent `PATCH` returns **422**. Works on any survey, including legacy question-based surveys, so this endpoint returns a minimal lifecycle acknowledgement rather than the full survey resource. Session cookie or x-api-key.

## Path parameters

- `surveyId` string, cuid2, required

## Response `200`

Survey archived successfully

- object
  - `data` object, required
    - `id` string, required — Survey identifier.
    - `status` 'draft' | 'inProgress' | 'paused' | 'completed', required — Current survey status.
    - `archivedAt` string, date-time, nullable, required — Soft-delete/archive marker (ISO 8601). A timestamp after archiving; `null` when the survey is active.

## Other responses

- `400` — Bad Request — malformed JSON, invalid query/body/params, duplicate name, or unsupported field.
- `401` — Not authenticated (no valid session or API key).
- `403` — Forbidden — no workspace access, or resource does not exist (404 not used; avoids existence leak).
- `429` — Rate limit exceeded.
- `500` — Internal Server Error.

## Changes

- **2026-08-04** `aa2a946d376d` — 5 warning
  - added the new `service_unavailable` enum value to the `code` response property for the response status `400`
  - added the new `service_unavailable` enum value to the `code` response property for the response status `401`
  - added the new `service_unavailable` enum value to the `code` response property for the response status `403`
  - added the new `service_unavailable` enum value to the `code` response property for the response status `429`
  - …1 more
- **2026-07-31** `252a618df054` — 40 warning
  - added the new `conflict` enum value to the `code` response property for the response status `400`
  - added the new `conflict` enum value to the `code` response property for the response status `401`
  - added the new `conflict` enum value to the `code` response property for the response status `403`
  - added the new `conflict` enum value to the `code` response property for the response status `429`
  - …36 more
- **2026-07-30** `9010a37ad024` — 5 warning
  - added the new `ai_output_too_long` enum value to the `code` response property for the response status `400`
  - added the new `ai_output_too_long` enum value to the `code` response property for the response status `401`
  - added the new `ai_output_too_long` enum value to the `code` response property for the response status `403`
  - added the new `ai_output_too_long` enum value to the `code` response property for the response status `429`
  - …1 more
- …earlier changes not shown

[Full history](https://skmtc.dev/formbricks/apis/formbricks-api-v3/changes/api/v3/surveys/:surveyId/archive/post.md)

---

[API](https://skmtc.dev/formbricks/apis/formbricks-api-v3.md) · [All operations](https://skmtc.dev/formbricks/apis/formbricks-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/formbricks/formbricks-api-v3/revisions/3c2c022e49d2/schema)
