# General Translation Platform: Create or update a tag
URL: https://generaltranslation.com/en-US/docs/platform/openapi/reference/project/upsert-tag.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Create or upsert a tag that points at a set of file versions. API reference for Create or update a tag.

## Endpoint

`POST https://api.gtx.dev/v2/project/tags/create`

**Operation ID:** `createTag`

**Tags:** `Project`

**Summary:** Create or update a tag

Create or upsert a tag that points at a set of file versions.

Authentication: required. Send an API key in the `Authorization: Bearer <key>` header when authenticating.

### Parameters

- `gt-api-version` (header, "2025-01-01.v0" | "2025-11-03.v1" | "2026-02-18.v1" | "2026-03-06.v1", optional): API contract version. Defaults to the oldest supported version.
- `gt-project-id` (header, string, optional): Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.

### Request body (required)

Body (`application/json`, object):
- `tagId` (string, required)
- `files` (object[], required)
  - `fileId` (string, required)
  - `versionId` (string, required)
  - `branchId` (string, required)
- `message` (string)

### Responses

**200**: Created or updated file tag
Response body (`application/json`, object):
- `tag` (object, required)
  - `id` (string, required)
  - `tagId` (string, required)
  - `message` (string | null, required)
  - `createdAt` (string (date-time), required)
  - `updatedAt` (string (date-time), required)

**400**: Request error
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**401**: Request error
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**403**: Request error
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**413**: Request error
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**429**: Request error
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**500**: Request error
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

Complete OpenAPI 3.1 specification: https://generaltranslation.com/openapi.yaml

OpenAPI schema: [openapi.json](https://generaltranslation.com/openapi.json)

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
