> ## 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 contract

> Retrieve information about a specific direct contract by passing its `id` as a path parameter.

<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/{id}
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/{id}:
    get:
      tags:
        - Contracts
      summary: Retrieve a contract
      description: >-
        Retrieve information about a specific direct contract by passing its
        `id` as a path parameter.
      operationId: sc-public-v2-scp-get-specific_contract
      parameters:
        - schema:
            type: integer
          in: path
          name: id
          description: The id of the contract you want to retrieve.
          required: true
        - 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.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contract'
              examples:
                RetrieveContract:
                  summary: Retrieve a contract
                  value:
                    id: 60
                    carrier:
                      code: lettresuivie
                      name: Lettre Suivie
                    client_id: sendcloud-1
                    is_active: true
                    is_default: true
        '404':
          description: Contract not found
      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.

````