Docs

Docs

x-cpod-domain: licenses

Licenses

Software licenses owned and how they're assigned.

Try in explorer client.licenses

SoftwareLicense

A software license your org holds.

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

// create:
await client.licenses.licenses.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.
asset_iduuidUUID of the TechnologyAsset this license covers. Null when the license is tracked independently of a registered asset.
vendorstringName of the software vendor or publisher.
product_namestringFull commercial name of the licensed software product.
product_skustringVendor-assigned SKU or part number for this license product.
license_typestringLicense model. 'concurrent' allows a pool of simultaneous users. 'named_user' is tied to specific individuals. 'site' covers an entire organization or location.
total_seatsnumberTotal number of licensed seats purchased. Null for unlimited or site-wide licenses.
used_seatsnumberNumber of seats currently assigned via active LicenseAssignment records. Computed by the platform.
available_seatsnumberNumber of seats available for assignment (totalSeats - usedSeats). Null when totalSeats is null.
costjsonFinancial cost information for this license.
purchase_datedate-timeDate the license was originally purchased or the subscription began.
expiry_datedate-timeDate the license expires. Null for open-source or licenses with no expiry.
renewal_datedate-timeDate on which this license is due for renewal. May differ from expiryDate due to renewal processing windows.
auto_renewbooleanWhether this license is configured for automatic renewal with the vendor.
supplier_iduuidUUID of the vendor or supplier entity (if managed in cPod). Null when the vendor is tracked only by name.
contract_referencestringPurchase order number, contract number, or procurement reference for this license agreement.
statusstringCurrent lifecycle status. 'expiring_soon' is set automatically when the renewal date is within 90 days.
compliance_statusstringLicense compliance posture. 'over_allocated' means usedSeats exceeds totalSeats. 'under_utilized' means utilization is below a configured threshold.
tagsjsonArray of tag strings for grouping and filtering.
list_pricenumberVendor list price per seat or billing cycle before any discount is applied.
negotiated_discountnumberPercentage discount negotiated off the vendor list price (0–100).
cost_center_iduuidUUID of the CostCenter that funds this license.
contract_iduuidUUID of the Contract that governs this license agreement.

LicenseAssignment

A seat assignment of a SoftwareLicense to a Person or Group.

REST path/api/v1/licenses/assignments
Operations
listgetcreaterevoke
SDK
// list — returns only your records; add filters/search:
await client.licenses.assignments.list()

// create:
await client.licenses.assignments.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.
license_iduuidUUID of the SoftwareLicense from which this seat is assigned.
assignee_iduuidUUID of the Person or Group to whom this license seat is assigned. The type is determined by assigneeType.
assignee_typestringDiscriminator indicating whether assigneeId refers to a Person or a Group.
asset_iduuidUUID of the TechnologyAsset for which this license is being used, if different from or more specific than the license's top-level assetId. Allows tracking which
assigned_atdate-timeISO 8601 timestamp when this license seat was assigned.
assigned_by_iduuidUUID of the Person who performed or approved this assignment.
expires_atdate-timeISO 8601 timestamp when this assignment is scheduled to expire. Null for indefinite assignments.
statusstringCurrent lifecycle status of this assignment.
last_used_atdate-timeISO 8601 timestamp when the assigned seat was last actively used by the assignee. Null if usage has never been recorded.