# Get a tool tag

> Resolve one tool tag ID to its type and label.

Canonical page: https://www.rundiffusion.com/docs/api/tool-tags/get
Endpoint: GET /api/v2/tool-tags/{tool_tag_id}
Authorization: OAuth device flow or Personal API Access Token or Company API Access Token

---

One tag by ID. Useful when you have stored an ID and want its current label
without fetching the whole vocabulary; for anything more than a handful of
lookups, [list them](/docs/api/tool-tags/list) once and cache instead.

`GET /api/v2/tool-tags/{tool_tag_id}`

Authorization: OAuth device flow or Personal API Access Token or Company API Access Token

## Request

**Headers**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `Authorization` | string | Yes | Bearer token. This endpoint accepts an OAuth device flow token, a Personal API Access Token, or a Company API Access Token. See [Authentication](/docs/api/authentication). |

**Path**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `tool_tag_id` | string | Yes | A tool tag ID, as it appears in a tool's tool_tags array. |

cURL:

```bash
curl https://api2.rundiffusion.com/api/v2/tool-tags/9QmTz4… \
  -H "Authorization: Bearer $RUNDIFFUSION_TOKEN"
```

JavaScript:

```javascript
const tag = await fetch(
  'https://api2.rundiffusion.com/api/v2/tool-tags/9QmTz4…',
  { headers: { Authorization: `Bearer ${process.env.RUNDIFFUSION_TOKEN}` } },
).then(r => r.json());
```

Python:

```python
tag = requests.get(
    "https://api2.rundiffusion.com/api/v2/tool-tags/9QmTz4…",
    headers={"Authorization": f"Bearer {os.environ['RUNDIFFUSION_TOKEN']}"},
).json()
```

## Response

`200 OK` with the tool tag, in the same shape it takes inside a tool's
`tool_tags` array.

```json
{
  "id": "9QmTz4…",
  "type": "MEDIA",
  "label": "Video"
}
```

| Name | Type | Description |
| --- | --- | --- |
| `id` | string | The tool tag ID you requested. |
| `type` | string \| null | Which taxonomy the tool tag belongs to, for example MEDIA or MODEL_FAMILY. |
| `label` | string \| null | The human-readable name. Display this, never the id. |

## Errors

| Name | Type | Description |
| --- | --- | --- |
| `401` | UNAUTHENTICATED | Missing, malformed, or expired token. |
| `404` | TAG_NOT_FOUND | No visible tag with that ID. Also returned for a tag that exists but is deleted or internal: distinguishing those would disclose the tags the API withholds. |
| `429` | RATE_LIMITED | Too many requests. Back off and retry per the Retry-After header. See [Rate limits](/docs/api/rate-limits#tool-tags). |

See [Errors](/docs/api/errors) for the full envelope and the code list.
