Create (fork) a saved view
post
/v1/workspaces/{workspace_id}/viewsSaves a new records view — the fork half of fork-or-mutate. Capturing the current filters, sort, and columns as a named view forks a transient default view into a persisted one. Set is_default to promote it (the previous default is demoted).
Requires a bearer token: Authorization: Bearer <token>.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_id | string <uuid> | Yes | Workspace id that owns the view.e.g. 11111111-2222-3333-4444-555555555555 |
Request
cURL
curl -X POST https://api.wellapp.ai/v1/workspaces/{workspace_id}/views \
-H "Authorization: Bearer $WELL_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"data": {
"type": "workspace_view",
"attributes": {
"name": "Overdue Anthropic invoices",
"root": "invoices",
"filters": [
{
"field": "status",
"operator": "in",
"value": [
"issued"
],
"conjunction": "and"
}
],
"sort": [
{
"field": "due_date",
"direction": "asc"
}
],
"is_default": false,
"layout_type": "kanban",
"group_by": [
"status"
]
}
}
}'Request body
{
"data": {
"type": "workspace_view",
"attributes": {
"name": "Overdue Anthropic invoices",
"root": "invoices",
"filters": [
{
"field": "status",
"operator": "in",
"value": [
"issued"
],
"conjunction": "and"
}
],
"sort": [
{
"field": "due_date",
"direction": "asc"
}
],
"is_default": false,
"layout_type": "kanban",
"group_by": [
"status"
]
}
}
}Responses
201 — View created.
{
"data": {
"type": "workspace_view",
"id": "5c1a2b3d-0000-4000-8000-000000000001",
"attributes": {
"name": "Overdue Anthropic invoices",
"root": "invoices",
"columns": [
{
"field": "issuer.name",
"visible": true
},
{
"field": "grand_total.amount",
"visible": true
}
],
"sort": [
{
"field": "due_date",
"direction": "asc"
}
],
"filters": [
{
"field": "status",
"operator": "in",
"value": [
"issued"
],
"conjunction": "and"
},
{
"field": "issuer.name",
"operator": "contains",
"value": "Anthropic"
}
],
"display": "table",
"layout_config": {},
"is_default": false,
"created_at": "2026-06-01T10:00:00.000Z",
"updated_at": "2026-06-05T14:00:00.000Z"
}
}
}400 — Bad Request
{
"code": "BAD_REQUEST",
"status": 0,
"title": "Bad Request",
"message": "Validation failed.",
"meta": {
"trace_id": "a1b2c3"
}
}401 — Unauthorized
{
"code": "UNAUTHORIZED",
"status": 0,
"title": "Unauthorized",
"message": "Authentication required.",
"meta": {
"trace_id": "a1b2c3"
}
}