---
title: "List contract types"
method: GET
path: "/contract-types"
tags: ["Contract Types"]
---

# List contract types

`GET /contract-types`

## Request

- Base URL: `https://contracko.com/api/v1`
- URL: `https://contracko.com/api/v1/contract-types`
- Auth: one of:
  - API key in header `x-contracko-api-key`
  - HTTP bearer

Returns contract types scoped to the API key organisation. Use these types for contract intake or as parser extraction schemas referenced by categoryId.

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

Contract types returned.

- object
  - `items` object[], required: Contract types in this workspace
    - `id` string, uuid, required
    - `name` string, required
    - `description` string, nullable, required
    - `organisationId` string, required
    - `isDefault` boolean, required
    - `source` 'manual' | 'template_adoption' | 'starting_template' | 'ai_generated', required
    - `sourceTemplateId` string, uuid, nullable, required
    - `sourceTemplateSlug` string, nullable, required
    - `entityStatus` 'pending-review' | 'archived', nullable, required: Read-only review state. AI-created types can be pending-review; any update clears it to null.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `fields` object[], required: Custom fields of this contract type
      - `id` string, uuid, required
      - `name` string, required
      - `fieldKey` string, required
      - `description` string, nullable, required
      - `placeholder` string, nullable, required
      - `fieldType` 'text' | 'number' | 'date' | 'boolean' | 'currency' | 'percentage' | 'select' | 'multi_select', required
      - `required` boolean, required
      - `config` union, required
        - string
        - number
        - boolean
        - object
        - unknown[]
          - unknown
      - `defaultValue` union, required
        - string
        - number
        - boolean
        - object
        - unknown[]
          - unknown
      - `displayOrder` integer, required
      - `categoryId` string, uuid, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
  - `nextCursor` string, nullable: Present only on paginated lists; null at the end.

## Other responses

- `401`: Authentication failed (missing, invalid, revoked, or expired API key).
- `403`: Access denied because the API key does not include the required access for this operation.
- `429`: Retry later because the request rate limit was reached.
- `500`: The server could not complete the request.

---

[API](https://skmtc.dev/contracko/apis/contracko-parsing-api.md) · [All operations](https://skmtc.dev/contracko/apis/contracko-parsing-api/llms.txt) · [OpenAPI document](https://skmtc.dev/contracko/apis/contracko-parsing-api/revisions/2f90b1d3cafd?raw)
