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

# Retrieve a list of contracts

> Retrieves information about all of the available contracts you have in your Sendcloud
account. It will also return the `contract_id` of your contracts, which you can use to retrieve information
about a specific contract.

<Warning>
  **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).
</Warning>


## OpenAPI

````yaml /.openapi/v2/contracts/openapi.yaml get /contracts
openapi: 3.1.0
info:
  title: Contracts
  version: 2.0.0
  description: >
    The Contracts API allows you to manage and retrieve information about your
    direct shipping contracts

    connected to your Sendcloud account. With this API, you can list your
    contracts or fetch details about a specific

    contract.
  contact:
    name: Sendcloud API Support
    url: https://www.sendcloud.dev
    email: contact@sendcloud.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://panel.sendcloud.sc/api/v2
    description: Sendcloud Production
security: []
tags:
  - name: Contracts
paths:
  /contracts:
    get:
      tags:
        - Contracts
      summary: Retrieve a list of contracts
      description: >-
        Retrieves information about all of the available contracts you have in
        your Sendcloud

        account. It will also return the `contract_id` of your contracts, which
        you can use to retrieve information

        about a specific contract.
      operationId: sc-public-v2-scp-get-all_contracts
      parameters:
        - schema:
            type: string
          in: query
          name: carrier
          description: >-
            The carrier you want to filter for, for instance: postnl. You can
            find available carriers in your Sendcloud account settings.
          required: false
        - schema:
            type: boolean
          in: query
          name: is_active
          description: Filter contracts based on the status.
        - schema:
            type: string
          in: query
          name: client_id
          description: Filter direct contracts based on the client id.
        - schema:
            type: string
          in: query
          name: name
          description: Filter direct contracts based on the contract's name.
        - schema:
            type: string
          in: query
          name: country
          description: >-
            Filter contracts based on the country of the contract, it should be
            in the ISO 3166-1 alpha-2 format.
          example: NL
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  next:
                    type: string
                    nullable: true
                    description: Url to retrieve the next page of contracts.
                  previous:
                    type: string
                    nullable: true
                    description: Url to retrieve the previous page of contracts.
                  contracts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contract'
                required:
                  - contracts
              examples:
                RetrieveContracts:
                  summary: Retrieve a list of contracts
                  value:
                    next: null
                    previous: null
                    contracts:
                      - id: 60
                        carrier:
                          code: lettresuivie
                          name: Lettre Suivie
                        client_id: sendcloud-1
                        is_active: true
                        country: FR
                        is_default: true
                      - id: 61
                        carrier:
                          code: poste_italiane
                          name: Poste Italiane
                        client_id: sendcloud-1
                        is_active: true
                        country: IT
                        is_default: true
      security:
        - HTTPBasicAuth: []
        - OAuth2ClientCreds: []
components:
  schemas:
    Contract:
      title: Contract
      description: User contract
      type: object
      properties:
        id:
          type: integer
          format: int64
          minimum: 1
          description: Unique identifier of the contract.
        client_id:
          description: Client ID of a contract
          type: string
          nullable: true
        is_active:
          type: boolean
          description: Contract's status
        carrier:
          type: object
          properties:
            code:
              type: string
            name:
              type: string
              minLength: 1
              description: Carrier name.
        name:
          type: string
          description: >-
            A custom name set by the user used to identify this contract
            throughout the platform.
          maxLength: 50
        country:
          type: string
          description: The country of the contract, as an ISO 3166-1 alpha-2.
          example: NL
        is_default:
          type: boolean
          description: >-
            Indicates if the contract is marked as

            default. When you have multiple active direct contracts for the same
            carrier, default indicates that the contract will be prioritized
            over the other direct contracts for the same carrier, when no
            contract is explicitly
             mentioned while creating a parcel. You can have only one default direct contract per carrier and it will always be False for the broker and subbroker.
  securitySchemes:
    HTTPBasicAuth:
      type: http
      description: >-
        Basic Authentication using API key and secrets is currently the main
        authentication mechanism.
      scheme: basic
    OAuth2ClientCreds:
      type: oauth2
      description: >-
        OAuth2 is a standardized protocol for authorization that allows users to
        share their private resources stored on one site with another site
        without having to provide their credentials. OAuth2 Client Credentials
        Grant workflow. This workflow is typically used for server-to-server
        interactions that require authorization to access specific resources.
      flows:
        clientCredentials:
          tokenUrl: https://account.sendcloud.com/oauth2/token/
          scopes:
            api: Default OAuth scope required to access Sendcloud API.

````