# /tags

4 routes.

## GET /v1/tags

List tags

**Scopes** — `tags:read`

**Query**

| parameter | type | | limit |
|---|---|---|---|
| `limit` | integer | optional | max 200 |
| `cursor` | string | optional | max 4096 chars |
| `updated_since` | string | optional | max 24 chars |

**Errors** — [unauthorized](/errors/unauthorized) · [rate_limited](/errors/rate_limited)

## POST /v1/tags

Create a tag, or return the existing one

**Scopes** — `tags:write`

**Request body**

| field | type | | limit |
|---|---|---|---|
| `name` | string | required | max 64 chars, min 1 |
| `colorHex` | string | optional | max 16 chars, — |

**Errors** — [unauthorized](/errors/unauthorized) · [rate_limited](/errors/rate_limited)

## PATCH /v1/tags/{id}

Change a tag colour (renaming is refused)

**Scopes** — `tags:write`

**Request body**

| field | type | | limit |
|---|---|---|---|
| `colorHex` | string | required | max 16 chars, — |

**Errors** — [validation_failed](/errors/validation_failed) · [unauthorized](/errors/unauthorized) · [rate_limited](/errors/rate_limited)

## DELETE /v1/tags/{id}

Delete a tag and remove it from every to-do

**Scopes** — `tags:write`

**Errors** — [unauthorized](/errors/unauthorized) · [rate_limited](/errors/rate_limited)
