VoidTrack Docs
API Reference

Initiatives

GET
/initiatives
AuthorizationBearer <token>

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

In: header

Query Parameters

status?string

Comma-separated initiative statuses

lead?string

Comma-separated user ids, or 'none'

health?string

Comma-separated: on_track, at_risk, off_track

special?string

Comma-separated computed filters, ANDed: overdue, due_quarter, no_target_date, stale, no_lead, no_projects, no_counted_work, update_overdue, off_track, has_excluded, led_by_me

sort?string

name, target, health, status, updated, progress, projects ('-' reverses)

Response Body

application/json

application/json

curl -X GET "https://example.com/initiatives"
{  "initiatives": [    {      "id": "string",      "name": "string",      "description": "string",      "status": "planned",      "health": "on_track",      "lead": {        "id": "string",        "name": "string",        "email": "user@example.com"      },      "targetDate": "string",      "projects": [        {          "id": "string",          "name": "string",          "status": "string",          "progress": {            "done": 0,            "total": 0,            "percent": 0,            "excludedProjects": 0          }        }      ],      "progress": {        "done": 0,        "total": 0,        "percent": 0,        "excludedProjects": 0      }    }  ]}
POST
/initiatives
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

curl -X POST "https://example.com/initiatives" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{  "initiative": {    "id": "string",    "name": "string",    "status": "string"  }}
PATCH
/initiatives/{id}
AuthorizationBearer <token>

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

In: header

Path Parameters

id*string

Initiative id

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/initiatives/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "initiative": {    "id": "string",    "name": "string",    "description": "string",    "status": "string",    "leadId": "string",    "targetDate": "string"  }}
GET
/initiatives/{id}/page-data
AuthorizationBearer <token>

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

In: header

Path Parameters

id*string

Initiative id

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/initiatives/string/page-data"
{  "initiative": {    "id": "string",    "leadId": "string"  }}
POST
/initiatives/{id}/move

Recreates the initiative in the target workspace, moves its projects and their issues, and cancels the original. Admin in both workspaces.

AuthorizationBearer <token>

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

In: header

Path Parameters

id*string

Initiative id or name

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/initiatives/string/move" \  -H "Content-Type: application/json" \  -d '{    "workspace": "string",    "team": "string"  }'
{  "moved": {    "property1": null,    "property2": null  }}