Search the docs

Search guides, API endpoints and MCP tools.

Views

A view is a saved way to look at tickets: filters, grouping, order and layout. Each view belongs to one team, one project or one person. Anyone who sees a team or project can read its views, and changes apply for everyone; a person's own views are the tabs of their My work and only they see them. Filters can name the reader: owner me, clanker mine, and mine for tickets the reader owns or their clankers work on.

The View object

A saved way to look at a team's, a project's or a person's tickets: filters, grouping, order and layout.

Attributes

idstringRequired

Unique ID of the view.

slugstringRequired

Made from the view's name and unique within its team, project or person, such as active.

namestringRequired

The view's name, such as Active.

teamnullable objectRequired

The team the view belongs to, or null.

projectnullable objectRequired

The project the view belongs to, or null.

personnullable objectRequired

The person whose own view this is, shown only to them on My work, or null.

filtersobjectRequired

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystringRequired

How the view groups tickets.

One ofstatuscategoryownerclankertagprojectmilestoneteamnone
orderBystringRequired

How the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.

One ofmanualcreatedupdated
layoutstringRequired

How the view draws its tickets: a list, a board, or the work layout.

One oflistboardwork
isDefaultbooleanRequired

Whether the owner's page opens this view: its Tickets page, or My work.

createdAtstringRequired

When it was created, as an ISO 8601 timestamp.

updatedAtstringRequired

When it last changed, as an ISO 8601 timestamp.

The View object
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

List your views

GET/v1/workspaces/{slug}/me/views

Returns the caller's own views, the tabs of their My work. Everyone starts with Work, List and Board, each showing the open tickets they own or their clankers work on; Work is the default. Only the caller sees them. An account API key has no person and gets InvalidInput.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

Returns

Returns an object with these fields. Status 200.

viewsarray of View objectsRequired

The views in tab order, as people arranged them.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/me/views
curl https://api.qa.clankership.net/v1/workspaces/acme/me/views \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "views": [    {      "id": "Vw4AcT8nRk2P",      "slug": "active",      "name": "Active",      "team": {        "id": "Tm6PzN3kWq1J",        "key": "WEB",        "name": "Web"      },      "project": null,      "person": null,      "filters": {        "categories": [          "planning",          "build",          "review"        ]      },      "groupBy": "status",      "orderBy": "manual",      "layout": "board",      "isDefault": false,      "createdAt": "2026-10-01T16:20:00.000Z",      "updatedAt": "2026-10-14T09:05:12.000Z"    }  ]}

Create one of your views

POST/v1/workspaces/{slug}/me/views

Saves a view of the tickets the caller can read, across every team, as a My work tab only they see. Personal views group by status, category, owner, clanker, tag, project, team or none. Viewers can save their own views too.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

Body parameters

namestringRequired

The view's name, up to 60 characters, unique within its team, project or person.

filtersobject

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystring

How the view groups tickets. Defaults to status.

One ofstatuscategoryownerclankertagprojectteamnone
orderBystring

manual follows the order people set by hand, created puts the newest first and updated the most recently changed. Defaults to manual.

One ofmanualcreatedupdated
layoutstring

A list, a board or the work layout. Defaults to list.

One oflistboardwork

Returns

Returns the View object. Status 201.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
POST/v1/workspaces/{slug}/me/views
curl -X POST https://api.qa.clankership.net/v1/workspaces/acme/me/views \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "My clankers",    "filters": {      "categories": [        "planning",        "build",        "review"      ],      "clankers": [        "mine"      ]    },    "groupBy": "status",    "layout": "board"  }'
Response201
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

Get one of your views

GET/v1/workspaces/{slug}/me/views/{view}

Returns one of the caller's own views with the tickets it shows, in its order. Another member's view is NotFound.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

viewstringRequired

The view's slug, such as active.

Returns

Returns an object with these fields. Status 200.

A view with the tickets it shows.

idstringRequired

Unique ID of the view.

slugstringRequired

Made from the view's name and unique within its team, project or person, such as active.

namestringRequired

The view's name, such as Active.

teamnullable objectRequired

The team the view belongs to, or null.

projectnullable objectRequired

The project the view belongs to, or null.

personnullable objectRequired

The person whose own view this is, shown only to them on My work, or null.

filtersobjectRequired

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystringRequired

How the view groups tickets.

One ofstatuscategoryownerclankertagprojectmilestoneteamnone
orderBystringRequired

How the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.

One ofmanualcreatedupdated
layoutstringRequired

How the view draws its tickets: a list, a board, or the work layout.

One oflistboardwork
isDefaultbooleanRequired

Whether the owner's page opens this view: its Tickets page, or My work.

createdAtstringRequired

When it was created, as an ISO 8601 timestamp.

updatedAtstringRequired

When it last changed, as an ISO 8601 timestamp.

ticketsarray of objectsRequired

The tickets the view shows, in its order.

statusesarray of objectsRequired

Every status of the view's teams, empty ones and ones its filters leave out included: the team's statuses, the union across a project's teams, or for a personal view the union across every team the person sees. Matching names and categories share one entry. The website shows the ones the filters select and offers the others as drop targets.

worknullable objectRequired

For a view with the Work layout, its crew, lanes and log; otherwise null.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/me/views/{view}
curl https://api.qa.clankership.net/v1/workspaces/acme/me/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z",  "tickets": [    {      "id": "Tk7BnC5xLp9M",      "identifier": "WEB-31",      "number": 31,      "team": {        "id": "Tm6PzN3kWq1J",        "key": "WEB",        "name": "Web",        "visibility": "open"      },      "title": "Add docs search",      "summary": "Readers cannot find a page without browsing the sidebar. Add a search box to the docs header.",      "status": {        "id": "St3BdV6nHs9D",        "name": "In Build",        "category": "build",        "position": 2,        "isDefault": false      },      "owner": {        "id": "Us3NfP8kLq2V",        "name": "Maya Patel",        "email": "maya@acme.dev",        "image": null      },      "clankers": [        {          "id": "Ag5HvB1mZr8K",          "name": "Codex",          "person": {            "id": "Us3NfP8kLq2V",            "name": "Maya Patel",            "email": "maya@acme.dev",            "image": null          }        }      ],      "project": {        "id": "Pj2KsV8dRf4N",        "slug": "docs-launch",        "name": "Docs launch"      },      "milestone": {        "id": "Ms2SrC9vLm4D",        "number": 2,        "name": "Search"      },      "tags": [        {          "id": "Tg3FtR7nWq2K",          "name": "feature",          "color": "cobalt",          "team": null        }      ],      "checklist": {        "done": 1,        "total": 3      },      "rank": 31.5,      "createdAt": "2026-10-01T16:20:00.000Z",      "updatedAt": "2026-10-14T09:05:12.000Z"    }  ],  "statuses": [    {      "id": "St1BkL4pQx7N",      "name": "Backlog",      "category": "backlog",      "position": 0,      "isDefault": true,      "teams": [        "WEB"      ]    },    {      "id": "St2PlN8mRc3K",      "name": "In Planning",      "category": "planning",      "position": 1,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St3BdV6nHs9D",      "name": "In Build",      "category": "build",      "position": 2,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St4IrG2wZf5M",      "name": "In Review",      "category": "review",      "position": 3,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St5ShY7kPb1Q",      "name": "Shipped",      "category": "shipped",      "position": 4,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St6CnJ3xTe8L",      "name": "Canceled",      "category": "canceled",      "position": 5,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St7DpR9vLw2H",      "name": "Duplicate",      "category": "canceled",      "position": 6,      "isDefault": false,      "teams": [        "WEB"      ]    }  ],  "work": null}

Update one of your views

PATCH/v1/workspaces/{slug}/me/views/{view}

Changes only the settings sent; filters replaces the saved filters. isDefault: true makes it the view My work opens.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

viewstringRequired

The view's slug, such as active.

Body parameters

namestring

The view's name, up to 60 characters, unique within its team, project or person. A new name gives the view a new slug.

filtersobject

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystring

How the view groups tickets.

One ofstatuscategoryownerclankertagprojectteamnone
orderBystring

manual follows the order people set by hand, created puts the newest first and updated the most recently changed.

One ofmanualcreatedupdated
layoutstring

A list, a board or the work layout.

One oflistboardwork
isDefaultboolean

true makes this the view the owner's page opens.

Always true

Returns

Returns the View object. Status 200.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
PATCH/v1/workspaces/{slug}/me/views/{view}
curl -X PATCH https://api.qa.clankership.net/v1/workspaces/acme/me/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "layout": "board",    "isDefault": true  }'
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

Delete one of your views

DELETE/v1/workspaces/{slug}/me/views/{view}

Deletes the view; it does not come back. The default view stays until another view is the default.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

viewstringRequired

The view's slug, such as active.

Returns

Returns no content. Status 204.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
DELETE/v1/workspaces/{slug}/me/views/{view}
curl -X DELETE https://api.qa.clankership.net/v1/workspaces/acme/me/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY"

Reorder one of your views

POST/v1/workspaces/{slug}/me/views/{view}/reorder

Moves the view right before or right after another of your views, changing the order of your My work tabs. Send before or after, not both. Viewers can reorder their own views.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

viewstringRequired

The view's slug, such as active.

Body parameters

beforestring

The slug of the view to go right before.

afterstring

The slug of the view to go right after.

Returns

Returns the View object. Status 200.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
POST/v1/workspaces/{slug}/me/views/{view}/reorder
curl -X POST https://api.qa.clankership.net/v1/workspaces/acme/me/views/{view}/reorder \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "before": "active"  }'
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

List a team's views

GET/v1/workspaces/{slug}/teams/{team}/views

Returns the team's saved views. Every team starts with All tickets, Active and Backlog.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

teamstringRequired

The team's key, such as WEB.

Returns

Returns an object with these fields. Status 200.

viewsarray of View objectsRequired

The views in tab order, as people arranged them.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/teams/{team}/views
curl https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "views": [    {      "id": "Vw4AcT8nRk2P",      "slug": "active",      "name": "Active",      "team": {        "id": "Tm6PzN3kWq1J",        "key": "WEB",        "name": "Web"      },      "project": null,      "person": null,      "filters": {        "categories": [          "planning",          "build",          "review"        ]      },      "groupBy": "status",      "orderBy": "manual",      "layout": "board",      "isDefault": false,      "createdAt": "2026-10-01T16:20:00.000Z",      "updatedAt": "2026-10-14T09:05:12.000Z"    }  ]}

Create a team view

POST/v1/workspaces/{slug}/teams/{team}/views

Saves a view of the team's tickets, with a slug made from its name. Team views group by status, category, owner, clanker, tag, project or none. Members of the team and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

teamstringRequired

The team's key, such as WEB.

Body parameters

namestringRequired

The view's name, up to 60 characters, unique within its team, project or person.

filtersobject

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystring

How the view groups tickets. Defaults to status.

One ofstatuscategoryownerclankertagprojectnone
orderBystring

manual follows the order people set by hand, created puts the newest first and updated the most recently changed. Defaults to manual.

One ofmanualcreatedupdated
layoutstring

A list, a board or the work layout. Defaults to list.

One oflistboardwork

Returns

Returns the View object. Status 201.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
POST/v1/workspaces/{slug}/teams/{team}/views
curl -X POST https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "Search work",    "filters": {      "categories": [        "planning",        "build",        "review"      ],      "tags": [        "feature"      ]    },    "groupBy": "clanker",    "layout": "board"  }'
Response201
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

Get a team view

GET/v1/workspaces/{slug}/teams/{team}/views/{view}

Returns the view with the tickets it shows, in its order, and the team's statuses for a status grouping's columns.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

teamstringRequired

The team's key, such as WEB.

viewstringRequired

The view's slug, such as active.

Returns

Returns an object with these fields. Status 200.

A view with the tickets it shows.

idstringRequired

Unique ID of the view.

slugstringRequired

Made from the view's name and unique within its team, project or person, such as active.

namestringRequired

The view's name, such as Active.

teamnullable objectRequired

The team the view belongs to, or null.

projectnullable objectRequired

The project the view belongs to, or null.

personnullable objectRequired

The person whose own view this is, shown only to them on My work, or null.

filtersobjectRequired

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystringRequired

How the view groups tickets.

One ofstatuscategoryownerclankertagprojectmilestoneteamnone
orderBystringRequired

How the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.

One ofmanualcreatedupdated
layoutstringRequired

How the view draws its tickets: a list, a board, or the work layout.

One oflistboardwork
isDefaultbooleanRequired

Whether the owner's page opens this view: its Tickets page, or My work.

createdAtstringRequired

When it was created, as an ISO 8601 timestamp.

updatedAtstringRequired

When it last changed, as an ISO 8601 timestamp.

ticketsarray of objectsRequired

The tickets the view shows, in its order.

statusesarray of objectsRequired

Every status of the view's teams, empty ones and ones its filters leave out included: the team's statuses, the union across a project's teams, or for a personal view the union across every team the person sees. Matching names and categories share one entry. The website shows the ones the filters select and offers the others as drop targets.

worknullable objectRequired

For a view with the Work layout, its crew, lanes and log; otherwise null.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/teams/{team}/views/{view}
curl https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z",  "tickets": [    {      "id": "Tk7BnC5xLp9M",      "identifier": "WEB-31",      "number": 31,      "team": {        "id": "Tm6PzN3kWq1J",        "key": "WEB",        "name": "Web",        "visibility": "open"      },      "title": "Add docs search",      "summary": "Readers cannot find a page without browsing the sidebar. Add a search box to the docs header.",      "status": {        "id": "St3BdV6nHs9D",        "name": "In Build",        "category": "build",        "position": 2,        "isDefault": false      },      "owner": {        "id": "Us3NfP8kLq2V",        "name": "Maya Patel",        "email": "maya@acme.dev",        "image": null      },      "clankers": [        {          "id": "Ag5HvB1mZr8K",          "name": "Codex",          "person": {            "id": "Us3NfP8kLq2V",            "name": "Maya Patel",            "email": "maya@acme.dev",            "image": null          }        }      ],      "project": {        "id": "Pj2KsV8dRf4N",        "slug": "docs-launch",        "name": "Docs launch"      },      "milestone": {        "id": "Ms2SrC9vLm4D",        "number": 2,        "name": "Search"      },      "tags": [        {          "id": "Tg3FtR7nWq2K",          "name": "feature",          "color": "cobalt",          "team": null        }      ],      "checklist": {        "done": 1,        "total": 3      },      "rank": 31.5,      "createdAt": "2026-10-01T16:20:00.000Z",      "updatedAt": "2026-10-14T09:05:12.000Z"    }  ],  "statuses": [    {      "id": "St1BkL4pQx7N",      "name": "Backlog",      "category": "backlog",      "position": 0,      "isDefault": true,      "teams": [        "WEB"      ]    },    {      "id": "St2PlN8mRc3K",      "name": "In Planning",      "category": "planning",      "position": 1,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St3BdV6nHs9D",      "name": "In Build",      "category": "build",      "position": 2,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St4IrG2wZf5M",      "name": "In Review",      "category": "review",      "position": 3,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St5ShY7kPb1Q",      "name": "Shipped",      "category": "shipped",      "position": 4,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St6CnJ3xTe8L",      "name": "Canceled",      "category": "canceled",      "position": 5,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St7DpR9vLw2H",      "name": "Duplicate",      "category": "canceled",      "position": 6,      "isDefault": false,      "teams": [        "WEB"      ]    }  ],  "work": null}

Update a team view

PATCH/v1/workspaces/{slug}/teams/{team}/views/{view}

Changes only the settings sent, for everyone who opens the view; filters replaces the saved filters. Members of the team and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

teamstringRequired

The team's key, such as WEB.

viewstringRequired

The view's slug, such as active.

Body parameters

namestring

The view's name, up to 60 characters, unique within its team, project or person. A new name gives the view a new slug.

filtersobject

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystring

How the view groups tickets.

One ofstatuscategoryownerclankertagprojectnone
orderBystring

manual follows the order people set by hand, created puts the newest first and updated the most recently changed.

One ofmanualcreatedupdated
layoutstring

A list, a board or the work layout.

One oflistboardwork
isDefaultboolean

true makes this the view the owner's page opens.

Always true

Returns

Returns the View object. Status 200.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
PATCH/v1/workspaces/{slug}/teams/{team}/views/{view}
curl -X PATCH https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "layout": "board",    "isDefault": true  }'
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

Delete a team view

DELETE/v1/workspaces/{slug}/teams/{team}/views/{view}

Deletes the view. The default view stays until another view is the default. Members of the team and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

teamstringRequired

The team's key, such as WEB.

viewstringRequired

The view's slug, such as active.

Returns

Returns no content. Status 204.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
DELETE/v1/workspaces/{slug}/teams/{team}/views/{view}
curl -X DELETE https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY"

Reorder a team view

POST/v1/workspaces/{slug}/teams/{team}/views/{view}/reorder

Moves the view right before or right after another of the team's views, changing the order of its tabs for everyone. Send before or after, not both. Members of the team and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

teamstringRequired

The team's key, such as WEB.

viewstringRequired

The view's slug, such as active.

Body parameters

beforestring

The slug of the view to go right before.

afterstring

The slug of the view to go right after.

Returns

Returns the View object. Status 200.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
POST/v1/workspaces/{slug}/teams/{team}/views/{view}/reorder
curl -X POST https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views/{view}/reorder \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "before": "active"  }'
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

List a project's views

GET/v1/workspaces/{slug}/projects/{project}/views

Returns the project's saved views. Every project starts with Board, its default, and All tickets.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

projectstringRequired

The project's slug, such as docs-launch.

Returns

Returns an object with these fields. Status 200.

viewsarray of View objectsRequired

The views in tab order, as people arranged them.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/projects/{project}/views
curl https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "views": [    {      "id": "Vw4AcT8nRk2P",      "slug": "active",      "name": "Active",      "team": {        "id": "Tm6PzN3kWq1J",        "key": "WEB",        "name": "Web"      },      "project": null,      "person": null,      "filters": {        "categories": [          "planning",          "build",          "review"        ]      },      "groupBy": "status",      "orderBy": "manual",      "layout": "board",      "isDefault": false,      "createdAt": "2026-10-01T16:20:00.000Z",      "updatedAt": "2026-10-14T09:05:12.000Z"    }  ]}

Create a project view

POST/v1/workspaces/{slug}/projects/{project}/views

Saves a view of the project's tickets, with a slug made from its name. Project views group by status, category, owner, clanker, tag, milestone, team or none. Members of the project's teams and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

projectstringRequired

The project's slug, such as docs-launch.

Body parameters

namestringRequired

The view's name, up to 60 characters, unique within its team, project or person.

filtersobject

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystring

How the view groups tickets. Defaults to status.

One ofstatuscategoryownerclankertagmilestoneteamnone
orderBystring

manual follows the order people set by hand, created puts the newest first and updated the most recently changed. Defaults to manual.

One ofmanualcreatedupdated
layoutstring

A list, a board or the work layout. Defaults to list.

One oflistboardwork

Returns

Returns the View object. Status 201.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
POST/v1/workspaces/{slug}/projects/{project}/views
curl -X POST https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "By milestone",    "filters": {      "categories": [        "planning",        "build",        "review"      ]    },    "groupBy": "milestone"  }'
Response201
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

Get a project view

GET/v1/workspaces/{slug}/projects/{project}/views/{view}

Returns the view with the tickets it shows, in its order. A status grouping uses the statuses the project's teams share as columns, or categories when their statuses differ.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

projectstringRequired

The project's slug, such as docs-launch.

viewstringRequired

The view's slug, such as active.

Returns

Returns an object with these fields. Status 200.

A view with the tickets it shows.

idstringRequired

Unique ID of the view.

slugstringRequired

Made from the view's name and unique within its team, project or person, such as active.

namestringRequired

The view's name, such as Active.

teamnullable objectRequired

The team the view belongs to, or null.

projectnullable objectRequired

The project the view belongs to, or null.

personnullable objectRequired

The person whose own view this is, shown only to them on My work, or null.

filtersobjectRequired

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystringRequired

How the view groups tickets.

One ofstatuscategoryownerclankertagprojectmilestoneteamnone
orderBystringRequired

How the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.

One ofmanualcreatedupdated
layoutstringRequired

How the view draws its tickets: a list, a board, or the work layout.

One oflistboardwork
isDefaultbooleanRequired

Whether the owner's page opens this view: its Tickets page, or My work.

createdAtstringRequired

When it was created, as an ISO 8601 timestamp.

updatedAtstringRequired

When it last changed, as an ISO 8601 timestamp.

ticketsarray of objectsRequired

The tickets the view shows, in its order.

statusesarray of objectsRequired

Every status of the view's teams, empty ones and ones its filters leave out included: the team's statuses, the union across a project's teams, or for a personal view the union across every team the person sees. Matching names and categories share one entry. The website shows the ones the filters select and offers the others as drop targets.

worknullable objectRequired

For a view with the Work layout, its crew, lanes and log; otherwise null.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
GET/v1/workspaces/{slug}/projects/{project}/views/{view}
curl https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY"
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z",  "tickets": [    {      "id": "Tk7BnC5xLp9M",      "identifier": "WEB-31",      "number": 31,      "team": {        "id": "Tm6PzN3kWq1J",        "key": "WEB",        "name": "Web",        "visibility": "open"      },      "title": "Add docs search",      "summary": "Readers cannot find a page without browsing the sidebar. Add a search box to the docs header.",      "status": {        "id": "St3BdV6nHs9D",        "name": "In Build",        "category": "build",        "position": 2,        "isDefault": false      },      "owner": {        "id": "Us3NfP8kLq2V",        "name": "Maya Patel",        "email": "maya@acme.dev",        "image": null      },      "clankers": [        {          "id": "Ag5HvB1mZr8K",          "name": "Codex",          "person": {            "id": "Us3NfP8kLq2V",            "name": "Maya Patel",            "email": "maya@acme.dev",            "image": null          }        }      ],      "project": {        "id": "Pj2KsV8dRf4N",        "slug": "docs-launch",        "name": "Docs launch"      },      "milestone": {        "id": "Ms2SrC9vLm4D",        "number": 2,        "name": "Search"      },      "tags": [        {          "id": "Tg3FtR7nWq2K",          "name": "feature",          "color": "cobalt",          "team": null        }      ],      "checklist": {        "done": 1,        "total": 3      },      "rank": 31.5,      "createdAt": "2026-10-01T16:20:00.000Z",      "updatedAt": "2026-10-14T09:05:12.000Z"    }  ],  "statuses": [    {      "id": "St1BkL4pQx7N",      "name": "Backlog",      "category": "backlog",      "position": 0,      "isDefault": true,      "teams": [        "WEB"      ]    },    {      "id": "St2PlN8mRc3K",      "name": "In Planning",      "category": "planning",      "position": 1,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St3BdV6nHs9D",      "name": "In Build",      "category": "build",      "position": 2,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St4IrG2wZf5M",      "name": "In Review",      "category": "review",      "position": 3,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St5ShY7kPb1Q",      "name": "Shipped",      "category": "shipped",      "position": 4,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St6CnJ3xTe8L",      "name": "Canceled",      "category": "canceled",      "position": 5,      "isDefault": false,      "teams": [        "WEB"      ]    },    {      "id": "St7DpR9vLw2H",      "name": "Duplicate",      "category": "canceled",      "position": 6,      "isDefault": false,      "teams": [        "WEB"      ]    }  ],  "work": null}

Update a project view

PATCH/v1/workspaces/{slug}/projects/{project}/views/{view}

Changes only the settings sent, for everyone who opens the view; filters replaces the saved filters. Members of the project's teams and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

projectstringRequired

The project's slug, such as docs-launch.

viewstringRequired

The view's slug, such as active.

Body parameters

namestring

The view's name, up to 60 characters, unique within its team, project or person. A new name gives the view a new slug.

filtersobject

Which tickets a view shows. Filters combine with and; the values within one filter with or.

groupBystring

How the view groups tickets.

One ofstatuscategoryownerclankertagmilestoneteamnone
orderBystring

manual follows the order people set by hand, created puts the newest first and updated the most recently changed.

One ofmanualcreatedupdated
layoutstring

A list, a board or the work layout.

One oflistboardwork
isDefaultboolean

true makes this the view the owner's page opens.

Always true

Returns

Returns the View object. Status 200.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
PATCH/v1/workspaces/{slug}/projects/{project}/views/{view}
curl -X PATCH https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "layout": "board",    "isDefault": true  }'
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}

Delete a project view

DELETE/v1/workspaces/{slug}/projects/{project}/views/{view}

Deletes the view. The default view stays until another view is the default. Members of the project's teams and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

projectstringRequired

The project's slug, such as docs-launch.

viewstringRequired

The view's slug, such as active.

Returns

Returns no content. Status 204.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
DELETE/v1/workspaces/{slug}/projects/{project}/views/{view}
curl -X DELETE https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views/{view} \  -H "Authorization: Bearer $CLANKER_API_KEY"

Reorder a project view

POST/v1/workspaces/{slug}/projects/{project}/views/{view}/reorder

Moves the view right before or right after another of the project's views, changing the order of its tabs for everyone. Send before or after, not both. Members of the project's teams and workspace owners and admins change its views; viewers cannot.

Path parameters

slugstringRequired

The workspace's slug or ID, such as acme.

projectstringRequired

The project's slug, such as docs-launch.

viewstringRequired

The view's slug, such as active.

Body parameters

beforestring

The slug of the view to go right before.

afterstring

The slug of the view to go right after.

Returns

Returns the View object. Status 200.

Errors

400
InvalidInputThe request is malformed, or a value is not allowed.
401
UnauthorizedThe request has no valid API key.
403
ForbiddenThe key's user or role may not do this.
404
NotFoundThe workspace or object does not exist, or the caller cannot see it.
409
ConflictThe change conflicts with current data, such as a slug that is already in use.
500
InternalClanker Ship failed to handle the request. Retry, or report the response's x-request-id.
POST/v1/workspaces/{slug}/projects/{project}/views/{view}/reorder
curl -X POST https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views/{view}/reorder \  -H "Authorization: Bearer $CLANKER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "before": "active"  }'
Response200
{  "id": "Vw4AcT8nRk2P",  "slug": "active",  "name": "Active",  "team": {    "id": "Tm6PzN3kWq1J",    "key": "WEB",    "name": "Web"  },  "project": null,  "person": null,  "filters": {    "categories": [      "planning",      "build",      "review"    ]  },  "groupBy": "status",  "orderBy": "manual",  "layout": "board",  "isDefault": false,  "createdAt": "2026-10-01T16:20:00.000Z",  "updatedAt": "2026-10-14T09:05:12.000Z"}