Docs

Docs

x-cpod-domain: okr

OKRs

Objectives and Key Results.

Objective

A high-level outcome with an owner.

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

// create:
await client.okr.objectives.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.
periodstringPlanning period this Objective belongs to (e.g. '2026-Q4').
titlestringShort, action-oriented title for the Objective.
descriptionstringLonger narrative describing the intent and context of the Objective.
categorystringStrategic category this Objective contributes to.
owner_idstringUser ID of the person accountable for this Objective. Format: usr-<uuid>.
group_idstringGroup (department/team) that owns this Objective. Format: grp-<uuid>.
parent_objective_idstringID of the parent Objective for cascaded alignment.
key_result_idsjsonIDs of KeyResult records that contribute to this Objective. Format: krs-<uuid>.
statusstringCurrent lifecycle status of the Objective.
progress_pctnumberAggregate progress percentage (0–100), computed from linked KeyResults.
weightnumberRelative importance of this Objective within its parent (e.g. 0.3 = 30%).
linked_project_idsjsonIDs of execution projects that contribute to this Objective.
dependenciesjsonExternal dependencies that affect delivery of this Objective.
check_in_frequencystringHow often progress check-ins are expected for this Objective.
last_check_in_atdate-timeISO 8601 timestamp of the most recent check-in.
tagsjsonFree-form string tags for filtering and grouping.
versionnumberOptimistic-lock version counter, incremented on each write.

KeyResult

A measurable result rolling up to an Objective.

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

// create:
await client.okr.keyResults.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.
objective_idstringID of the Objective this KeyResult contributes to.
titlestringShort, descriptive title for this KeyResult.
metric_typestringThe measurement type that governs how progress is computed.
baselinenumberStarting value of the metric at the time this KeyResult was created.
targetnumberThe value the metric must reach for this KeyResult to be considered achieved.
currentnumberLatest observed value of the metric.
unitstringHuman-readable unit label for the metric (e.g. 'MRR', '%', 'count', 'milestone').
directionstringWhether progress is made by the metric going up (increase) or down (decrease).
owner_idstringUser ID of the person accountable for this KeyResult. Format: usr-<uuid>.
data_sourcestringHow the current metric value is sourced.
connector_idstringID of the connector used to pull metric data automatically. Null for manual or query sources.
querystringMetric query expression used when dataSource is 'query'.
progress_pctnumberComputed progress percentage (0–100) based on baseline, current, and target.
statusstringCurrent health status of this KeyResult.
last_update_atdate-timeISO 8601 timestamp when the current metric value was last updated.
historyjsonOrdered log of metric value snapshots over time.
tagsjsonFree-form string tags for filtering and grouping.
versionnumberOptimistic-lock version counter, incremented on each write.