---
title: "Set QR code tags"
method: PUT
path: "/tag/qr-code/{id}"
tags: ["Tags"]
---

# Set QR code tags

`PUT /tag/qr-code/{id}`

## Request

- Base URL: `https://api.qrcodly.de/api/v1`
- URL: `https://api.qrcodly.de/api/v1/tag/qr-code/{id}`
- Auth: HTTP bearer

Replaces all tags assigned to a QR code with the provided list of tag IDs. Pass an empty array to remove all tags. Returns the updated list of tags.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `tagIds` string[], required: Array of tag UUIDs to assign. Pass an empty array to remove all tags.

## Response `200`

Default Response

- object[]
  - `id` string, uuid, required: Unique identifier (UUID v4)
  - `createdAt` string, date-time, required: Timestamp when the resource was created (ISO 8601)
  - `updatedAt` string, date-time, nullable, required: Timestamp when the resource was last updated (ISO 8601), or null if never updated
  - `name` string, required: Tag display name (max 32 characters)
  - `color` string, required: Tag color as hex code (e.g. "#FF5733")
  - `createdBy` string, required: User ID of the tag owner
  - `qrCodeCount` number: Number of QR codes assigned to this tag

## Other responses

- `401`: Unauthorized — missing or invalid Bearer token.
- `403`: Forbidden — you do not have permission to access this resource.
- `404`: Not Found — the requested resource does not exist.
- `409`: Conflict — the request conflicts with existing data.
- `429`: Too Many Requests — rate limit exceeded. Retry after the rate limit window resets.

---

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