Teams
A team is a group of workspace members that owns tickets. Its key, such as WEB, starts the IDs of its tickets (WEB-31), and each team has its own ticket statuses and views. Open teams are listed for everyone; private teams only for their members and for owners and admins.
The Team object
A group of workspace members that owns tickets and numbers them with its key, such as WEB-31.
Attributes
idstringRequiredUnique ID of the team.
keystringRequired2 to 5 capital letters that start the team's ticket IDs, such as WEB.
namestringRequiredThe team's display name.
visibilitystringRequiredWho sees the team: open teams are listed for everyone in the workspace, private teams only for their members and for owners and admins.
openprivatearchivedAtnullable stringRequiredWhen it was archived, as an ISO 8601 timestamp; null while active.
membersarray of objectsRequiredThe team's members, sorted by name.
joinedbooleanRequiredWhether the caller is a member. Always false for an account API key.
createdAtstringRequiredWhen it was created, as an ISO 8601 timestamp.
updatedAtstringRequiredWhen it last changed, as an ISO 8601 timestamp.
{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}List teams
GET/Returns open teams and the private teams the caller is in; owners, admins and account API keys see every team. Archived teams are left out unless archived asks for them.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
Query parameters
archivedstringWhich archived teams to return: exclude (the default), include or only archived ones.
excludeincludeonlyReturns
Returns an object with these fields. Status 200.
The teams, sorted by name.
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 \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "teams": [ { "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z" } ]}Create a team
POST/Owners and admins create teams. The key and name must be unused in the workspace. The team copies the workspace's ticket status template, starts with the default views, and the person who creates it joins it.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
Body parameters
namestringRequiredThe team's display name, up to 80 characters, unique in the workspace.
keystringRequired2 to 5 letters that start the team's ticket IDs, such as WEB. Stored in capitals.
visibilitystringopen lists the team for everyone in the workspace; private only for its members and for owners and admins. Defaults to open.
openprivateReturns
Returns the Team 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 \ -H "Authorization: Bearer $CLANKER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Web", "key": "WEB", "visibility": "open" }'{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}Get a team
GET/Returns one team, archived or not, with its members. A caller who cannot see a private team gets NotFound.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Returns
Returns the Team 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 https://api.qa.clankership.net/v1/workspaces/acme/teams/{team} \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}Update a team
PATCH/Owners and admins change teams. Only the fields sent change. A new key or name must be unused, and the key changes only while the team has no tickets.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Body parameters
namestringThe team's display name, up to 80 characters, unique in the workspace.
keystring2 to 5 letters that start the team's ticket IDs, such as WEB. Changes only while the team has no tickets.
visibilitystringopen lists the team for everyone in the workspace; private only for its members and for owners and admins.
openprivateReturns
Returns the Team 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} \ -H "Authorization: Bearer $CLANKER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Web platform", "visibility": "private" }'{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}Delete a team
DELETE/Owners and admins delete a team that has no tickets. A team with tickets fails with Conflict; archive it instead.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
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} \ -H "Authorization: Bearer $CLANKER_API_KEY"Archive a team
POST/Owners and admins archive teams. The team leaves lists, and its tickets stay readable but take no changes until it is restored. Archiving an archived team changes nothing.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Returns
Returns the Team 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}/archive \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}Restore a team
POST/Owners and admins bring an archived team back, so its tickets take changes again. Restoring an active team changes nothing.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Returns
Returns the Team 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}/restore \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}Join a team
POST/Adds the caller to an open team. Owners and admins can also join private teams, and an account API key cannot join any. Joining a team twice changes nothing.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Returns
Returns the Team 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}/join \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}Add a team member
POST/Adds a workspace member to the team, which is how private teams grow. The team's members and workspace owners and admins add people; viewers cannot. Adding a member twice changes nothing.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
Body parameters
personstringRequiredThe workspace member to add, by user ID or email address.
Returns
Returns the Team 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}/members \ -H "Authorization: Bearer $CLANKER_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "person": "sam@acme.dev" }'{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}Remove a team member
DELETE/Removes a person from the team. Anyone can leave a team; removing someone else takes a member of the team or a workspace owner or admin, and viewers cannot.
Path parameters
slugstringRequiredThe workspace's slug or ID, such as acme.
teamstringRequiredThe team's key, such as WEB.
personstringRequiredThe member's user ID or email address, such as sam@acme.dev.
Returns
Returns the Team 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 DELETE https://api.qa.clankership.net/v1/workspaces/acme/teams/{team}/members/{person} \ -H "Authorization: Bearer $CLANKER_API_KEY"{ "id": "Tm6PzN3kWq1J", "key": "WEB", "name": "Web", "visibility": "open", "archivedAt": null, "members": [ { "id": "Us3NfP8kLq2V", "name": "Maya Patel", "email": "maya@acme.dev" }, { "id": "Us9DcT4wHn6R", "name": "Sam Okafor", "email": "sam@acme.dev" } ], "joined": true, "createdAt": "2026-10-01T16:20:00.000Z", "updatedAt": "2026-10-14T09:05:12.000Z"}