> ## Documentation Index
> Fetch the complete documentation index at: https://developers.projectcor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get contracts

> Retrieves a paginated list of contracts.



## OpenAPI

````yaml /api-reference/openapi.json get /contracts
openapi: 3.1.0
info:
  title: COR API
  description: >-
    The COR API lets you integrate with projectcor.com applications using simple
    HTTP methods, in either XML or JSON formats, making this an ideal API for
    developing integrations with other softwares, external clients or mobile
    applications
  version: 1.0.0
servers:
  - url: https://api.projectcor.com/v1
    description: Production server
security:
  - bearerAuth: []
paths:
  /contracts:
    get:
      tags:
        - Contracts
      summary: Get contracts
      description: Retrieves a paginated list of contracts.
      parameters:
        - name: page
          in: query
          schema:
            type:
              - integer
              - boolean
            default: 1
          description: 'Page number (default: 1). Set to `false` to disable pagination.'
        - name: perPage
          in: query
          schema:
            type: integer
            default: 20
          description: 'Number of items per page (default: 20).'
        - name: filters
          in: query
          schema:
            type: string
          description: URL-encoded JSON object with filter criteria.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractListBodyInput'
      responses:
        '200':
          description: Paginated list of contracts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContractsResponse'
components:
  schemas:
    ContractListBodyInput:
      type: object
      properties:
        with_milestones:
          type: boolean
          description: Include milestones in each contract response.
        with_ratecards:
          type: boolean
          description: Include ratecards in each contract response.
        with_positions:
          type: boolean
          description: Include contract positions in each contract response.
        status:
          type: string
          description: Filter contracts by status.
          example: expired
        type:
          type: string
          description: Filter contracts by type.
          example: time_and_materials
      example:
        with_milestones: true
        with_ratecards: true
        with_positions: true
        status: expired
        type: time_and_materials
    PaginatedContractsResponse:
      type: object
      description: Paginated response for contracts list
      properties:
        total:
          type:
            - string
            - integer
          description: Total number of contracts
        perPage:
          type:
            - string
            - integer
          description: Number of items per page
        page:
          type:
            - string
            - integer
          description: Current page number
        data:
          type: array
          description: Array of contracts for the current page
          items:
            $ref: '#/components/schemas/Contract'
    Contract:
      type: object
      description: Contract entity
      properties:
        id:
          type: integer
          description: Contract ID
        client_id:
          type: integer
          description: Client ID
        json_integrations:
          type:
            - object
            - array
            - string
            - number
            - boolean
            - 'null'
          description: Integration payload stored as JSON
        name:
          type: string
          description: Contract name
        type:
          type: string
          description: Contract type
        source:
          type: string
          description: Source of the contract
        status:
          type: string
          description: Contract status
        company_id:
          type: integer
          description: Company ID
        start:
          type: string
          format: date-time
          description: Contract start date-time
        end:
          type: string
          format: date-time
          description: Contract end date-time
        frequency:
          type: string
          description: Contract billing frequency
        currency_id:
          type: integer
          description: Currency ID
        currency:
          type: object
          properties:
            id:
              type: integer
              description: Currency ID
            name:
              type: string
              description: Currency name
        url:
          type: string
          description: External URL
        url_name:
          type: string
          description: External URL name
        user_positions_header_id:
          type: integer
          description: User positions header ID
        created_at:
          type: string
          format: date-time
          description: Creation timestamp
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp
        deleted_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Deletion timestamp (soft delete)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````