Slateo API
MCP docs

Slateo API

REST API for the Slateo platform — account-member level access to your projects, tasks, customers, and more.

Get started Authentication

Slateo API (1.0.0)

Download OpenAPI specification:

REST API for the Slateo platform (excludes admin and client routes)

Overview

Overview

The Slateo API is account-member level: every request acts as a specific member of a specific Slateo account, scoped to that member's role and permissions -- the same rules that apply inside the Slateo app itself.

This reference covers what an authenticated member can do: projects, tasks, documents, customers, and the rest of the account's data. It does not cover account creation, cross-account listing, or the web app's own login flow -- those aren't reachable with an API key.

New here? Start with Quickstart. For how requests are authenticated, see Authentication.

Quickstart

Quickstart

  1. Get an API key -- available from Slateo app settings. Session auth only; an API key can't be used to create another API key.

  2. Make a request -- every endpoint is under /api and needs an Authorization: Bearer <api-key> header:

    curl https://app.slateo.io/api/users/me \
      -H "Authorization: Bearer slateo_..."
    
  3. Explore the reference -- endpoints are grouped by resource in the sidebar (Tasks, Projects, Customers, ...). See Authentication for details on scoping and permissions.

Authentication

Authentication

Requests are authenticated with a Slateo API key, sent as a bearer token:

Authorization: Bearer slateo_...
  • Getting a key -- available from Slateo app settings.
  • Scope -- a key acts as the member who created it. It can only see and modify data within that member's account, subject to their role and permissions -- there's no separate account-level or organization-level credential.
  • Also accepted by -- the MCP server, using the same header.

Users

Get the currently authenticated user

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "first_name": "string",
  • "last_name": "string",
  • "email": "user@example.com",
  • "email_verified": true,
  • "phone": "string",
  • "phone_verified": true,
  • "avatar_url": "string",
  • "color": "string",
  • "auth_source": "string",
  • "preferences": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Accounts

Get an account by ID

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "type": "org",
  • "website_url": "string",
  • "color": "string",
  • "logo_url": "string",
  • "timezone": "string",
  • "preferences": { },
  • "task_counter": 0,
  • "account_plan": {
    },
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update an account

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>
Request Body schema: application/json
name
string
website_url
string
color
string
logo_url
string
timezone
string
preferences
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "website_url": "string",
  • "color": "string",
  • "logo_url": "string",
  • "timezone": "string",
  • "preferences": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "type": "org",
  • "website_url": "string",
  • "color": "string",
  • "logo_url": "string",
  • "timezone": "string",
  • "preferences": { },
  • "task_counter": 0,
  • "account_plan": {
    },
  • "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete an account

Hard-deletes the account immediately if it has no tasks, documents, products, customers, deals, or invoices. Otherwise soft-deletes it and schedules a hard delete (cascading all account data) 90 days later. Requires the account.delete permission (OWNER role only).

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "status": "hard_deleted",
  • "scheduled_hard_delete_at": "2019-08-24T14:15:22Z"
}

Initiate a subscription payment

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Verify subscription payment

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Get a presigned upload URL for a file

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>
fileName
required
string

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

List attachments for an account

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>

Responses

Update an attachment

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>
attachmentId
required
string <uuid>
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Onboarding

Mark onboarding as complete

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>

Responses

Skip onboarding

Authorizations:
apiKeyAuth
path Parameters
accountId
required
string <uuid>

Responses

Members

List all members

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create / invite a member

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
email
string <email>
role_id
string <uuid>
display_name
string
job_title
string

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "display_name": "string",
  • "job_title": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "display_name": "string",
  • "avatar_url": "string",
  • "job_title": "string",
  • "color": "string",
  • "timezone": "string",
  • "status": "invited",
  • "slack_user_id": "string",
  • "preferences": { },
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_details": {
    },
  • "role": {
    }
}

Get a member by ID

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "display_name": "string",
  • "avatar_url": "string",
  • "job_title": "string",
  • "color": "string",
  • "timezone": "string",
  • "status": "invited",
  • "slack_user_id": "string",
  • "preferences": { },
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_details": {
    },
  • "role": {
    },
  • "account": {
    },
  • "insights": {
    },
  • "account_permissions": [
    ]
}

Update a member

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>
Request Body schema: application/json
display_name
string
avatar_url
string
job_title
string
color
string
timezone
string
preferences
object

Responses

Request samples

Content type
application/json
{
  • "display_name": "string",
  • "avatar_url": "string",
  • "job_title": "string",
  • "color": "string",
  • "timezone": "string",
  • "preferences": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "display_name": "string",
  • "avatar_url": "string",
  • "job_title": "string",
  • "color": "string",
  • "timezone": "string",
  • "status": "invited",
  • "slack_user_id": "string",
  • "preferences": { },
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_details": {
    },
  • "role": {
    }
}

Remove a member

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>

Responses

Get notifications for a member

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>

Responses

Get timestamp of most recent notification update

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>

Responses

Get unread notification count

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>

Responses

Mark notifications as read

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>

Responses

Register a push notification token

Authorizations:
apiKeyAuth
path Parameters
memberId
required
string <uuid>
Request Body schema: application/json
required
token
required
string
platform
string
Enum: "ios" "android" "web"

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "platform": "ios"
}

Memberships

List memberships

Authorizations:
apiKeyAuth
query Parameters
scope_type
string (MembershipScopeType)
Enum: "project" "product" "workstream" "document"
scope_id
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a membership

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
member_id
required
string <uuid>
role_id
string <uuid>
scope_type
required
string (MembershipScopeType)
Enum: "project" "product" "workstream" "document"
scope_id
required
string <uuid>
workstream_access_type
string
Enum: "all" "selected"

Responses

Request samples

Content type
application/json
{
  • "member_id": "435a4844-006a-4cfc-a644-e8eb2dd2ca43",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "scope_type": "project",
  • "scope_id": "5d3fe357-12dd-4f62-b004-6d1fb3b8454f",
  • "workstream_access_type": "all"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "member_id": "435a4844-006a-4cfc-a644-e8eb2dd2ca43",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "scope_type": "project",
  • "scope_id": "5d3fe357-12dd-4f62-b004-6d1fb3b8454f",
  • "workstream_access_type": "all",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a membership

Authorizations:
apiKeyAuth
path Parameters
membershipId
required
string <uuid>
Request Body schema: application/json
role_id
string <uuid>
workstream_access_type
string
Enum: "all" "selected"

Responses

Request samples

Content type
application/json
{
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "workstream_access_type": "all"
}

Remove a membership

Authorizations:
apiKeyAuth
path Parameters
membershipId
required
string <uuid>

Responses

Roles

List roles

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a role

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
name
required
string
description
string
scope_type
required
string (RoleScopeType)
Enum: "account" "project" "product"
type
string (RoleType)
Enum: "internal" "external"
color
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "scope_type": "account",
  • "type": "internal",
  • "color": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "color": "string",
  • "scope_type": "account",
  • "type": "internal",
  • "default": true,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "permissions": [
    ]
}

Get a role by ID

Authorizations:
apiKeyAuth
path Parameters
accountRoleId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "color": "string",
  • "scope_type": "account",
  • "type": "internal",
  • "default": true,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "permissions": [
    ]
}

Update a role

Authorizations:
apiKeyAuth
path Parameters
accountRoleId
required
string <uuid>
Request Body schema: application/json
name
string
description
string
color
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "color": "string"
}

Delete a role

Authorizations:
apiKeyAuth
path Parameters
accountRoleId
required
string <uuid>

Responses

Projects

List projects

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a project

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
name
required
string
color
string
visibility
string
Enum: "account" "members"
preferences
object
enabled_cycle_categories
Array of strings
Items Enum: "phase" "release" "sprint" "milestone"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string",
  • "visibility": "account",
  • "preferences": { },
  • "enabled_cycle_categories": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "color": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "visibility": "account",
  • "default": true,
  • "preferences": { },
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a project

Authorizations:
apiKeyAuth
path Parameters
projectId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "color": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "visibility": "account",
  • "default": true,
  • "preferences": { },
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a project

Authorizations:
apiKeyAuth
path Parameters
projectId
required
string <uuid>
Request Body schema: application/json
name
string
visibility
string
Enum: "account" "members"
preferences
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "visibility": "account",
  • "preferences": { }
}

Delete a project

Authorizations:
apiKeyAuth
path Parameters
projectId
required
string <uuid>

Responses

Check whether a project can be hard deleted

Authorizations:
apiKeyAuth
path Parameters
projectId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "hard_deletable": true
}

Get dashboard data for a project

Authorizations:
apiKeyAuth
path Parameters
projectId
required
string <uuid>

Responses

Get permissions for a project

Authorizations:
apiKeyAuth
path Parameters
projectId
required
string <uuid>

Responses

Set (or clear) the project's current phase, release, or sprint

Authorizations:
apiKeyAuth
path Parameters
projectId
required
string <uuid>
Request Body schema: application/json
required
category
required
string
Enum: "phase" "release" "sprint"
project_cycle_id
required
string or null <uuid>

The project cycle to mark as current for this category, or null to clear it.

Responses

Request samples

Content type
application/json
{
  • "category": "phase",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "color": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "visibility": "account",
  • "default": true,
  • "preferences": { },
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Workstreams

List workstreams

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a workstream

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
project_id
required
string <uuid>
entity_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a workstream

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Delete a workstream

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>

Responses

Get activity logs for a workstream

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>

Responses

Get activity snapshot since a given time

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>
query Parameters
since
string <date-time>

Responses

List participation types for a workstream

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>

Responses

Add a participation type to a workstream

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Update a participation type

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>
typeId
required
string <uuid>
Request Body schema: application/json
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Delete a participation type

Authorizations:
apiKeyAuth
path Parameters
workstreamId
required
string <uuid>
typeId
required
string <uuid>

Responses

Tasks

List tasks

Authorizations:
apiKeyAuth
query Parameters
project_id
string <uuid>
workstream_id
string <uuid>
assigned_to_member_id
string <uuid>
priority
string (TaskPriority)
Enum: "high" "medium" "low"
type
string (TaskType)
Enum: "bundle" "task" "subtask"
project_cycle_id
string

A ProjectCycle id, or one of the special tokens current_sprint, current_release, current_phase — each resolves to the project's current cycle of that category, as set via PATCH /projects/{projectId}/current-cycle. Using a token requires a project_id filter to also be set — it's resolved per project.

milestone_id
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a task

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
title
required
string
description
string
type
string (TaskType)
Enum: "bundle" "task" "subtask"
priority
string (TaskPriority)
Enum: "high" "medium" "low"
project_id
required
string <uuid>
entity_id
required
string <uuid>
assigned_to_member_id
string <uuid>
parent_id
string or null <uuid>
project_cycle_id
string or null <uuid>
milestone_id
string or null <uuid>
feature_id
string or null <uuid>
due_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "number": 0,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "6c886391-cd90-4135-a4b4-24f0dbf94111",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "requirement_documents": [
    ],
  • "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
  • "source_type": "string",
  • "source_metadata": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Bulk create tasks

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
Array of objects (TaskInput)

Responses

Request samples

Content type
application/json
{
  • "tasks": [
    ]
}

Bulk update tasks

Applies the same field updates to every task in task_ids. Each task is processed independently — permission (task.update, scoped per task's project) and update errors are per-task and don't block the rest of the batch. The response is an array with one entry per requested task, in order, reporting per-task success or failure.

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
task_ids
required
Array of strings <uuid> [ items <uuid > ]
title
string
description
string or null
type
string (TaskType)
Enum: "bundle" "task" "subtask"
priority
string (TaskPriority)
Enum: "high" "medium" "low"
assigned_to_member_id
string or null <uuid>
due_at
string or null <date-time>
resolved_at
string or null <date-time>
project_cycle_id
string or null <uuid>
milestone_id
string or null <uuid>
roadmap_item_id
string or null
feature_id
string or null
parent_id
string or null

Responses

Request samples

Content type
application/json
{
  • "task_ids": [
    ],
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "string",
  • "feature_id": "string",
  • "parent_id": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Bulk update the workflow stage of tasks

Moves every task in task_ids to workflow_template_stage_id. Each task is processed independently through the same stage-condition and approval checks as POST /tasks/{taskId}/workflow_stages (see that endpoint's description) — one task's failure (missing permission, unmet conditions, unmet approvals) does not block or roll back the others. The response is an array with one entry per requested task, in order, reporting per-task success or failure.

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
task_ids
required
Array of strings <uuid> [ items <uuid > ]
workflow_template_stage_id
required
string <uuid>
planned_start_at
string <date-time>
planned_end_at
string <date-time>
actual_start_at
string <date-time>
bypass_approvals
boolean

Requires the task.stage.bypass_approval permission (checked per task's project). When true, unmet required approvals are logged on the task's activity log instead of blocking the move.

Responses

Request samples

Content type
application/json
{
  • "task_ids": [
    ],
  • "workflow_template_stage_id": "79ea45b2-4be3-4980-a12d-3fd314348625",
  • "planned_start_at": "2019-08-24T14:15:22Z",
  • "planned_end_at": "2019-08-24T14:15:22Z",
  • "actual_start_at": "2019-08-24T14:15:22Z",
  • "bypass_approvals": true
}

Response samples

Content type
application/json
[
  • {
    }
]

Get a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "number": 0,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "6c886391-cd90-4135-a4b4-24f0dbf94111",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "requirement_documents": [
    ],
  • "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
  • "source_type": "string",
  • "source_metadata": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
Request Body schema: application/json
title
string
description
string
priority
string (TaskPriority)
Enum: "high" "medium" "low"
assigned_to_member_id
string <uuid>
due_at
string <date-time>
project_cycle_id
string or null <uuid>
milestone_id
string or null <uuid>
feature_id
string or null <uuid>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "priority": "high",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "due_at": "2019-08-24T14:15:22Z",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50"
}

Delete a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>

Responses

List comments on a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a comment to a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
Request Body schema: application/json
required
content
required
string

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "content": "string",
  • "author_member_id": "4a7d22bb-e8d8-4ea0-8227-dec7ee17e089",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "task_id": "736fde4d-9029-4915-8189-01353d6982cb",
  • "tasklet_id": "80ac0a1c-81a6-490a-b5a2-29c95422c54c",
  • "idea_id": "513dcbd6-3206-4305-8a7e-8651161eebfb",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Add labels to a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
Request Body schema: application/json
required
label_ids
required
Array of strings <uuid> [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "label_ids": [
    ]
}

Remove a label from a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
labelId
required
string <uuid>

Responses

Update the workflow stage of a task

Moves the task to workflow_template_stage_id. Before the move is applied, the backend:

  1. Evaluates any stage-entry conditions configured on the target stage (see /entity-workflow-templates/{workflowTemplateId}/entity-workflow-template-stages/{workflowTemplateStageId}/conditions). If any condition fails, responds 422 with the list of failures — this check cannot be bypassed.
  2. Checks whether the target stage has required approvers configured (see the .../approvers endpoint) and whether they've all approved (see GET .../workflow_stages/{stageId}/approvals). If approvals are missing, responds 422 unless bypass_approvals: true is sent — bypassing requires the task.stage.bypass_approval permission, otherwise responds 403.
Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
Request Body schema: application/json
required
workflow_template_stage_id
required
string <uuid>
planned_start_at
string <date-time>
planned_end_at
string <date-time>
actual_start_at
string <date-time>
bypass_approvals
boolean

Requires the task.stage.bypass_approval permission. When true, unmet required approvals are logged on the task's activity log instead of blocking the move.

Responses

Request samples

Content type
application/json
{
  • "workflow_template_stage_id": "79ea45b2-4be3-4980-a12d-3fd314348625",
  • "planned_start_at": "2019-08-24T14:15:22Z",
  • "planned_end_at": "2019-08-24T14:15:22Z",
  • "actual_start_at": "2019-08-24T14:15:22Z",
  • "bypass_approvals": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "number": 0,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "6c886391-cd90-4135-a4b4-24f0dbf94111",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "requirement_documents": [
    ],
  • "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
  • "source_type": "string",
  • "source_metadata": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get approval status for a task's stage

Returns one entry per participation type required to approve entry into this stage, whether it's satisfied, and by whom.

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
stageId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Approve a task's entry into a stage

Records approval on behalf of entity_user_participation_type_id. The approving member must hold that participation type on this task (via the task's participants) and the participation type must be configured as a required approver for the stage, otherwise 403/400.

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
stageId
required
string <uuid>
Request Body schema: application/json
required
entity_user_participation_type_id
required
string <uuid>
comment
string or null

Responses

Request samples

Content type
application/json
{
  • "entity_user_participation_type_id": "23f2e07a-d7b4-45d9-8d71-31226db54e3f",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "task_id": "736fde4d-9029-4915-8189-01353d6982cb",
  • "workflow_template_stage_id": "79ea45b2-4be3-4980-a12d-3fd314348625",
  • "entity_user_participation_type_id": "23f2e07a-d7b4-45d9-8d71-31226db54e3f",
  • "approved_by_member_id": "b99944fd-9560-4338-afdc-b1ed80317035",
  • "comment": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Revoke a stage approval

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
stageId
required
string <uuid>
approvalId
required
string <uuid>

Responses

Get activity logs for a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>

Responses

Get last activity time for a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>

Responses

List participants of a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>

Responses

Add a participant to a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
Request Body schema: application/json
required
member_id
required
string <uuid>
participation_type_id
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "member_id": "435a4844-006a-4cfc-a644-e8eb2dd2ca43",
  • "participation_type_id": "126528fa-07da-43d8-8f06-0346eb2ecc74"
}

Remove a participant from a task

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
participantId
required
string <uuid>

Responses

List a task's links to other tasks

Returns links in both directions: rows where this task is the source (direction: outgoing, link_type as stored) and rows where it's the target (direction: incoming). The scheduling types (finish_to_start, start_to_start, start_to_finish, finish_to_finish) keep the same link_type in both directions — use direction to tell predecessor from successor. duplicates inverts to is_duplicated_by; relates_to stays relates_to.

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Link this task to another task

Creates a directional link from this task to linked_task_id of type link_type. Both tasks must belong to the caller's account. Fails 400 if linked_task_id is the same task, 404 if it doesn't exist in this account, and 409 if this exact (task, linked task, type) link already exists.

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
Request Body schema: application/json
required
linked_task_id
required
string <uuid>
link_type
required
string (TaskLinkType)
Enum: "finish_to_start" "start_to_start" "start_to_finish" "finish_to_finish" "duplicates" "relates_to"

Responses

Request samples

Content type
application/json
{
  • "linked_task_id": "f058b6f0-fc6a-463d-9ff4-7b21347211ea",
  • "link_type": "finish_to_start"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "link_type": "string",
  • "direction": "outgoing",
  • "task": {
    },
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z"
}

Remove a task link

Removes the link regardless of whether taskId is the source or target side of it.

Authorizations:
apiKeyAuth
path Parameters
taskId
required
string <uuid>
linkId
required
string <uuid>

Responses

Tasklets

List tasklets

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a tasklet

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
title
required
string
body
string
task_id
string <uuid>
assigned_to_member_id
string <uuid>
priority
string (TaskletPriority)
Enum: "low" "medium" "high" "critical"
due_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "body": "string",
  • "task_id": "736fde4d-9029-4915-8189-01353d6982cb",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "priority": "low",
  • "due_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "body": "string",
  • "status": "open",
  • "priority": "low",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "task_id": "736fde4d-9029-4915-8189-01353d6982cb",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "due_at": "2019-08-24T14:15:22Z",
  • "snooze_until": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "resolved_by_member_id": "a8c87071-513f-47db-bb36-6c92b81e8f6f",
  • "external_source": "string",
  • "external_id": "string",
  • "external_url": "string",
  • "created_via": "slack",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get the last updated time for tasklets

Authorizations:
apiKeyAuth

Responses

Update a tasklet

Authorizations:
apiKeyAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
title
string
body
string
status
string (TaskletStatus)
Enum: "open" "done" "snoozed" "cancelled"
priority
string (TaskletPriority)
Enum: "low" "medium" "high" "critical"
assigned_to_member_id
string <uuid>
due_at
string <date-time>
snooze_until
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "body": "string",
  • "status": "open",
  • "priority": "low",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "due_at": "2019-08-24T14:15:22Z",
  • "snooze_until": "2019-08-24T14:15:22Z"
}

List comments on a tasklet

Authorizations:
apiKeyAuth
path Parameters
id
required
string <uuid>

Responses

Add a comment to a tasklet

Authorizations:
apiKeyAuth
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
content
required
string

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Labels

List all labels

Authorizations:
apiKeyAuth

Responses

Ideas

List ideas

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an idea

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
title
required
string
description
string
product_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "votes": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update an idea

Authorizations:
apiKeyAuth
path Parameters
ideaId
required
string <uuid>
Request Body schema: application/json
title
string
description
string

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string"
}

Vote on an idea

Authorizations:
apiKeyAuth
path Parameters
ideaId
required
string <uuid>
Request Body schema: application/json
required
vote_type
required
string
Enum: "up" "down"

Responses

Request samples

Content type
application/json
{
  • "vote_type": "up"
}

Remove vote from an idea

Authorizations:
apiKeyAuth
path Parameters
ideaId
required
string <uuid>

Responses

Add a comment to an idea

Authorizations:
apiKeyAuth
path Parameters
ideaId
required
string <uuid>
Request Body schema: application/json
required
content
required
string

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Initiatives

List initiatives

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an initiative

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
name
required
string
product_id
required
string <uuid>
start_date
string <date-time>
end_date
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update an initiative

Authorizations:
apiKeyAuth
path Parameters
initiativeId
required
string <uuid>
Request Body schema: application/json
name
string
start_date
string <date-time>
end_date
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z"
}

Delete an initiative

Authorizations:
apiKeyAuth
path Parameters
initiativeId
required
string <uuid>

Responses

Objectives

List objectives

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an objective

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
title
required
string
description
string
product_id
required
string <uuid>
objective_cycle_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "objective_cycle_id": "cfbba3a3-49ce-46d7-91a7-216179217e20"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "objective_cycle_id": "cfbba3a3-49ce-46d7-91a7-216179217e20",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "key_results": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update an objective

Authorizations:
apiKeyAuth
path Parameters
objectiveId
required
string <uuid>
Request Body schema: application/json
title
string
description
string

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string"
}

Delete an objective

Authorizations:
apiKeyAuth
path Parameters
objectiveId
required
string <uuid>

Responses

Add a key result to an objective

Authorizations:
apiKeyAuth
path Parameters
objectiveId
required
string <uuid>
Request Body schema: application/json
required
title
required
string
description
string
metric_type
required
string (KeyResultMetricType)
Enum: "number" "percentage" "currency"
target_value
required
number
current_value
number
baseline_value
number

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "metric_type": "number",
  • "target_value": 0,
  • "current_value": 0,
  • "baseline_value": 0
}

Update a key result

Authorizations:
apiKeyAuth
path Parameters
objectiveId
required
string <uuid>
keyResultId
required
string <uuid>
Request Body schema: application/json
title
required
string
description
string
metric_type
required
string (KeyResultMetricType)
Enum: "number" "percentage" "currency"
target_value
required
number
current_value
number
baseline_value
number

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "metric_type": "number",
  • "target_value": 0,
  • "current_value": 0,
  • "baseline_value": 0
}

Delete a key result

Authorizations:
apiKeyAuth
path Parameters
objectiveId
required
string <uuid>
keyResultId
required
string <uuid>

Responses

ObjectiveCycles

List objective cycles

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an objective cycle

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
name
required
string
product_id
required
string <uuid>
start_date
string <date-time>
end_date
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z"
}

Update an objective cycle

Authorizations:
apiKeyAuth
path Parameters
objectiveCycleId
required
string <uuid>
Request Body schema: application/json
name
string
start_date
string <date-time>
end_date
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z"
}

Delete an objective cycle

Authorizations:
apiKeyAuth
path Parameters
objectiveCycleId
required
string <uuid>

Responses

Products

List products

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a product

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
name
required
string
description
string
logo_url
string
visibility
string
Enum: "account" "members"
owner_member_id
string <uuid>
Array of objects (ProductLink)
object (ProductContext)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "logo_url": "string",
  • "visibility": "account",
  • "owner_member_id": "b0a041db-c5b2-49a1-b3f7-48acec826805",
  • "links": [
    ],
  • "context": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "owner_member_id": "b0a041db-c5b2-49a1-b3f7-48acec826805",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "logo_url": "string",
  • "visibility": "account",
  • "links": [
    ],
  • "context": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a product

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "owner_member_id": "b0a041db-c5b2-49a1-b3f7-48acec826805",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "logo_url": "string",
  • "visibility": "account",
  • "links": [
    ],
  • "context": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a product

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
Request Body schema: application/json
name
string
description
string
logo_url
string
visibility
string
Enum: "account" "members"
owner_member_id
string <uuid>
Array of objects (ProductLink)
object (ProductContext)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "logo_url": "string",
  • "visibility": "account",
  • "owner_member_id": "b0a041db-c5b2-49a1-b3f7-48acec826805",
  • "links": [
    ],
  • "context": {
    }
}

Delete a product

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>

Responses

Features

List features for a product

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a feature

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
Request Body schema: application/json
required
title
required
string
description
string

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Bulk create features

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
Request Body schema: application/json
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "features": [
    ]
}

Update a feature

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
featureId
required
string <uuid>
Request Body schema: application/json
title
string
description
string

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string"
}

Delete a feature

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
featureId
required
string <uuid>

Responses

RoadmapItems

List roadmap items for a product

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a roadmap item

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
Request Body schema: application/json
required
title
required
string
description
string
feature_id
string <uuid>
initiative_id
string <uuid>
roadmap_planned_start_date
string <date-time>
roadmap_planned_end_date
string <date-time>
audience
Array of strings
confidence
integer
effort
integer

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "initiative_id": "0a7d3437-c543-4aeb-80b3-0a1ef16d2ec1",
  • "roadmap_planned_start_date": "2019-08-24T14:15:22Z",
  • "roadmap_planned_end_date": "2019-08-24T14:15:22Z",
  • "audience": [
    ],
  • "confidence": 0,
  • "effort": 0
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "initiative_id": "0a7d3437-c543-4aeb-80b3-0a1ef16d2ec1",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "roadmap_planned_start_date": "2019-08-24T14:15:22Z",
  • "roadmap_planned_end_date": "2019-08-24T14:15:22Z",
  • "roadmap_actual_start_date": "2019-08-24T14:15:22Z",
  • "roadmap_actual_end_date": "2019-08-24T14:15:22Z",
  • "roadmap_estimated_start_date": "2019-08-24T14:15:22Z",
  • "roadmap_estimated_end_date": "2019-08-24T14:15:22Z",
  • "audience": [
    ],
  • "source": [
    ],
  • "confidence": 0,
  • "effort": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a roadmap item

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
roadmapItemId
required
string <uuid>
Request Body schema: application/json
title
string
description
string
feature_id
string or null <uuid>
initiative_id
string or null <uuid>
roadmap_planned_start_date
string <date-time>
roadmap_planned_end_date
string <date-time>
roadmap_actual_start_date
string <date-time>
roadmap_actual_end_date
string <date-time>
confidence
integer
effort
integer

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "initiative_id": "0a7d3437-c543-4aeb-80b3-0a1ef16d2ec1",
  • "roadmap_planned_start_date": "2019-08-24T14:15:22Z",
  • "roadmap_planned_end_date": "2019-08-24T14:15:22Z",
  • "roadmap_actual_start_date": "2019-08-24T14:15:22Z",
  • "roadmap_actual_end_date": "2019-08-24T14:15:22Z",
  • "confidence": 0,
  • "effort": 0
}

Delete a roadmap item

Authorizations:
apiKeyAuth
path Parameters
productId
required
string <uuid>
roadmapItemId
required
string <uuid>

Responses

ProjectCycles

List project cycles (Phase / Release / Sprint)

Authorizations:
apiKeyAuth
query Parameters
project_id
required
string <uuid>
category
string
Enum: "phase" "release" "sprint"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a project cycle

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
project_id
required
string <uuid>
category
required
string
Enum: "phase" "release" "sprint"
label
required
string
color
string or null
description
string or null
start_date
required
string <date-time>
end_date
required
string <date-time>
parent_project_cycle_id
string or null <uuid>

Responses

Request samples

Content type
application/json
{
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "category": "phase",
  • "label": "string",
  • "color": "string",
  • "description": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "parent_project_cycle_id": "004a3774-9f56-4dc7-9d8e-a0fb64154480"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "category": "phase",
  • "label": "string",
  • "color": "string",
  • "description": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "parent_project_cycle_id": "004a3774-9f56-4dc7-9d8e-a0fb64154480",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9"
}

Get a project cycle

Authorizations:
apiKeyAuth
path Parameters
projectCycleId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "category": "phase",
  • "label": "string",
  • "color": "string",
  • "description": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "parent_project_cycle_id": "004a3774-9f56-4dc7-9d8e-a0fb64154480",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9"
}

Update a project cycle

Authorizations:
apiKeyAuth
path Parameters
projectCycleId
required
string <uuid>
Request Body schema: application/json
label
string
color
string or null
description
string or null
start_date
string <date-time>
end_date
string <date-time>
parent_project_cycle_id
string or null <uuid>

Responses

Request samples

Content type
application/json
{
  • "label": "string",
  • "color": "string",
  • "description": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "parent_project_cycle_id": "004a3774-9f56-4dc7-9d8e-a0fb64154480"
}

Delete a project cycle

Authorizations:
apiKeyAuth
path Parameters
projectCycleId
required
string <uuid>

Responses

Milestones

List milestones

Authorizations:
apiKeyAuth
query Parameters
project_id
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a milestone

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
project_id
required
string <uuid>
title
required
string
target_date
required
string <date-time>
description
string or null

Responses

Request samples

Content type
application/json
{
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "title": "string",
  • "target_date": "2019-08-24T14:15:22Z",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "target_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9"
}

Get a milestone

Authorizations:
apiKeyAuth
path Parameters
milestoneId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "target_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9"
}

Update a milestone

Authorizations:
apiKeyAuth
path Parameters
milestoneId
required
string <uuid>
Request Body schema: application/json
title
string
target_date
string <date-time>
description
string or null

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "target_date": "2019-08-24T14:15:22Z",
  • "description": "string"
}

Delete a milestone

Authorizations:
apiKeyAuth
path Parameters
milestoneId
required
string <uuid>

Responses

Documents

List documents

Each document's title/content/context/type/status/version reflect its current published version.

Authorizations:
apiKeyAuth
query Parameters
project_id
string <uuid>
product_id
string <uuid>
type
string (DocumentType)
Enum: "general" "feedback" "requirement"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a document

Creates the document with version 1, published immediately.

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
title
required
string
content
string or null
type
string (DocumentType)
Enum: "general" "feedback" "requirement"
project_id
string or null <uuid>
product_id
string or null <uuid>
context
object

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "content": "string",
  • "type": "general",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "context": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "visibility": "public",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c",
  • "version": 0,
  • "status": "published",
  • "title": "string",
  • "content": "string",
  • "context": { },
  • "type": "general",
  • "edited_by_member_id": "fb37617b-3b09-48e7-987d-9fad202db276",
  • "published_at": "2019-08-24T14:15:22Z"
}

Get a document

Returns the document's current published version.

Authorizations:
apiKeyAuth
path Parameters
documentId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "visibility": "public",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c",
  • "version": 0,
  • "status": "published",
  • "title": "string",
  • "content": "string",
  • "context": { },
  • "type": "general",
  • "edited_by_member_id": "fb37617b-3b09-48e7-987d-9fad202db276",
  • "published_at": "2019-08-24T14:15:22Z"
}

Update a document

Edits the current published version's fields in place. This does not create a new version or change the version number — for that, use POST /documents/{documentId}/versions. project_id/product_id are container fields on the document itself and update the same way either way.

Authorizations:
apiKeyAuth
path Parameters
documentId
required
string <uuid>
Request Body schema: application/json
title
string
content
string
type
string (DocumentType)
Enum: "general" "feedback" "requirement"
project_id
string or null <uuid>
product_id
string or null <uuid>
context
object

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "content": "string",
  • "type": "general",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "context": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "visibility": "public",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c",
  • "version": 0,
  • "status": "published",
  • "title": "string",
  • "content": "string",
  • "context": { },
  • "type": "general",
  • "edited_by_member_id": "fb37617b-3b09-48e7-987d-9fad202db276",
  • "published_at": "2019-08-24T14:15:22Z"
}

Delete a document

Cascades to delete all of the document's versions (current and archived).

Authorizations:
apiKeyAuth
path Parameters
documentId
required
string <uuid>

Responses

List a document's versions

Includes the current published version plus all archived (superseded) versions, newest version number first.

Authorizations:
apiKeyAuth
path Parameters
documentId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new version

Archives the current published version and creates the next one (version + 1), published immediately. All fields are optional and default to the current version's values if omitted, so calling this with an empty body is a pure snapshot/clone; passing any of them sets the new version's content in the same call instead of requiring a follow-up PATCH.

Authorizations:
apiKeyAuth
path Parameters
documentId
required
string <uuid>
Request Body schema: application/json
title
string
content
string
type
string (DocumentType)
Enum: "general" "feedback" "requirement"
context
object

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "content": "string",
  • "type": "general",
  • "context": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "visibility": "public",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c",
  • "version": 0,
  • "status": "published",
  • "title": "string",
  • "content": "string",
  • "context": { },
  • "type": "general",
  • "edited_by_member_id": "fb37617b-3b09-48e7-987d-9fad202db276",
  • "published_at": "2019-08-24T14:15:22Z"
}

Get a single document version

Authorizations:
apiKeyAuth
path Parameters
documentId
required
string <uuid>
versionId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
  • "version": 0,
  • "status": "published",
  • "title": "string",
  • "content": "string",
  • "context": { },
  • "type": "general",
  • "edited_by_member_id": "fb37617b-3b09-48e7-987d-9fad202db276",
  • "published_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Acknowledgements

List acknowledgements

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an acknowledgement

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
subject_type
required
string
subject_id
required
string <uuid>
subject_version
required
string
scope_type
string or null
scope_id
string or null <uuid>

Responses

Request samples

Content type
application/json
{
  • "subject_type": "string",
  • "subject_id": "80e197be-61ad-4068-b4ff-a483fb5c18f9",
  • "subject_version": "string",
  • "scope_type": "string",
  • "scope_id": "5d3fe357-12dd-4f62-b004-6d1fb3b8454f"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "member_id": "435a4844-006a-4cfc-a644-e8eb2dd2ca43",
  • "subject_type": "string",
  • "subject_id": "80e197be-61ad-4068-b4ff-a483fb5c18f9",
  • "subject_version": "string",
  • "scope_type": "string",
  • "scope_id": "5d3fe357-12dd-4f62-b004-6d1fb3b8454f",
  • "acknowledged_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Forms

List forms

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a form

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
title
required
string
description
string
project_id
string or null <uuid>
product_id
string or null <uuid>
status
string
Enum: "draft" "published" "closed"
success_message
string
Array of objects (FormField)

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "status": "draft",
  • "success_message": "string",
  • "fields": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "status": "draft",
  • "success_message": "string",
  • "fields": [
    ],
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a form

Authorizations:
apiKeyAuth
path Parameters
form_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "status": "draft",
  • "success_message": "string",
  • "fields": [
    ],
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a form

Authorizations:
apiKeyAuth
path Parameters
form_id
required
string <uuid>
Request Body schema: application/json
title
string
description
string
status
string
Enum: "draft" "published" "closed"
success_message
string
Array of objects (FormField)

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "status": "draft",
  • "success_message": "string",
  • "fields": [
    ]
}

List responses for a form

Authorizations:
apiKeyAuth
path Parameters
form_id
required
string <uuid>

Responses

CustomFields

List custom fields

Authorizations:
apiKeyAuth
query Parameters
resource_type
string

When set, excludes fields whose resource_types is non-empty and doesn't include this value.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a custom field

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
name
required
string
key
required
string
description
string
field_type
required
string (CustomFieldType)
Enum: "text" "number" "date" "boolean" "select" "multi_select" "url" "email" "phone" "money" "member" "form" "workstream" "project" "customer" "customer.person"
object (CustomFieldConfig)
resource_types
Array of strings or null
Enum: "task" "deal" "customer"

Restricts which resource types this field can attach to (e.g. ["deal"]). Omit/null to apply to all resource types.

is_required
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "field_type": "text",
  • "config": {
    },
  • "resource_types": [
    ],
  • "is_required": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "field_type": "text",
  • "config": {
    },
  • "resource_types": [
    ],
  • "is_required": true,
  • "is_active": true,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a custom field

Authorizations:
apiKeyAuth
path Parameters
customFieldId
required
string <uuid>

Responses

Update a custom field

Authorizations:
apiKeyAuth
path Parameters
customFieldId
required
string <uuid>
Request Body schema: application/json
name
string
description
string
object (CustomFieldConfig)
resource_types
Array of strings or null
Enum: "task" "deal" "customer"
is_required
boolean
is_active
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "config": {
    },
  • "resource_types": [
    ],
  • "is_required": true,
  • "is_active": true
}

Delete a custom field

Authorizations:
apiKeyAuth
path Parameters
customFieldId
required
string <uuid>

Responses

Set values for a custom field

Authorizations:
apiKeyAuth
path Parameters
customFieldId
required
string <uuid>
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Delete a custom field value

Authorizations:
apiKeyAuth
path Parameters
valueId
required
string <uuid>

Responses

Get custom field values for a specific resource

Authorizations:
apiKeyAuth
path Parameters
resourceType
required
string
resourceId
required
string <uuid>

Responses

EntityWorkflowTemplates

Reorder workflow template stages

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
Request Body schema: application/json
required
stage_ids
Array of strings <uuid> [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "stage_ids": [
    ]
}

Add a stage to a workflow template

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
Request Body schema: application/json
required
name
required
string
description
string
color
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "color": "string"
}

Update a workflow template stage

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>
Request Body schema: application/json
name
string
description
string
color
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "color": "string"
}

Delete a workflow template stage

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>

Responses

List fields available for stage conditions

Returns the built-in task fields plus the account's active custom fields, each with its data type and the condition operators valid for that data type. Use this to build the condition-builder UI.

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List entry conditions for a workflow template stage

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add an entry condition to a workflow template stage

A task can only move into this stage once all of its conditions are satisfied (see POST /tasks/{taskId}/workflow_stages). The operator must be valid for the target field's data type — fetch valid fields/operators from GET .../condition-fields first.

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>
Request Body schema: application/json
required
field_source
required
string (StageConditionFieldSource)
Enum: "custom_field" "task_field"
custom_field_id
string <uuid>

Required when field_source is custom_field.

task_field
string

Required when field_source is task_field. One of the fields returned by GET /entity-workflow-templates/{workflowTemplateId}/condition-fields.

operator
required
string (StageConditionOperator)
Enum: "equals" "not_equals" "contains" "not_contains" "is_empty" "is_not_empty" "gt" "gte" "lt" "lte" "in" "not_in"
value
any

Responses

Request samples

Content type
application/json
{
  • "field_source": "custom_field",
  • "custom_field_id": "a0fa4fc5-cabd-4219-9751-6d126c809065",
  • "task_field": "string",
  • "operator": "equals",
  • "value": null
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "workflow_template_stage_id": "79ea45b2-4be3-4980-a12d-3fd314348625",
  • "field_source": "custom_field",
  • "custom_field_id": "a0fa4fc5-cabd-4219-9751-6d126c809065",
  • "task_field": "string",
  • "operator": "equals",
  • "value": null,
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Remove an entry condition from a workflow template stage

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>
conditionId
required
string <uuid>

Responses

List required approvers for a workflow template stage

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Require an approver participation type for a workflow template stage

Once one or more approvers are configured for a stage, a task cannot move into that stage until a member holding each required participation type on the task has approved via POST /tasks/{taskId}/workflow_stages/{stageId}/approvals (or the mover has the task.stage.bypass_approval permission).

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>
Request Body schema: application/json
required
entity_user_participation_type_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "entity_user_participation_type_id": "23f2e07a-d7b4-45d9-8d71-31226db54e3f"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "workflow_template_stage_id": "79ea45b2-4be3-4980-a12d-3fd314348625",
  • "entity_user_participation_type_id": "23f2e07a-d7b4-45d9-8d71-31226db54e3f",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Remove a required approver from a workflow template stage

Authorizations:
apiKeyAuth
path Parameters
workflowTemplateId
required
string <uuid>
workflowTemplateStageId
required
string <uuid>
approverId
required
string <uuid>

Responses

Entities

List entities

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Customers

List customers

Authorizations:
apiKeyAuth
query Parameters
filter
string

e.g. filter=%22name%22%20iLike%20%22%25acme%25%22

sort_by
string
Enum: "name" "created_at"
sort_order
string
Enum: "asc" "desc"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a customer

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
name
required
string
Array of objects (CustomerPerson)
preferences
object
customer_account_id
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "persons": [
    ],
  • "preferences": { },
  • "customer_account_id": "94d11de5-c19a-403b-bfd6-219437a0391d"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "provider_account_id": "1c1210f9-f4df-4924-9b8f-9c709c2c2c6b",
  • "customer_account_id": "94d11de5-c19a-403b-bfd6-219437a0391d",
  • "created_by_provider_member_id": "f33fd9fc-6af4-4e09-9807-f554ae0374bf",
  • "created_by_customer_member_id": "bfd98977-7275-4b86-aaae-9de63cd3be9b",
  • "persons": [
    ],
  • "preferences": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get a customer

Includes the customer's contacts.

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "provider_account_id": "1c1210f9-f4df-4924-9b8f-9c709c2c2c6b",
  • "customer_account_id": "94d11de5-c19a-403b-bfd6-219437a0391d",
  • "created_by_provider_member_id": "f33fd9fc-6af4-4e09-9807-f554ae0374bf",
  • "created_by_customer_member_id": "bfd98977-7275-4b86-aaae-9de63cd3be9b",
  • "persons": [
    ],
  • "preferences": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a customer

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>
Request Body schema: application/json
name
string
preferences
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "preferences": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "provider_account_id": "1c1210f9-f4df-4924-9b8f-9c709c2c2c6b",
  • "customer_account_id": "94d11de5-c19a-403b-bfd6-219437a0391d",
  • "created_by_provider_member_id": "f33fd9fc-6af4-4e09-9807-f554ae0374bf",
  • "created_by_customer_member_id": "bfd98977-7275-4b86-aaae-9de63cd3be9b",
  • "persons": [
    ],
  • "preferences": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a customer

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>

Responses

List contacts for a customer

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a contact to a customer

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>
Request Body schema: application/json
required
first_name
required
string
last_name
required
string
role
string or null
Array of objects (ContactMethod)
is_primary
boolean

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "last_name": "string",
  • "role": "string",
  • "contact_methods": [
    ],
  • "is_primary": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "first_name": "string",
  • "last_name": "string",
  • "role": "string",
  • "contact_methods": [
    ],
  • "is_primary": true,
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a contact

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>
contactId
required
string <uuid>
Request Body schema: application/json
first_name
string
last_name
string
role
string or null
Array of objects (ContactMethod)
is_primary
boolean

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "last_name": "string",
  • "role": "string",
  • "contact_methods": [
    ],
  • "is_primary": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "first_name": "string",
  • "last_name": "string",
  • "role": "string",
  • "contact_methods": [
    ],
  • "is_primary": true,
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Remove a contact

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>
contactId
required
string <uuid>

Responses

List interactions (calls, emails, meetings, notes) logged against a customer

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Log an interaction against a customer

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>
Request Body schema: application/json
required
contact_id
string <uuid>
type
required
string (CustomerInteractionType)
Enum: "call" "email" "meeting" "note"
subject
string or null
content
string or null
occurred_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "type": "call",
  • "subject": "string",
  • "content": "string",
  • "occurred_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "type": "call",
  • "subject": "string",
  • "content": "string",
  • "occurred_at": "2019-08-24T14:15:22Z",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a logged interaction

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>
interactionId
required
string <uuid>
Request Body schema: application/json
type
string (CustomerInteractionType)
Enum: "call" "email" "meeting" "note"
subject
string or null
content
string or null
occurred_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "type": "call",
  • "subject": "string",
  • "content": "string",
  • "occurred_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "type": "call",
  • "subject": "string",
  • "content": "string",
  • "occurred_at": "2019-08-24T14:15:22Z",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a logged interaction

Authorizations:
apiKeyAuth
path Parameters
customerId
required
string <uuid>
interactionId
required
string <uuid>

Responses

Deals

List deals

Lists tasks in the account's "Sales Pipeline" entity, joined with their deal_detail, customer, and contact. Returns an empty list if no deal has been created yet (the pipeline is provisioned lazily on first deal creation).

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a deal

Creates a Task in the account's "Sales Pipeline" entity (lazily provisioning the entity/workflow on first use — no Project involved; deal permissions are account-scoped) plus its deal_detail row.

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
title
required
string
description
string
customer_id
string <uuid>
contact_id
string <uuid>
object (Money)
probability
integer [ 0 .. 100 ]
expected_close_at
string <date>
source
string
priority
string (TaskPriority)
Enum: "high" "medium" "low"
due_at
string <date-time>
assigned_to_member_id
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "amount": {
    },
  • "probability": 100,
  • "expected_close_at": "2019-08-24",
  • "source": "string",
  • "priority": "high",
  • "due_at": "2019-08-24T14:15:22Z",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "number": 0,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "6c886391-cd90-4135-a4b4-24f0dbf94111",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "requirement_documents": [
    ],
  • "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
  • "source_type": "string",
  • "source_metadata": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deal_detail": {
    }
}

Get a deal

Authorizations:
apiKeyAuth
path Parameters
dealId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "number": 0,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "6c886391-cd90-4135-a4b4-24f0dbf94111",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "requirement_documents": [
    ],
  • "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
  • "source_type": "string",
  • "source_metadata": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deal_detail": {
    }
}

Update a deal

Authorizations:
apiKeyAuth
path Parameters
dealId
required
string <uuid>
Request Body schema: application/json
title
string
description
string
customer_id
string or null <uuid>
contact_id
string or null <uuid>
object (Money)
probability
integer [ 0 .. 100 ]
expected_close_at
string or null <date>
lost_reason
string or null
source
string or null
priority
string (TaskPriority)
Enum: "high" "medium" "low"
due_at
string <date-time>
assigned_to_member_id
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "amount": {
    },
  • "probability": 100,
  • "expected_close_at": "2019-08-24",
  • "lost_reason": "string",
  • "source": "string",
  • "priority": "high",
  • "due_at": "2019-08-24T14:15:22Z",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "number": 0,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "6c886391-cd90-4135-a4b4-24f0dbf94111",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "requirement_documents": [
    ],
  • "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
  • "source_type": "string",
  • "source_metadata": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deal_detail": {
    }
}

Delete a deal

Authorizations:
apiKeyAuth
path Parameters
dealId
required
string <uuid>

Responses

Move a deal to a different pipeline stage

Thin wrapper over the task workflow-stage endpoint (same approval/condition rules apply, see /tasks/{taskId}/workflow_stages). If the target stage's stage_type is done, deal_detail.status becomes won; if cancelled, it becomes lost — both set actual_close_at to today.

Authorizations:
apiKeyAuth
path Parameters
dealId
required
string <uuid>
Request Body schema: application/json
required
workflow_template_stage_id
required
string <uuid>
planned_start_at
string <date-time>
planned_end_at
string <date-time>
actual_start_at
string <date-time>
bypass_approvals
boolean

Requires the deal.stage.bypass_approval permission.

Responses

Request samples

Content type
application/json
{
  • "workflow_template_stage_id": "79ea45b2-4be3-4980-a12d-3fd314348625",
  • "planned_start_at": "2019-08-24T14:15:22Z",
  • "planned_end_at": "2019-08-24T14:15:22Z",
  • "actual_start_at": "2019-08-24T14:15:22Z",
  • "bypass_approvals": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "type": "bundle",
  • "priority": "high",
  • "number": 0,
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  • "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
  • "assigned_to_member_id": "f762546b-4e22-4cbc-845d-0a241ae61391",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
  • "project_cycle_id": "a7f1ef39-8229-4259-be51-bc431d04a93e",
  • "milestone_id": "09ca5787-2524-40b3-af3c-ff5db9ab83d2",
  • "roadmap_item_id": "6c886391-cd90-4135-a4b4-24f0dbf94111",
  • "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50",
  • "due_at": "2019-08-24T14:15:22Z",
  • "resolved_at": "2019-08-24T14:15:22Z",
  • "requirement_documents": [
    ],
  • "source_id": "ae50a35c-df42-4eff-ba26-f8bc28d2af81",
  • "source_type": "string",
  • "source_metadata": { },
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "deal_detail": {
    }
}

List interactions logged against a deal

Authorizations:
apiKeyAuth
path Parameters
dealId
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Log an interaction against a deal

The interaction is attributed to the deal's linked customer (deal_detail.customer_id); fails 400 if the deal has no linked customer.

Authorizations:
apiKeyAuth
path Parameters
dealId
required
string <uuid>
Request Body schema: application/json
required
contact_id
string <uuid>
type
required
string (CustomerInteractionType)
Enum: "call" "email" "meeting" "note"
subject
string or null
content
string or null
occurred_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "type": "call",
  • "subject": "string",
  • "content": "string",
  • "occurred_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "type": "call",
  • "subject": "string",
  • "content": "string",
  • "occurred_at": "2019-08-24T14:15:22Z",
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Invoices

List invoices

Invoices are a standalone resource (not backed by Task/Entity, unlike Deals). Each entry includes computed balance_due, is_overdue, and display_number fields alongside stored data.

Authorizations:
apiKeyAuth
query Parameters
customer_id
string <uuid>
deal_task_id
string <uuid>
status
string (InvoiceStatus)
Enum: "draft" "sent" "partially_paid" "paid" "void"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an invoice

Creates a draft invoice for a customer. line_items must be non-empty and all share the same currency; amount is server-computed from line_items (never accepted as direct input). The invoice number and number_prefix are assigned by a DB trigger from the account's current invoice numbering settings (see /invoices/settings/numbering) and are snapshotted at creation time — later prefix/counter changes never retroactively affect already-created invoices.

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
customer_id
required
string <uuid>
contact_id
string <uuid>
deal_task_id
string <uuid>
required
Array of objects (InvoiceLineItem) non-empty
issue_date
string <date>
due_date
string <date>
notes
string or null

Responses

Request samples

Content type
application/json
{
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "number_prefix": "string",
  • "number": 0,
  • "display_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "amount": {
    },
  • "balance_due": {
    },
  • "is_overdue": true,
  • "status": "draft",
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string",
  • "payments": [
    ],
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Get the account's invoice numbering settings

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "prefix": "string",
  • "counter": 0
}

Update the account's invoice numbering prefix and/or reset the counter

A manual settings action (e.g. run once at the start of a new fiscal year to switch the prefix and restart numbering from 1). Purely a config write — never alters number_prefix/number on already-created invoices. If a reset produces a (prefix, number) combination that collides with an existing invoice, the next invoice created under that combination fails with a database uniqueness error.

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
prefix
string non-empty
reset_counter_to
integer >= 0

Responses

Request samples

Content type
application/json
{
  • "prefix": "string",
  • "reset_counter_to": 0
}

Response samples

Content type
application/json
{
  • "prefix": "string",
  • "counter": 0
}

Get an invoice

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "number_prefix": "string",
  • "number": 0,
  • "display_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "amount": {
    },
  • "balance_due": {
    },
  • "is_overdue": true,
  • "status": "draft",
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string",
  • "payments": [
    ],
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a draft invoice

Only allowed while status is draft. Once an invoice has been sent, line_items/amount/customer_id/ contact_id/deal_task_id/issue_date are locked — correct mistakes by voiding and creating a new invoice instead. due_date remains editable at any stage via this endpoint regardless of status (not locked). status itself is never settable here; it only changes via /send, /void, and /payments.

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>
Request Body schema: application/json
required
customer_id
string <uuid>
contact_id
string or null <uuid>
deal_task_id
string or null <uuid>
Array of objects (InvoiceLineItem) non-empty
issue_date
string or null <date>
due_date
string or null <date>
notes
string or null

Responses

Request samples

Content type
application/json
{
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "number_prefix": "string",
  • "number": 0,
  • "display_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "amount": {
    },
  • "balance_due": {
    },
  • "is_overdue": true,
  • "status": "draft",
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string",
  • "payments": [
    ],
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a draft invoice

Only allowed while status is draft. Non-draft invoices must be voided instead of deleted.

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>

Responses

Mark a draft invoice as sent

draft -> sent only. Sets issue_date to today if not already set. Locks line_items/amount/customer_id/contact_id/deal_task_id for further edits.

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "number_prefix": "string",
  • "number": 0,
  • "display_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "amount": {
    },
  • "balance_due": {
    },
  • "is_overdue": true,
  • "status": "draft",
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string",
  • "payments": [
    ],
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Void an invoice

Allowed from draft, sent, or partially_paid. Cannot void a paid or already-void invoice.

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "number_prefix": "string",
  • "number": 0,
  • "display_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "amount": {
    },
  • "balance_due": {
    },
  • "is_overdue": true,
  • "status": "draft",
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string",
  • "payments": [
    ],
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Record a payment against an invoice

Only allowed once the invoice is sent or partially_paid (not draft, void, or already fully paid). Payment currency must match the invoice's currency. Rejects amount_cents greater than the remaining balance (amount minus sum of prior payments). Status is recomputed automatically: partially_paid once any payment exists short of the full amount, paid once payments cover the full amount.

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>
Request Body schema: application/json
required
amount_cents
required
integer >= 1
currency
required
string
paid_at
string <date>
method
string or null
note
string or null

Responses

Request samples

Content type
application/json
{
  • "amount_cents": 1,
  • "currency": "string",
  • "paid_at": "2019-08-24",
  • "method": "string",
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "number_prefix": "string",
  • "number": 0,
  • "display_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "amount": {
    },
  • "balance_due": {
    },
  • "is_overdue": true,
  • "status": "draft",
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string",
  • "payments": [
    ],
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Remove a payment from an invoice

Corrects a mistaken payment entry. Invoice status is recomputed downward afterward (e.g. paid -> partially_paid or partially_paid -> sent).

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>
paymentId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
  • "number_prefix": "string",
  • "number": 0,
  • "display_number": "string",
  • "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  • "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
  • "deal_task_id": "108d0e2d-f38c-482d-9609-5d73bdaccb57",
  • "line_items": [
    ],
  • "amount": {
    },
  • "balance_due": {
    },
  • "is_overdue": true,
  • "status": "draft",
  • "issue_date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "notes": "string",
  • "payments": [
    ],
  • "created_by_member_id": "c742fe81-82da-4d1c-bc66-d3a4986fbc98",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Download an invoice as a PDF

Generated on demand for each request (not cached or stored). Streams application/pdf with a Content-Disposition attachment header using the invoice's display_number as the filename.

Authorizations:
apiKeyAuth
path Parameters
invoiceId
required
string <uuid>

Responses

Insights

Extract product insights from a website URL

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
url
required
string

Responses

Request samples

Content type
application/json
{
  • "url": "string"
}

Get suggested entities for a project

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Get suggested stages for a workflow

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Extract tasks from text

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
text
required
string

Responses

Request samples

Content type
application/json
{
  • "text": "string"
}

Classify the type of a document

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
content
required
string

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Extract tasks from a document

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
document_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6"
}

Extract feedback items from a document

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
document_id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6"
}

Draft a follow-up message from feedback items

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Generate product creation data from a website

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
url
required
string

Responses

Request samples

Content type
application/json
{
  • "url": "string"
}

Slack

Handle a Slack slash command for tasklets

Authorizations:
apiKeyAuth

Responses

Handle Slack interactive component payloads

Authorizations:
apiKeyAuth

Responses

Handle Slack event API payloads

Authorizations:
apiKeyAuth

Responses

Public

Get a published form (no auth required)

path Parameters
form_id
required
string <uuid>

Responses

Submit a response to a form (no auth required)

path Parameters
form_id
required
string <uuid>
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "answers": { }
}

Webhooks

Razorpay payment webhook

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Versions

Get the current app client version

Responses

Response samples

Content type
application/json
{
  • "version": "string"
}