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
idstringRequiredUnique ID of the view.
slugstringRequiredMade from the view's name and unique within its team, project or person, such as active.
namestringRequiredThe view's name, such as Active.
teamnullable objectRequiredThe team the view belongs to, or null.
projectnullable objectRequiredThe project the view belongs to, or null.
personnullable objectRequiredThe person whose own view this is, shown only to them on My work, or null.
filtersobjectRequiredWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringRequiredHow the view groups tickets.
statuscategoryownerclankertagprojectmilestoneteamnoneorderBystringRequiredHow the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.
manualcreatedupdatedlayoutstringRequiredHow the view draws its tickets: a list, a board, or the work layout.
listboardworkisDefaultbooleanRequiredWhether the owner's page opens this view: its Tickets page, or My work.
createdAtstringRequiredWhen it was created, as an ISO 8601 timestamp.
updatedAtstringRequiredWhen it last changed, as an ISO 8601 timestamp.
{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
Returns
Returns an object with these fields. Status 200.
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.
curl https://api.qa.clankership.net/v1/workspaces/acme/me/views \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
Body parameters
namestringRequiredThe view's name, up to 60 characters, unique within its team, project or person.
filtersobjectWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringHow the view groups tickets. Defaults to status.
statuscategoryownerclankertagprojectteamnoneorderBystringmanual follows the order people set by hand, created puts the newest first and updated the most recently changed. Defaults to manual.
manualcreatedupdatedlayoutstringA list, a board or the work layout. Defaults to list.
listboardworkReturns
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.
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" }'{ "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/Returns one of the caller's own views with the tickets it shows, in its order. Another member's view is NotFound.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
viewstringRequiredThe view's slug, such as active.
Returns
Returns an object with these fields. Status 200.
A view with the tickets it shows.
idstringRequiredUnique ID of the view.
slugstringRequiredMade from the view's name and unique within its team, project or person, such as active.
namestringRequiredThe view's name, such as Active.
teamnullable objectRequiredThe team the view belongs to, or null.
projectnullable objectRequiredThe project the view belongs to, or null.
personnullable objectRequiredThe person whose own view this is, shown only to them on My work, or null.
filtersobjectRequiredWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringRequiredHow the view groups tickets.
statuscategoryownerclankertagprojectmilestoneteamnoneorderBystringRequiredHow the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.
manualcreatedupdatedlayoutstringRequiredHow the view draws its tickets: a list, a board, or the work layout.
listboardworkisDefaultbooleanRequiredWhether the owner's page opens this view: its Tickets page, or My work.
createdAtstringRequiredWhen it was created, as an ISO 8601 timestamp.
updatedAtstringRequiredWhen it last changed, as an ISO 8601 timestamp.
ticketsarray of objectsRequiredThe tickets the view shows, in its order.
statusesarray of objectsRequiredEvery 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 objectRequiredFor 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.
curl https://api.qa.clankership.net/v1/workspaces/acme/me/views/{view} \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "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/Changes only the settings sent; filters replaces the saved filters. isDefault: true makes it the view My work opens.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
viewstringRequiredThe view's slug, such as active.
Body parameters
namestringThe view's name, up to 60 characters, unique within its team, project or person. A new name gives the view a new slug.
filtersobjectWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringHow the view groups tickets.
statuscategoryownerclankertagprojectteamnoneorderBystringmanual follows the order people set by hand, created puts the newest first and updated the most recently changed.
manualcreatedupdatedlayoutstringA list, a board or the work layout.
listboardworkisDefaultbooleantrue makes this the view the owner's page opens.
trueReturns
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.
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 }'{ "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/Deletes the view; it does not come back. The default view stays until another view is the default.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
viewstringRequiredThe 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.
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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
viewstringRequiredThe view's slug, such as active.
Body parameters
beforestringThe slug of the view to go right before.
afterstringThe 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.
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" }'{ "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/Returns the team's saved views. Every team starts with All tickets, Active and Backlog.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Returns
Returns an object with these fields. Status 200.
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.
curl https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Body parameters
namestringRequiredThe view's name, up to 60 characters, unique within its team, project or person.
filtersobjectWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringHow the view groups tickets. Defaults to status.
statuscategoryownerclankertagprojectnoneorderBystringmanual follows the order people set by hand, created puts the newest first and updated the most recently changed. Defaults to manual.
manualcreatedupdatedlayoutstringA list, a board or the work layout. Defaults to list.
listboardworkReturns
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.
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" }'{ "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/Returns the view with the tickets it shows, in its order, and the team's statuses for a status grouping's columns.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
viewstringRequiredThe view's slug, such as active.
Returns
Returns an object with these fields. Status 200.
A view with the tickets it shows.
idstringRequiredUnique ID of the view.
slugstringRequiredMade from the view's name and unique within its team, project or person, such as active.
namestringRequiredThe view's name, such as Active.
teamnullable objectRequiredThe team the view belongs to, or null.
projectnullable objectRequiredThe project the view belongs to, or null.
personnullable objectRequiredThe person whose own view this is, shown only to them on My work, or null.
filtersobjectRequiredWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringRequiredHow the view groups tickets.
statuscategoryownerclankertagprojectmilestoneteamnoneorderBystringRequiredHow the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.
manualcreatedupdatedlayoutstringRequiredHow the view draws its tickets: a list, a board, or the work layout.
listboardworkisDefaultbooleanRequiredWhether the owner's page opens this view: its Tickets page, or My work.
createdAtstringRequiredWhen it was created, as an ISO 8601 timestamp.
updatedAtstringRequiredWhen it last changed, as an ISO 8601 timestamp.
ticketsarray of objectsRequiredThe tickets the view shows, in its order.
statusesarray of objectsRequiredEvery 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 objectRequiredFor 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.
curl https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/views/{view} \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
viewstringRequiredThe view's slug, such as active.
Body parameters
namestringThe view's name, up to 60 characters, unique within its team, project or person. A new name gives the view a new slug.
filtersobjectWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringHow the view groups tickets.
statuscategoryownerclankertagprojectnoneorderBystringmanual follows the order people set by hand, created puts the newest first and updated the most recently changed.
manualcreatedupdatedlayoutstringA list, a board or the work layout.
listboardworkisDefaultbooleantrue makes this the view the owner's page opens.
trueReturns
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.
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 }'{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
viewstringRequiredThe 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.
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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
viewstringRequiredThe view's slug, such as active.
Body parameters
beforestringThe slug of the view to go right before.
afterstringThe 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.
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" }'{ "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/Returns the project's saved views. Every project starts with Board, its default, and All tickets.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
projectstringRequiredThe project's slug, such as docs-launch.
Returns
Returns an object with these fields. Status 200.
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.
curl https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
projectstringRequiredThe project's slug, such as docs-launch.
Body parameters
namestringRequiredThe view's name, up to 60 characters, unique within its team, project or person.
filtersobjectWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringHow the view groups tickets. Defaults to status.
statuscategoryownerclankertagmilestoneteamnoneorderBystringmanual follows the order people set by hand, created puts the newest first and updated the most recently changed. Defaults to manual.
manualcreatedupdatedlayoutstringA list, a board or the work layout. Defaults to list.
listboardworkReturns
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.
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" }'{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
projectstringRequiredThe project's slug, such as docs-launch.
viewstringRequiredThe view's slug, such as active.
Returns
Returns an object with these fields. Status 200.
A view with the tickets it shows.
idstringRequiredUnique ID of the view.
slugstringRequiredMade from the view's name and unique within its team, project or person, such as active.
namestringRequiredThe view's name, such as Active.
teamnullable objectRequiredThe team the view belongs to, or null.
projectnullable objectRequiredThe project the view belongs to, or null.
personnullable objectRequiredThe person whose own view this is, shown only to them on My work, or null.
filtersobjectRequiredWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringRequiredHow the view groups tickets.
statuscategoryownerclankertagprojectmilestoneteamnoneorderBystringRequiredHow the view orders tickets: manual follows the order people set by hand, created puts the newest first and updated the most recently changed.
manualcreatedupdatedlayoutstringRequiredHow the view draws its tickets: a list, a board, or the work layout.
listboardworkisDefaultbooleanRequiredWhether the owner's page opens this view: its Tickets page, or My work.
createdAtstringRequiredWhen it was created, as an ISO 8601 timestamp.
updatedAtstringRequiredWhen it last changed, as an ISO 8601 timestamp.
ticketsarray of objectsRequiredThe tickets the view shows, in its order.
statusesarray of objectsRequiredEvery 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 objectRequiredFor 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.
curl https://api.qa.clankership.net/v1/workspaces/acme/projects/{project}/views/{view} \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
projectstringRequiredThe project's slug, such as docs-launch.
viewstringRequiredThe view's slug, such as active.
Body parameters
namestringThe view's name, up to 60 characters, unique within its team, project or person. A new name gives the view a new slug.
filtersobjectWhich tickets a view shows. Filters combine with and; the values within one filter with or.
groupBystringHow the view groups tickets.
statuscategoryownerclankertagmilestoneteamnoneorderBystringmanual follows the order people set by hand, created puts the newest first and updated the most recently changed.
manualcreatedupdatedlayoutstringA list, a board or the work layout.
listboardworkisDefaultbooleantrue makes this the view the owner's page opens.
trueReturns
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.
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 }'{ "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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
projectstringRequiredThe project's slug, such as docs-launch.
viewstringRequiredThe 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.
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/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
slugstringRequiredThe workspace's slug or ID, such as acme.
projectstringRequiredThe project's slug, such as docs-launch.
viewstringRequiredThe view's slug, such as active.
Body parameters
beforestringThe slug of the view to go right before.
afterstringThe 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.
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" }'{ "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"}