---
title: "List contracts"
method: GET
path: "/v1/contracts"
tags: ["v1 - Contracts"]
---

# List contracts

`GET /v1/contracts`

## Request

- Base URL: `https://light.inc` (the document declares no server; this is the origin it was published from)
- URL: `https://light.inc/v1/contracts`
- Auth: one of:
  - API key in header `Authorization`
  - HTTP bearer

Returns a paginated list of contracts

## Query parameters

- `sort` string: Sort string in the format `field:direction`. To provide multiple sort fields, separate them with commas. Available directions: `asc`, `desc`. Available fields: `activatedAt`, `companyEntityId`, `companyEntityName`, `createdAt`, `customerId`, `customerName`, `description`, `endDate`, `estimatedAmount`, `renewalDate`, `startDate`, `state`, `terminatedAt`.
- `filter` string: Filter string in the format `field:operator:value`. To provide multiple filters, separate them with commas. Available operators: `eq`, `ne`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`. - For `in` and `not_in` operators, provide multiple values separated by the pipe character (`|`).
- `limit` integer
- `offset` integer
- `cursor` string

## Response `default`

default response

- ExternalPaginatedResponseV1ModelExternalContractV1Model
  - `records` ExternalContractV1Model[]: List of records for the current page
    - `id` string, uuid: Unique identifier for the object
    - `companyId` string, uuid: ID of the company
    - `startDate` string, date, nullable: Contract start date
    - `endDate` string, date, nullable: Contract end date
    - `activatedAt` string, date-time, nullable: Timestamp when the contract was activated/published
    - `terminatedAt` string, date-time, nullable: Timestamp when the contract was terminated
    - `terminationReason` string, nullable: Reason for contract termination
    - `terminationReasonType` 'FINISHED' | 'OTHER' | 'RENEWED', nullable: Categorized reason for contract termination - `FINISHED` - Contract ran to its natural end - `OTHER` - Terminated for another reason, described in terminationReason - `RENEWED` - Contract ended because it was renewed into a new contract ⚠️ This enum is not exhaustive; new values may be added in the future.
    - `renewalDate` string, date, nullable: Date when the contract should be renewed
    - `companyEntityId` string, uuid, nullable: ID of the entity
    - `invoiceTemplateId` string, uuid, nullable: ID of the invoice template to use for generating invoices
    - `currency` string
    - `estimatedAmount` integer, nullable: Estimated total amount for the contract in cents
    - `paymentType` 'AIRWALLEX' | 'BANK_TRANSFER' | 'DIRECT_DEBIT' | 'STRIPE', nullable: Payment type for invoices generated from this contract - `AIRWALLEX` - Payment via Airwallex. A payment link will be displayed on the invoice - `BANK_TRANSFER` - Payment via bank transfer. Bank information will be displayed on the invoice - `DIRECT_DEBIT` - Payment via direct debit. A notice that the amount will be collected automatically will be displayed on the invoice - `STRIPE` - Payment via Stripe. A payment link will be sent to the customer ⚠️ This enum is not exhaustive; new values may be added in the future.
    - `payeeBankAccountId` string, uuid, nullable: ID of the bank account where payments should be sent
    - `billingStart` string, date, nullable: Date when billing should start for this contract
    - `netTerms` integer, nullable: Number of days from invoice date to when payment is due
    - `invoiceLeadDays` integer, nullable: Number of days before billing period start to date the invoice
    - `description` string, nullable: Description of the contract
    - `customerId` string, uuid, nullable: ID of the customer
    - `state` 'CREATED' | 'DRAFT' | 'ACTIVE' | 'PENDING_TERMINATION' | 'TERMINATED': Current state of the contract - `CREATED` - Contract has been created - `DRAFT` - Contract is in draft state and can be edited - `ACTIVE` - Contract is active and generating invoices - `PENDING_TERMINATION` - Contract has a scheduled termination - `TERMINATED` - Contract has been terminated ⚠️ This enum is not exhaustive; new values may be added in the future.
    - `areLinesWithTax` boolean: Whether invoice line amounts include tax or tax is added on top
    - `lines` ExternalContractLineV1Model[], nullable: List of contract line items. Only returned when fetching a single contract by ID
      - `id` string, uuid: Unique identifier for the object
      - `companyId` string, uuid: ID of the company
      - `contractId` string, uuid: ID of the contract this line belongs to
      - `productId` string, uuid: ID of the product
      - `billingStart` string, date, nullable: Date when billing starts for this line
      - `billingEnd` string, date, nullable: Date when billing ends for this line
      - `billingRecurrence` 'ONE_TIME' | 'MONTHLY' | 'QUARTERLY' | 'HALF_YEARLY' | 'YEARLY': Billing frequency for this line - `ONE_TIME` - The product is billed once - `MONTHLY` - The product is billed every month - `QUARTERLY` - The product is billed every three months - `HALF_YEARLY` - The product is billed every six months - `YEARLY` - The product is billed every year ⚠️ This enum is not exhaustive; new values may be added in the future.
      - `accountId` string, uuid, nullable: ID of the account for bookkeeping
      - `taxCodeId` string, uuid, nullable: ID of the tax code
      - `avataxCode` string, nullable: Avalara tax code
      - `discount` ExternalContractLineDiscountV1Model, nullable: Discount to apply to this line (can be percentage or amount-based)
        - `startDate` string, date
        - `endDate` string, date
        - `type` 'PERCENTAGE' | 'AMOUNT': ⚠️ This enum is not exhaustive; new values may be added in the future.
      - `quantity` number, nullable: Quantity of the product
      - `priceOverwrite` integer, nullable: Custom price override in cents
      - `productNameOverwrite` string, nullable: Custom product name override
      - `amortizationTemplateId` string, uuid, nullable: ID of the amortization template
      - `amortizationStartDate` string, date, nullable: Start date for amortization
      - `amortizationEndDate` string, date, nullable: End date for amortization
      - `aiValueSuggestions` ExternalAiValueSuggestionV1Model[], nullable: AI-generated suggestions for this line
        - `field` string
        - `fieldValues` string[]
        - `reasoning` string
      - `customProperties` ExternalCustomPropertyV1Model[], nullable: List of custom properties associated with the line
        - `groupId` string, uuid: ID of the custom property group
        - `groupInternalName` string: Internal name of the custom property group
        - `values` ExternalCustomPropertyValueV1Model[]: List of values. Note that this will be a single value unless the group input type supports multiple values
          - `id` string, uuid: Unique identifier for the object
          - `groupId` string, uuid: ID of the custom property group
          - `groupInternalName` string: Internal name of the custom property group
          - `companyId` string, uuid: ID of the company
          - `internalName` string: Internal name of the custom property value
          - `label` string: Label of the custom property value
          - `context` string, nullable: Context/description of the custom property value
          - `createdAt` string, date-time: Timestamp when the custom property value was created
          - `updatedAt` string, date-time: Timestamp when the custom property value was last updated
      - `createdAt` string, date-time: Timestamp when the line was created
      - `updatedAt` string, date-time: Timestamp when the line was last updated
    - `taxEngineName` 'AVATAX' | 'LIGHT' | 'SPHERE': Name of the tax engine to be used - `AVATAX` - Avalara AvaTax will be used for tax calculations - `LIGHT` - Light built-in tax engine will be used for tax calculations - `SPHERE` - Sphere tax engine will be used for tax calculations ⚠️ This enum is not exhaustive; new values may be added in the future.
    - `externalId` string, nullable: External identifier from an external system
    - `externalSource` 'HUBSPOT' | 'SALESFORCE', nullable: Source system if contract was synced from an external system - `HUBSPOT` - Contract synced from HubSpot - `SALESFORCE` - Contract synced from Salesforce ⚠️ This enum is not exhaustive; new values may be added in the future.
    - `customProperties` ExternalCustomPropertyV1Model[], nullable: List of custom properties associated with the contract
      - `groupId` string, uuid: ID of the custom property group
      - `groupInternalName` string: Internal name of the custom property group
      - `values` ExternalCustomPropertyValueV1Model[]: List of values. Note that this will be a single value unless the group input type supports multiple values
        - `id` string, uuid: Unique identifier for the object
        - `groupId` string, uuid: ID of the custom property group
        - `groupInternalName` string: Internal name of the custom property group
        - `companyId` string, uuid: ID of the company
        - `internalName` string: Internal name of the custom property value
        - `label` string: Label of the custom property value
        - `context` string, nullable: Context/description of the custom property value
        - `createdAt` string, date-time: Timestamp when the custom property value was created
        - `updatedAt` string, date-time: Timestamp when the custom property value was last updated
    - `createdAt` string, date-time: Timestamp when the contract was created
    - `updatedAt` string, date-time: Timestamp when the contract was last updated
  - `hasMore` boolean: Boolean flag indicating if there are more records available
  - `total` integer, nullable: Total number of records (only for offset pagination). This field is not guaranteed to be returned and only available for offset pagination, please do not rely on it and migrate to cursor pagination.
  - `nextCursor` string, nullable: Cursor for fetching the next page (only for cursor pagination)
  - `prevCursor` string, nullable: Cursor for fetching the previous page (only for cursor pagination)

---

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