---
title: "Create or update a Terraform state"
method: POST
path: "/api/v4/projects/{id}/terraform/state/{name}"
tags: ["terraform"]
---

# Create or update a Terraform state

`POST /api/v4/projects/{id}/terraform/state/{name}`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/projects/{id}/terraform/state/{name}`
- Auth: none declared

Creates or updates a Terraform state for a specified project.

## Path parameters

- `id` string, required
- `name` string, required

## Request body

- PostApiV4ProjectsIdTerraformStateName: Create or update a Terraform state
  - `file` string, binary, required: The package file to be published (generated by Multipart middleware)

## Response `200`

Create or update a Terraform state

## Other responses

- `204`: No data provided
- `403`: Forbidden
- `413`: Request Entity Too Large
- `422`: Validation failure

---

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