Skip to main content

Project

Project Object

FieldTypeDescription
idsnowflakethe project's id
organisation_idsnowflakethe id of the owning organisation
codestringthe project's short code (max 12 characters)
namestringthe project's name (max 200 characters)
descriptionstringa description of the project
readmestringthe project's readme content (max 64000 characters)
statusproject statusthe current status of the project
open_milestone_countintegernumber of open milestones in the project
closed_milestone_countintegernumber of closed milestones in the project
open_work_item_countintegernumber of open work items in the project
closed_work_item_countintegernumber of closed work items in the project
work_item_types_countobject<snowflake, work item type count>dictionary mapping work item type ids to their counts (full response only)
document_countintegernumber of documents in the project
created_atISO8601 timestampwhen the project was created (full response only)
created_byuser objectthe user who created the project (full response only)
closed_atISO8601 timestampwhen the project was closed (full response only)
closed_byuser objectthe user who closed the project (full response only)
permissionsobject<permission key, boolean>permission flags for the current user (full response only)

Project Object (partial)

When returned in a partial context, the project object only includes:

FieldTypeDescription
idsnowflakethe project's id
organisation_idsnowflakethe id of the owning organisation
codestringthe project's short code
namestringthe project's name
descriptionstringa description of the project
statusproject statusthe current status of the project
open_milestone_countintegernumber of open milestones
closed_milestone_countintegernumber of closed milestones
open_work_item_countintegernumber of open work items
closed_work_item_countintegernumber of closed work items
document_countintegernumber of documents

Project Status

The status field indicates the current state of the project.

ValueDescription
openthe project is open and active
closedthe project is closed

Project Permission Keys

The permissions object contains boolean values for the following permission keys:

Permission KeyDescription
VIEW_PROJECTSallows viewing projects
ADMIN_PROJECTSallows administering projects
SHARE_PROJECTSallows sharing projects
VIEW_WORKITEMSallows viewing work items within the project
CREATE_WORKITEMSallows creating work items within the project
VIEW_DOCUMENTSallows viewing documents within the project
EDIT_DOCUMENTSallows editing documents within the project (via share scope)

Work Item Type Count Object

FieldTypeDescription
open_countintegernumber of open work items of this type
closed_countintegernumber of closed work items of this type
{
"id": "1234567890",
"organisation_id": "9876543210",
"code": "PRJ",
"name": "Example Project",
"description": "A sample project",
"readme": "# Project README\n\nDetails here.",
"status": "open",
"open_milestone_count": 5,
"closed_milestone_count": 3,
"open_work_item_count": 12,
"closed_work_item_count": 8,
"work_item_types_count": {
"1111111111": {
"open_count": 5,
"closed_count": 3
}
},
"document_count": 24,
"created_at": "2020-01-01T00:00:00Z",
"created_by": {
"id": "5555555555"
},
"closed_at": null,
"closed_by": null,
"permissions": {
"VIEW_PROJECTS": true,
"ADMIN_PROJECTS": false,
"SHARE_PROJECTS": true,
"VIEW_WORKITEMS": true,
"CREATE_WORKITEMS": true,
"VIEW_DOCUMENTS": true
}
}

Project Milestone Object

FieldTypeDescription
idsnowflakethe milestone's id
organisation_idsnowflakethe id of the owning organisation
project_idsnowflakethe id of the owning project
namestringthe milestone's name
descriptionstringa description of the milestone
due_atISO8601 timestampthe due date/time for the milestone
statusproject milestone statusthe current status of the milestone
open_work_item_countintegernumber of open work items linked to the milestone
closed_work_item_countintegernumber of closed work items linked to the milestone
work_item_types_countobject<snowflake, work item type count>dictionary mapping work item type ids to their counts
created_atISO8601 timestampwhen the milestone was created
created_byuser objectthe user who created the milestone
closed_atISO8601 timestampwhen the milestone was closed
closed_byuser objectthe user who closed the milestone

Project Milestone Status

The status field indicates the current state of the milestone.

ValueDescription
openthe milestone is open and active
closedthe milestone is closed
{
"id": "1234567890",
"organisation_id": "9876543210",
"project_id": "1111111111",
"name": "Phase 1 Completion",
"description": "Complete all Phase 1 deliverables",
"due_at": "2026-06-30T17:00:00Z",
"status": "open",
"open_work_item_count": 8,
"closed_work_item_count": 3,
"work_item_types_count": {
"2222222222": {
"open_count": 5,
"closed_count": 2
},
"3333333333": {
"open_count": 3,
"closed_count": 1
}
},
"created_at": "2026-01-15T09:00:00Z",
"created_by": {
"id": "5555555555"
},
"closed_at": null,
"closed_by": null
}

Project Package Object

FieldTypeDescription
idsnowflakethe package's id
organisation_idsnowflakethe id of the owning organisation
project_idsnowflakethe id of the owning project
codestringthe package's short code (max 12 characters)
namestringthe package's name (max 200 characters)
descriptionstringa description of the package
enabledbooleanwhether the package is enabled
{
"id": "1234567890",
"organisation_id": "9876543210",
"project_id": "1111111111",
"code": "PKG",
"name": "Design Package",
"description": "All design documents for the project",
"enabled": true
}

Get Project

GET /projects/{project.id}

Returns the project object for the given project id. Requires the VIEW_PROJECTS permission for the project.

Error Responses
Status CodeDescription
400Bad request (invalid project or organisation)
403Forbidden (insufficient permissions)

Update Project

PATCH /projects/{project.id}

Partially updates a project. Only the fields provided will be updated. Requires the ADMIN_PROJECTS permission for the project.

All parameters for this method are optional. Only the fields provided will be updated.

JSON Params
FieldTypeDescription
code?stringthe project's short code (max 12 characters)
name?stringthe project's name (max 200 characters)
description?stringa description of the project
readme?stringthe project's readme content (max 64000 characters)
status?project statusthe status to set for the project
Notes
  • Setting status to closed requires all milestones to be closed first.
  • Setting status to open requires available project quota on the organisation.
Error Responses
Status CodeDescription
400Bad request (project has open milestones)
403Forbidden (insufficient permissions)
429Failed to change project status (no quota)

Update Project Permission

PATCH /projects/{project.id}/permissions/{roleId}

Updates the permissions granted to a role, user, or organisation within the project. The roleId parameter accepts the id of a role, a user, or an organisation. Requires the ADMIN_PROJECTS permission for the project.

JSON Params
FieldTypeDescription
permissionsobject<string, permission grant type>permissions to grant or revoke
Error Responses
Status CodeDescription
400Bad request (permissions object not provided)
403Forbidden (insufficient permissions)
404Not found (project does not exist)

List Project Permissions

GET /projects/{project.id}/permissions

Returns an array of permission grant objects for the project. Requires the ADMIN_PROJECTS permission for the project.

Error Responses
Status CodeDescription
400Bad request (invalid project or organisation)
403Forbidden (insufficient permissions)

Create Milestone

POST /projects/{project.id}/milestones

Creates a new milestone in the project. Requires the ADMIN_PROJECTS permission for the project.

All parameters for this method are optional.

JSON Params
FieldTypeDescriptionDefault
name?stringthe milestone's namenew milestone
description?stringa description of the milestone
status?project milestone statusthe status to set for the milestoneopen
due_at?ISO8601 timestampthe due date/time for the milestone
Error Responses
Status CodeDescription
400Bad request (project does not exist)
403Forbidden (insufficient permissions)

Get Milestone

GET /milestones/{milestone.id}

Returns the project milestone object for the given milestone id. Requires the VIEW_PROJECTS permission for the project that owns the milestone.

Error Responses
Status CodeDescription
400Bad request (invalid milestone or organisation)
403Forbidden (insufficient permissions)
404Not found (milestone does not exist)

Update Milestone

PATCH /milestones/{milestone.id}

Partially updates a milestone. Only the fields provided will be updated. Requires the ADMIN_PROJECTS permission for the project that owns the milestone.

All parameters for this method are optional. Only the fields provided will be updated.

JSON Params
FieldTypeDescription
name?stringthe milestone's name
description?stringa description of the milestone
status?project milestone statusthe status to set for the milestone
due_at?ISO8601 timestampthe due date/time for the milestone
Notes
  • Setting status to open is not allowed if the project is closed.
Error Responses
Status CodeDescription
400Bad request (cannot set milestone to open when project is closed)
403Forbidden (insufficient permissions)

List Milestones

GET /projects/{project.id}/milestones

Returns an array of project milestone objects for the project. Requires the VIEW_PROJECTS permission for the project.

Query Parameters
FieldTypeDescription
$filter?stringOData filter expression (supports status and due_at)
$skip?integernumber of records to skip
$top?integermaximum number of records to return
Error Responses
Status CodeDescription
400Bad request (invalid project or organisation)
403Forbidden (insufficient permissions)

Create Package

POST /projects/{project.id}/packages

Creates a new package in the project. Requires the ADMIN_PROJECTS permission for the project.

JSON Params
FieldTypeDescriptionDefault
code?stringthe package's short code (max 12 characters)
name?stringthe package's name (max 200 characters)new package
description?stringa description of the package
enabled?booleanwhether the package is enabledtrue
Error Responses
Status CodeDescription
400Bad request (project does not exist)
403Forbidden (insufficient permissions)

List Packages

GET /projects/{project.id}/packages

Returns an array of project package objects for the project. Requires the VIEW_PROJECTS permission for the project.

Query Parameters
FieldTypeDescription
$filter?stringOData filter expression (supports enabled)
$skip?integernumber of records to skip
$top?integermaximum number of records to return
Error Responses
Status CodeDescription
400Bad request (invalid project or organisation)
403Forbidden (insufficient permissions)

Get Package

GET /packages/{package.id}

Returns the project package object for the given package id. Requires the VIEW_PROJECTS permission for the project that owns the package.

Error Responses
Status CodeDescription
400Bad request (invalid package or organisation)
403Forbidden (insufficient permissions)
404Not found (package does not exist)

Update Package

PATCH /packages/{package.id}

Partially updates a package. Only the fields provided will be updated. Requires the ADMIN_PROJECTS permission for the project that owns the package.

All parameters for this method are optional. Only the fields provided will be updated.

JSON Params
FieldTypeDescription
code?stringthe package's short code (max 12 characters)
name?stringthe package's name (max 200 characters)
description?stringa description of the package
enabled?booleanwhether the package is enabled
Error Responses
Status CodeDescription
400Bad request (invalid package or organisation)
403Forbidden (insufficient permissions)

Update Package Permission

PATCH /packages/{package.id}/permissions/{roleId}

Updates the permissions granted to a role, user, or organisation within the package. The roleId parameter accepts the id of a role, a user, or an organisation. Requires the ADMIN_PROJECTS permission for the package.

JSON Params
FieldTypeDescription
permissionsobject<string, permission grant type>permissions to grant or revoke
Error Responses
Status CodeDescription
400Bad request (permissions object not provided)
403Forbidden (insufficient permissions)
404Not found (package does not exist)

List Package Permissions

GET /packages/{package.id}/permissions

Returns an array of permission grant objects for the package. Requires the ADMIN_PROJECTS permission for the package.

Error Responses
Status CodeDescription
400Bad request (invalid package or organisation)
403Forbidden (insufficient permissions)
404Not found (package does not exist)