GroupChatGroupChat Docs
API Reference

Workspace API

Manage projects, tasks, statuses, and members.

Authentication

Authenticate with a personal access token (gcp_) created from your account settings. Pass the token as a Bearer token and include an X-Workspace-Id header to specify the target workspace:

curl -H "Authorization: Bearer gcp_YOUR_TOKEN" \
     -H "X-Workspace-Id: YOUR_WORKSPACE_ID" \
     https://groupchat.ai/api/v1/tasks

Personal access tokens are tied to your user account and inherit your role and project access in the workspace.

/api/v1/projects

GET
/api/v1/projects

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Query Parameters

id?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/projects"
[
  {
    "id": "string",
    "workspaceId": "string",
    "name": "string",
    "description": "string",
    "color": "string",
    "icon": "string",
    "emoji": "string",
    "order": 0,
    "widgetEnabled": true,
    "widgetVisibility": "string"
  }
]
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/projects

POST
/api/v1/projects

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X POST "https://loading/api/v1/projects" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "string",
  "workspaceId": "string",
  "name": "string",
  "description": "string",
  "color": "string",
  "icon": "string",
  "emoji": "string",
  "order": 0,
  "widgetEnabled": true,
  "widgetVisibility": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/projects

PATCH
/api/v1/projects

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X PATCH "https://loading/api/v1/projects" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "id": "string",
  "workspaceId": "string",
  "name": "string",
  "description": "string",
  "color": "string",
  "icon": "string",
  "emoji": "string",
  "order": 0,
  "widgetEnabled": true,
  "widgetVisibility": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/projects

DELETE
/api/v1/projects

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://loading/api/v1/projects" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "ok": true
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

List initiatives

GET
/api/v1/initiatives

Roadmap initiatives in the workspace. Not projects. Filters: teamId, status (initiative status, not a board column), ownerId (the person leading the initiative). name is a spoken or partial title (not exact-only). A name that matches both a project and an initiative, or several initiatives equally, returns _askUser.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Query Parameters

teamId?string
status?string

Initiative status. Not a board column and not a task status (todo, doing, in_review, done).

Value in"proposed" | "planned" | "active" | "completed" | "cancelled"
ownerId?string
name?string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/initiatives"
{
  "initiatives": [
    {
      "id": "string",
      "name": "string",
      "teamId": "string",
      "status": "proposed",
      "ownerId": "string",
      "ownerName": "string",
      "startDate": "string",
      "targetDate": "string",
      "startDateResolution": "string",
      "targetDateResolution": "string",
      "health": "on_track",
      "summary": "string"
    }
  ]
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Create an initiative

POST
/api/v1/initiatives

Creates a roadmap initiative. A name that matches a project is still an initiative, not a project. Overlapping start and target clear the other edge. Completing an initiative later is PATCH status completed, not POST /tasks/{id}/complete.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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://loading/api/v1/initiatives" \  -H "Content-Type: application/json" \  -d '{    "teamId": "string",    "name": "string"  }'
{
  "success": true,
  "initiativeId": "string",
  "cleared": "start",
  "message": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Tag a task with an initiative

PATCH
/api/v1/initiatives/tasks/{taskId}

Sets or clears the task's initiativeId. This is a tag. It does not put the task's project on the initiative. Null clears the tag. This is not completing the task and not completing the initiative.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Path Parameters

taskId*string

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 PATCH "https://loading/api/v1/initiatives/tasks/string" \  -H "Content-Type: application/json" \  -d '{    "initiativeId": "string"  }'
{
  "success": true,
  "property1": null,
  "property2": null
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Get an initiative

GET
/api/v1/initiatives/{id}

One initiative, the projects on it, and the tasks tagged with it. Projects and tasks are separate lists. Health is the latest update.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/initiatives/string"
{
  "initiative": {
    "id": "string",
    "name": "string",
    "teamId": "string",
    "status": "proposed",
    "ownerId": "string",
    "ownerName": "string",
    "startDate": "string",
    "targetDate": "string",
    "startDateResolution": "string",
    "targetDateResolution": "string",
    "health": "on_track",
    "summary": "string",
    "description": "string",
    "timezone": "string"
  },
  "projects": [
    {
      "projectId": "string",
      "name": "string",
      "startDate": "string",
      "targetDate": "string"
    }
  ],
  "tasks": [
    {
      "id": "string",
      "title": "string",
      "projectId": "string",
      "projectName": "string"
    }
  ]
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Update an initiative

PATCH
/api/v1/initiatives/{id}

Updates the initiative. status completed completes the initiative. Do not use POST /tasks/{id}/complete. Overlapping start and target clear the other edge instead of rejecting the call.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Path Parameters

id*string

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 PATCH "https://loading/api/v1/initiatives/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "success": true,
  "property1": null,
  "property2": null
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Delete an initiative

DELETE
/api/v1/initiatives/{id}

Deletes the initiative only. Projects and tasks stay. Their links and tags to this initiative are removed.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://loading/api/v1/initiatives/string"
{
  "success": true,
  "property1": null,
  "property2": null
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Add a project to an initiative

POST
/api/v1/initiatives/{id}/projects

Puts the board on this initiative and removes it from any previous one. Returns previousInitiativeId when the board moved. Does not tag the board's tasks.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

projectId*string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://loading/api/v1/initiatives/string/projects" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string"  }'
{
  "success": true,
  "initiativeId": "string",
  "projectId": "string",
  "previousInitiativeId": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Remove a project from an initiative

DELETE
/api/v1/initiatives/{id}/projects/{projectId}

Takes the board off this initiative. The board and its tasks stay where they are.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Path Parameters

id*string
projectId*string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://loading/api/v1/initiatives/string/projects/string"
{
  "success": true,
  "property1": null,
  "property2": null
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/statuses

GET
/api/v1/statuses

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Query Parameters

id?string
projectId?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/statuses"
[
  {
    "id": "string",
    "projectId": "string",
    "title": "string",
    "type": "todo",
    "order": 0
  }
]
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/statuses

POST
/api/v1/statuses

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X POST "https://loading/api/v1/statuses" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "title": "string",    "type": "todo"  }'
{
  "id": "string",
  "projectId": "string",
  "title": "string",
  "type": "todo",
  "order": 0
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/statuses

PATCH
/api/v1/statuses

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X PATCH "https://loading/api/v1/statuses" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "id": "string",
  "projectId": "string",
  "title": "string",
  "type": "todo",
  "order": 0
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/statuses

DELETE
/api/v1/statuses

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X DELETE "https://loading/api/v1/statuses" \  -H "Content-Type: application/json" \  -d '{    "id": "string",    "action": "move"  }'
{
  "ok": true
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/automations

GET
/api/v1/automations

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Query Parameters

id?string
projectId?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/automations"
[
  {
    "id": "string",
    "projectId": "string",
    "name": "string",
    "enabled": true,
    "trigger": "agent_starts",
    "triggerUserId": "string",
    "actionType": "move_to_stage",
    "actionStageType": "todo",
    "actionStageId": "string",
    "actionUserId": "string",
    "createdAt": 0,
    "updatedAt": 0
  }
]
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/automations

POST
/api/v1/automations

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X POST "https://loading/api/v1/automations" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "trigger": "agent_starts",    "actionType": "move_to_stage"  }'
{
  "id": "string",
  "projectId": "string",
  "name": "string",
  "enabled": true,
  "trigger": "agent_starts",
  "triggerUserId": "string",
  "actionType": "move_to_stage",
  "actionStageType": "todo",
  "actionStageId": "string",
  "actionUserId": "string",
  "createdAt": 0,
  "updatedAt": 0
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/automations

PATCH
/api/v1/automations

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X PATCH "https://loading/api/v1/automations" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "id": "string",
  "projectId": "string",
  "name": "string",
  "enabled": true,
  "trigger": "agent_starts",
  "triggerUserId": "string",
  "actionType": "move_to_stage",
  "actionStageType": "todo",
  "actionStageId": "string",
  "actionUserId": "string",
  "createdAt": 0,
  "updatedAt": 0
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/automations

DELETE
/api/v1/automations

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://loading/api/v1/automations" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "ok": true
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/tasks

GET
/api/v1/tasks

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Query Parameters

id?string
projectId?string
stageId?string
triggerSourceTaskId?string
recentlyAssigned?string

Set to 'true' for My Tasks Recently Assigned (assigned, no due date).

Response Body

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/tasks"
[
  {
    "id": "string",
    "workspaceId": "string",
    "projectId": "string",
    "stageId": "string",
    "title": "string",
    "description": "string",
    "ownerId": "string",
    "creatorId": "string",
    "completed": true,
    "completedAt": 0,
    "dueDate": 0,
    "dueTime": 0,
    "timezone": "string",
    "dueAt": 0,
    "estimate": 0,
    "order": 0,
    "createdAt": 0,
    "updatedAt": 0,
    "lastActivityAt": 0,
    "source": "manual",
    "triggerSourceTaskId": "string",
    "triggerOnStageId": "string",
    "triggerAssignTaskId": "string",
    "triggerAction": "assign",
    "triggerAssignUserId": "string",
    "triggerAssignAgentType": "cursor",
    "triggerAssignAgentIntegrationId": "string",
    "pullRequestUrl": "string",
    "recentlyAssigned": true,
    "recentlyAssignedAt": 0
  }
]
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/tasks

POST
/api/v1/tasks

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X POST "https://loading/api/v1/tasks" \  -H "Content-Type: application/json" \  -d '{    "projectId": "string",    "stageId": "string",    "title": "string"  }'
{
  "id": "string",
  "workspaceId": "string",
  "projectId": "string",
  "stageId": "string",
  "title": "string",
  "description": "string",
  "ownerId": "string",
  "creatorId": "string",
  "completed": true,
  "completedAt": 0,
  "dueDate": 0,
  "dueTime": 0,
  "timezone": "string",
  "dueAt": 0,
  "estimate": 0,
  "order": 0,
  "createdAt": 0,
  "updatedAt": 0,
  "lastActivityAt": 0,
  "source": "manual",
  "triggerSourceTaskId": "string",
  "triggerOnStageId": "string",
  "triggerAssignTaskId": "string",
  "triggerAction": "assign",
  "triggerAssignUserId": "string",
  "triggerAssignAgentType": "cursor",
  "triggerAssignAgentIntegrationId": "string",
  "pullRequestUrl": "string",
  "recentlyAssigned": true,
  "recentlyAssignedAt": 0
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/tasks

PATCH
/api/v1/tasks

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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

curl -X PATCH "https://loading/api/v1/tasks" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "id": "string",
  "workspaceId": "string",
  "projectId": "string",
  "stageId": "string",
  "title": "string",
  "description": "string",
  "ownerId": "string",
  "creatorId": "string",
  "completed": true,
  "completedAt": 0,
  "dueDate": 0,
  "dueTime": 0,
  "timezone": "string",
  "dueAt": 0,
  "estimate": 0,
  "order": 0,
  "createdAt": 0,
  "updatedAt": 0,
  "lastActivityAt": 0,
  "source": "manual",
  "triggerSourceTaskId": "string",
  "triggerOnStageId": "string",
  "triggerAssignTaskId": "string",
  "triggerAction": "assign",
  "triggerAssignUserId": "string",
  "triggerAssignAgentType": "cursor",
  "triggerAssignAgentIntegrationId": "string",
  "pullRequestUrl": "string",
  "recentlyAssigned": true,
  "recentlyAssignedAt": 0
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/tasks

DELETE
/api/v1/tasks

Delete a task by passing { id } in the body. Prefer DELETE /tasks/{id} for new integrations; this body-based variant is kept for backwards compatibility.

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://loading/api/v1/tasks" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "ok": true
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/tasks/batch

POST
/api/v1/tasks/batch

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

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://loading/api/v1/tasks/batch" \  -H "Content-Type: application/json" \  -d '{    "operations": [      {        "op": "update",        "id": "string"      }    ]  }'
{
  "results": [
    {
      "ok": true,
      "op": "update",
      "id": "string",
      "task": {
        "id": "string",
        "workspaceId": "string",
        "projectId": "string",
        "stageId": "string",
        "title": "string",
        "description": "string",
        "ownerId": "string",
        "creatorId": "string",
        "completed": true,
        "completedAt": 0,
        "dueDate": 0,
        "dueTime": 0,
        "timezone": "string",
        "dueAt": 0,
        "estimate": 0,
        "order": 0,
        "createdAt": 0,
        "updatedAt": 0,
        "lastActivityAt": 0,
        "source": "manual",
        "triggerSourceTaskId": "string",
        "triggerOnStageId": "string",
        "triggerAssignTaskId": "string",
        "triggerAction": "assign",
        "triggerAssignUserId": "string",
        "triggerAssignAgentType": "cursor",
        "triggerAssignAgentIntegrationId": "string",
        "pullRequestUrl": "string",
        "recentlyAssigned": true,
        "recentlyAssignedAt": 0
      }
    }
  ]
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/tasks/{id}

DELETE
/api/v1/tasks/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://loading/api/v1/tasks/string"
{
  "ok": true
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

/api/v1/members

GET
/api/v1/members

Authorization

bearerAuth
AuthorizationBearer <token>

Personal access token (gcp_...) passed as a Bearer token. Requires an X-Workspace-Id header to identify the target workspace. Create tokens from your account settings.

In: header

Query Parameters

userId?string

Response Body

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/members"
[
  {
    "id": "string",
    "userId": "string",
    "role": "string",
    "name": "string",
    "imageUrl": "string"
  }
]
{
  "error": "string"
}
{
  "error": "string"
}

List telemetry events for a task

GET
/api/v1/telemetry/tasks/{taskId}/events

Returns the full telemetry trace for a task. Can filter by category and paginate with afterTimestamp. Useful for debugging task history, understanding what happened, and correlating events.

Authorization

telemetryAuth
AuthorizationBearer <token>

Telemetry API token set via the TELEMETRY_API_TOKEN environment variable. For internal use by coding agents and debugging engineers.

In: header

Path Parameters

taskId*string

Task ID to get telemetry for.

Query Parameters

category?string

Filter by event category.

Value in"user_action" | "status_change" | "assignment" | "agent_event" | "webhook" | "github" | "api_call" | "system" | "error"
limit?string

Max events to return. Default 500.

afterTimestamp?string

Only return events after this Unix timestamp (ms).

Response Body

application/json

application/json

application/json

curl -X GET "https://loading/api/v1/telemetry/tasks/string/events"
{
  "events": [
    {
      "id": "string",
      "taskId": "string",
      "meetingId": "string",
      "workspaceId": "string",
      "category": "user_action",
      "event": "string",
      "message": "string",
      "actor": "string",
      "actorType": "user",
      "metadata": "string",
      "severity": "info",
      "traceId": "string",
      "spanId": "string",
      "parentSpanId": "string",
      "durationMs": 0,
      "createdAt": 0
    }
  ],
  "count": 0
}
{
  "error": "string"
}
{
  "error": "string"
}

List telemetry events for a workspace

GET
/api/v1/telemetry/workspaces/{workspaceId}/events

Returns recent telemetry events across all tasks in a workspace. Useful for monitoring and debugging.

Authorization

telemetryAuth
AuthorizationBearer <token>

Telemetry API token set via the TELEMETRY_API_TOKEN environment variable. For internal use by coding agents and debugging engineers.

In: header

Path Parameters

workspaceId*string

Workspace ID.

Query Parameters

limit?string

Max events to return. Default 100.

afterTimestamp?string

Only return events after this Unix timestamp (ms).

Response Body

application/json

application/json

curl -X GET "https://loading/api/v1/telemetry/workspaces/string/events"
{
  "events": [
    {
      "id": "string",
      "taskId": "string",
      "meetingId": "string",
      "workspaceId": "string",
      "category": "user_action",
      "event": "string",
      "message": "string",
      "actor": "string",
      "actorType": "user",
      "metadata": "string",
      "severity": "info",
      "traceId": "string",
      "spanId": "string",
      "parentSpanId": "string",
      "durationMs": 0,
      "createdAt": 0
    }
  ],
  "count": 0
}
{
  "error": "string"
}

Get events by trace ID

GET
/api/v1/telemetry/traces/{traceId}

Returns all telemetry events that share a trace ID. Useful for following a chain of related events across a workflow.

Authorization

telemetryAuth
AuthorizationBearer <token>

Telemetry API token set via the TELEMETRY_API_TOKEN environment variable. For internal use by coding agents and debugging engineers.

In: header

Path Parameters

traceId*string

Trace ID to look up.

Response Body

application/json

application/json

curl -X GET "https://loading/api/v1/telemetry/traces/string"
{
  "events": [
    {
      "id": "string",
      "taskId": "string",
      "meetingId": "string",
      "workspaceId": "string",
      "category": "user_action",
      "event": "string",
      "message": "string",
      "actor": "string",
      "actorType": "user",
      "metadata": "string",
      "severity": "info",
      "traceId": "string",
      "spanId": "string",
      "parentSpanId": "string",
      "durationMs": 0,
      "createdAt": 0
    }
  ],
  "count": 0
}
{
  "error": "string"
}