# One item type, with its schema and an example

> GET /item-types/{type}

Source: https://mockflow.com/developers/reference/items/get-item-type

**GET** `https://api.mockflow.com/v1/item-types/{type}`

**curl**

```bash
curl https://api.mockflow.com/v1/item-types/artifact \
  -H "Authorization: Bearer $MOCKFLOW_API_KEY"
```

**JavaScript**

```javascript
const response = await fetch("https://api.mockflow.com/v1/item-types/artifact", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.MOCKFLOW_API_KEY}`
  }
});

const data = await response.json();
```

**Python**

```python
import os, requests

response = requests.get(
    "https://api.mockflow.com/v1/item-types/artifact",
    headers={"Authorization": f"Bearer {os.environ['MOCKFLOW_API_KEY']}"},
)

response.raise_for_status()
data = response.json()
```

**200**

```json
{
  "type": "artifact",
  "label": "string",
  "hint": "string",
  "primitive": false,
  "creatable": false,
  "mcpTool": "string"
}
```

**404**

```json
{
  "error": {
    "code": "not_found",
    "message": "The resource does not exist or the token cannot see it.",
    "docsUrl": "https://mockflow.com/developers/concepts/errors#not_found"
  },
  "requestId": "req_45d49816999bac40"
}
```

**429**

```json
{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests.",
    "docsUrl": "https://mockflow.com/developers/concepts/errors#rate_limited"
  },
  "requestId": "req_45d49816999bac40"
}
```

The JSON schema for that type's `data`, exactly what POST /boards/{boardId}/items validates against, plus an example payload and the types it can be converted to.

### Authorization

- `Authorization` (string, required): `Bearer <key>`. Any key of the workspace. Create and manage keys in the [developer console](/developers/console/); what each scope unlocks is on the [scopes page](/developers/concepts/scopes).

### Path parameters

- `type` (enum<string>, required)

### Response

- `type` (enum<string>): Item types, generated from the MockFlow component registry. Primitive types are drawn by the editor; frame types are rich components whose `data` schema is the same one the MCP `render_*` tool accepts.
- `label` (string | null)
- `hint` (string | null)
- `primitive` (boolean)
- `creatable` (boolean)
- `mcpTool` (string | null)
- `readback` (enum<string>): One of `exact`, `unwrapped`, `text`, `pointer`, `parts` or `none`.
- `schemaRef` (string)
- `convertibleTo` (enum<string>[])
- `schema` (object)
- `example` (object)
- `docsUrl` (string)

### Errors

- 404 `not_found`: The resource does not exist or the token cannot see it.
- 429 `rate_limited`: Too many requests.
