---
title: "Get Contract Lifecycle Settings"
method: GET
path: "/contract-lifecycle-settings"
tags: ["contract-lifecycle-settings"]
---

# Get Contract Lifecycle Settings

`GET /contract-lifecycle-settings`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/contract-lifecycle-settings`
- Auth: none declared

When this company is reminded about a renewal decision, and who is.

Always concrete values: a company that has never saved gets the code defaults
with ``is_configured=False`` — a starting point for the form, not a policy in
force, since nothing is scheduled until the PUT below creates the row.

## Response `200`

Successful Response

- ContractLifecycleConfigurationResponse: The company's resolved lifecycle settings. Always concrete values: an unconfigured company gets the code defaults with ``is_configured=False``, so the UI can render "using defaults" without null-branching every field.
  - `is_configured` boolean, required
  - `notice_reminder_lead_days` integer[], required
  - `renewal_reminder_lead_days` integer[], required
  - `notice_reminders_enabled` boolean
  - `renewal_reminders_enabled` boolean
  - `default_notice_period_value` integer, nullable
  - `default_notice_period_unit` 'days' | 'months': Unit of a termination-notice period. Months are not 30 days: 3 months before 2026-05-31 is 2026-02-28, while 90 days before it is 2026-03-02. This generates a legal deadline, so the unit is stored rather than normalized to days (see ``backend.helpers.contract_terms.derive_notice_date``).
  - `default_renewal_term_months` integer, required
  - `assignees` AssigneeSelectionResponse[]
    - `mode` 'vendor_assignees' | 'user' | 'team', required: How responsibility for an entity is resolved to a set of users. Not every mode is valid for every entity — see ``ASSIGNEE_SCOPES``.
    - `user_id` string, uuid, nullable
    - `team_id` string, uuid, nullable
    - `label` string, required
  - `subscribers` AssigneeSelectionResponse[]
    - `mode` 'vendor_assignees' | 'user' | 'team', required: How responsibility for an entity is resolved to a set of users. Not every mode is valid for every entity — see ``ASSIGNEE_SCOPES``.
    - `user_id` string, uuid, nullable
    - `team_id` string, uuid, nullable
    - `label` string, required
  - `available_assignee_modes` AssigneeMode[]
  - `default_assignee_mode` 'vendor_assignees' | 'user' | 'team', required: How responsibility for an entity is resolved to a set of users. Not every mode is valid for every entity — see ``ASSIGNEE_SCOPES``.

---

[API](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api.md) - [All operations](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api/revisions/8587332d5e43?raw)
