VoidTrack Docs
API Reference

Teams

GET
/teams
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Response Body

application/json

application/json

curl -X GET "https://example.com/teams"
{  "teams": [    {      "id": "string",      "key": "string",      "name": "string",      "personal": true,      "cyclesEnabled": true,      "cycleLengthWeeks": 0,      "estimateScale": "none",      "states": [        {          "id": "string",          "name": "string",          "type": "string"        }      ]    }  ]}
POST
/teams
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/teams" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "key": "string"  }'
{  "team": {    "id": "string",    "key": "string",    "name": "string"  }}
GET
/teams/all
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/teams/all"
{  "teams": [    {      "id": "string",      "key": "string",      "name": "string",      "joined": true    }  ]}
PATCH
/teams/{key}

Workspace admins, or the owner for personal spaces.

AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/teams/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "ok": true}
DELETE
/teams/{key}

Personal spaces cannot be deleted.

AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

Query Parameters

deleteProjects?string

'true' to delete projects sole to this team; otherwise they're detached

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/teams/string"
{  "deleted": true,  "deletedProjects": 0,  "detachedProjects": 0}
POST
/teams/{key}/join
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/teams/string/join"
{  "ok": true}
GET
/teams/{key}/members
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/teams/string/members"
{  "members": [    {      "id": "string",      "name": "string",      "email": "user@example.com"    }  ],  "workspaceMembers": [    {      "id": "string",      "name": "string",      "email": "user@example.com"    }  ]}
POST
/teams/{key}/members
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/teams/string/members" \  -H "Content-Type: application/json" \  -d '{    "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"  }'
{  "ok": true}
DELETE
/teams/{key}/members/{userId}
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

userId*string

User id

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/teams/string/members/string"
{  "ok": true}
GET
/teams/{key}/workflows
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/teams/string/workflows"
{  "workflows": [    {      "id": "string",      "trigger": "pr_opened",      "projectId": "string",      "targetStateId": "string"    }  ],  "states": [    {      "id": "string",      "name": "string",      "type": "string",      "color": "string",      "position": 0    }  ],  "projects": [    {      "id": "string",      "name": "string"    }  ]}
POST
/teams/{key}/workflows

Upserts on (team, trigger, project).

AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/teams/string/workflows" \  -H "Content-Type: application/json" \  -d '{    "trigger": "pr_opened",    "targetStateId": "eafb8fcc-87f3-4385-a8ff-60605f7497b0"  }'
{  "id": "string",  "trigger": "pr_opened",  "projectId": "string",  "targetStateId": "string"}
DELETE
/teams/{key}/workflows/{id}
AuthorizationBearer <token>

Workspace scoped API key, printed once by pnpm seed or POST /api-keys.

In: header

Path Parameters

key*string

Team key

id*string

Workflow rule id

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/teams/string/workflows/string"
{  "ok": true}