Docs

Docs

x-cpod-domain: project

Projects

Projects, tasks, sprints, features.

Try in explorer client.projects

Project

A delivery effort with a start, end, and team.

REST path/api/v1/edm-projects/projects
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.projects.projects.list()

// create:
await client.projects.projects.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
owner_idstringUser ID of the project manager. Format: usr-<uuid>.
namestringHuman-readable project name.
keystringShort project code used as a prefix for task numbers.
kindstringProject classification.
account_idstringAccount ID if this is a client-facing project.
deal_idstringSource deal ID, if this project was created from a deal.
statusstringCurrent project lifecycle status.
prioritystringProject priority level.
start_datedate-timePlanned project start date.
end_datedate-timePlanned project end date.
actual_start_datedate-timeActual project start date.
actual_end_datedate-timeActual project completion date.
budgetjsonBudget tracking for the project.
member_idsjsonUser IDs of project members. Format: usr-<uuid>.
membersjsonProject members with their roles.
group_idsjsonGroup IDs of owning teams. Format: grp-<uuid>.
repository_refsjsonLinked source code repositories.
descriptionstringFree-text project description.
objectivesjsonFree-text project goals.
linked_objective_idsjsonCross-links to OKR Objective records. Format: obj-<uuid>.
attachment_refsjsonReferences to attached documents or files.
custom_fieldsjsonArbitrary key-value extension fields.
tagsjsonFlat string tags for filtering and grouping.
versionnumberOptimistic-concurrency version counter.
due_datedate-timeProject due date.

Task

A unit of work within a Project.

REST path/api/v1/edm-projects/tasks
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.projects.tasks.list()

// create:
await client.projects.tasks.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
project_idstringParent project ID. Format: prj-<uuid>.
parent_task_idstringParent task ID for subtask hierarchies.
sprint_idstringSprint ID if this task is committed to a sprint.
feature_idstringFeature ID if this task is grouped under a feature.
titlestringShort descriptive title for the task.
descriptionstringDetailed task description. Supports Markdown.
task_numberstringHuman-readable task number scoped to the project key.
statusstringCurrent task status.
prioritystringTask priority level.
story_pointsnumberAgile story point estimate.
estimated_hoursnumberEstimated hours to complete.
actual_hoursnumberActual hours logged against this task.
assignee_idstringUser ID of the assignee. Format: usr-<uuid>.
reviewer_idsjsonUser IDs of reviewers.
labelsjsonFree-form label strings for categorisation.
due_datedate-timeTask due date.
completed_atdate-timeISO 8601 timestamp when the task was completed.
blocked_by_task_idsjsonTask IDs that must be completed before this task can proceed.
duplicates_task_idstringTask ID that this task duplicates.
repository_refjsonLinked pull request or branch reference.
comment_countnumberNumber of comments on this task.
attachment_refsjsonReferences to attached files.
custom_fieldsjsonArbitrary key-value extension fields.
tagsjsonFlat string tags for filtering and grouping.
versionnumberOptimistic-concurrency version counter.
start_datedate-timeTask start date.
estimate_hoursnumberEffort estimate in hours.

Sprint

A time-boxed iteration of work in a Project.

REST path/api/v1/edm-projects/sprints
Operations
listgetcreateupdateclose
SDK
// list — returns only your records; add filters/search:
await client.projects.sprints.list()

// create:
await client.projects.sprints.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
project_idstringParent project ID.
namestringHuman-readable sprint name.
week_keystringISO 8601 week identifier (e.g., '2026-W22').
start_datedate-timeSprint start date.
end_datedate-timeSprint end date.
statusstringCurrent sprint status.
goalstringSprint goal statement.
committed_pointsnumberStory points committed at sprint start.
completed_pointsnumberStory points completed by the end of the sprint.
task_idsjsonTask IDs committed to this sprint.
feature_idsjsonFeature IDs committed to this sprint.
lead_idstringUser ID of the sprint lead. Format: usr-<uuid>.
retrospectivejsonSprint retrospective notes. Populated after the sprint completes.
ai_planstringLLM-generated sprint plan.
tagsjsonFlat string tags for filtering and grouping.
versionnumberOptimistic-concurrency version counter.
starts_atdate-timeSprint start timestamp.
ends_atdate-timeSprint end timestamp.

Feature

A larger unit of work that may span multiple Tasks.

REST path/api/v1/edm-projects/features
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.projects.features.list()

// create:
await client.projects.features.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
project_idstringOptional anchor project ID.
titlestringFeature title.
descriptionstringDetailed description of the feature.
categorystringKanban column or category slug.
prioritystringFeature priority level.
statusstringCurrent feature lifecycle status.
source_urlstringURL of the original source document or issue.
sprint_idstringSprint ID if this feature is committed to a single sprint.
section_idsjsonSection IDs if this feature is split into sections.
assignee_idsjsonUser IDs assigned to this feature.
story_pointsnumberAgile story point estimate for the feature.
goalsjsonFree-text acceptance criteria or goals.
ai_planstringLLM-generated implementation plan.
linked_task_idsjsonTask IDs implementing this feature.
linked_deal_idstringDeal ID if this feature is commercially driven.
linked_rfp_idstringRFP record ID if this feature was sourced from an RFP.
github_issue_refjsonLinked GitHub issue reference.
status_historyjsonAudit log of status transitions.
tagsjsonFlat string tags for filtering and grouping.
versionnumberOptimistic-concurrency version counter.
namestringFeature name.
owner_iduuidUser ID of the feature owner.