# Update Font Tags

> Learn how to update tags on a custom font

- **URL**: https://orshot.com/docs/api-reference/custom-fonts-update

---

## Overview

This endpoint allows you to update the tags on a specific custom font in your workspace.```markdown tab="Endpoint"
https://api.orshot.com/v1/brand-assets/fonts/update/:id
```## Request

<Tabs items=>
<Tab value="Request">```js
await fetch("https://api.orshot.com/v1/brand-assets/fonts/update/456", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer <ORSHOT_API_KEY>",
  },
  body: JSON.stringify({
    tags: ["heading", "brand", "serif"],
  }),
});
```</Tab>
<Tab value="Response">```json
{
  "data": {
    "id": 456,
    "created_at": "2025-09-10T15:30:45.123Z",
    "name": "BrandFont-Bold.ttf",
    "file_url": "https://storage.orshot.com/custom-fonts/workspace_id/BrandFont-Bold.ttf",
    "tags": ["heading", "brand", "serif"],
    "workspace_id": 50,
    "user_id": "abcdef01-2345-6789-abcd-ef0123456789"
  }
}
```</Tab>
</Tabs>

## Path Parameters

| Parameter | Type   | Required | Description                                 |
| --------- | ------ | -------- | ------------------------------------------- |
| `id`      | Number | Yes      | The unique identifier of the font to update |

## Request Parameters

| Parameter | Type     | Required | Description                                                   |
| --------- | -------- | -------- | ------------------------------------------------------------- |
| `tags`    | String[] | Yes      | Array of tags to set on the font (replaces any existing tags) |

## Notes

- Tags are automatically normalized: trimmed, deduplicated (case-insensitive), and empty values are removed
- Passing an empty array `[]` will clear all tags from the font
- The font cache is automatically invalidated when tags are updated

## Error Responses

### Font Not Found (404)```json
{
  "error": "Font not found"
}
```### Invalid Tags (400)```json
{
  "error": "\"tags\" must be an array of strings"
}
```## Rate Limits

- 30 requests per minute per endpoint