Deel subpackage_contracts API

The subpackage_contracts API from Deel — 10 operation(s) for subpackage_contracts.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/deel-subpackage-contracts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

deel-subpackage-contracts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Endpoints subpackage_contracts API
  version: 1.0.0
servers:
- url: https://api.letsdeel.com/rest/v2
- url: https://api-staging.letsdeel.com/rest/v2
tags:
- name: subpackage_contracts
paths:
  /contracts/{contract_id}:
    patch:
      operationId: update-ic-contract
      summary: Add external Id
      description: "Add an external Id to a Deel contract. You can use this to add a Deel contract's refernece Id in your platform. External Id can be passed as a query parameter in List contract endpoint to find this contract later.\n **Token scopes**: `contracts:write`"
      tags:
      - subpackage_contracts
      parameters:
      - name: contract_id
        in: path
        description: Deel contract id.
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contracts_updateICContract_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddExternalIdRequestNotFoundError'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
      requestBody:
        description: Contract object that needs to be created
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/ContractsContractIdPatchRequestBodyContentApplicationJsonSchemaData'
              required:
              - data
    get:
      operationId: get-contract
      summary: Retrieve a single contract
      description: "Retrieve a single contract.\n **Token scopes**: `contracts:read`"
      tags:
      - subpackage_contracts
      parameters:
      - name: contract_id
        in: path
        description: Unique identifier of the contract.
        required: true
        schema:
          type: string
      - name: expand
        in: query
        description: Include cost centers in the response.
        required: false
        schema:
          $ref: '#/components/schemas/ContractsContractIdGetParametersExpand'
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contracts_getContract_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveASingleContract-v2026-01-01RequestNotFoundError'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
  /contracts:
    post:
      operationId: create-ic-contract
      summary: Create a new contract
      description: "Create a new Deel contract.\n **Token scopes**: `contracts:write`"
      tags:
      - subpackage_contracts
      parameters:
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contracts_createICContract_Response_201'
        '400':
          description: Bad Request - Validation error or invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateANewContract-v2026-01-01RequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData'
              required:
              - data
    get:
      operationId: get-contracts
      summary: List of contracts
      description: "Retrieve a list of contracts.\n **Token scopes**: `contracts:read`"
      tags:
      - subpackage_contracts
      parameters:
      - name: after_cursor
        in: query
        description: Return next page of results after the given cursor.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: Return a page of results with the given number of records.
        required: false
        schema:
          type: string
      - name: order_direction
        in: query
        description: Order direction of results; ascending or descending.
        required: false
        schema:
          $ref: '#/components/schemas/ContractsGetParametersOrderDirection'
      - name: types
        in: query
        description: Filter contracts by type. A contract is included in the results if its type is in this list.
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ContractsGetParametersTypesSchemaItems'
      - name: statuses
        in: query
        description: Filter contracts by current status. A contract is included in the results if its status is in this list.
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ContractsGetParametersStatusesSchemaItems'
      - name: team_id
        in: query
        description: 'Filter contracts for the given team ID. NOTE: All query parameters are technically strings or arrays of strings.'
        required: false
        schema:
          type: string
      - name: external_id
        in: query
        description: Filter contracts for the given external ID.
        required: false
        schema:
          type: string
      - name: external_id_absent
        in: query
        description: Filter contracts by external ID presence. When true, returns contracts without an external ID. When false, returns contracts with an external ID. Cannot be used with external_id query param when set to true.
        required: false
        schema:
          type: string
      - name: countries
        in: query
        description: Filter contracts by country codes.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: currencies
        in: query
        description: Filter contracts by currency codes.
        required: false
        schema:
          $ref: '#/components/schemas/ContractsGetParametersCurrencies'
      - name: search
        in: query
        description: Include a contract if its name or the contractor's name contains the given search term.
        required: false
        schema:
          type: string
      - name: sort_by
        in: query
        description: Sort contracts by the given field name.
        required: false
        schema:
          $ref: '#/components/schemas/ContractsGetParametersSortBy'
      - name: expand
        in: query
        description: Include cost centers in the response.
        required: false
        schema:
          $ref: '#/components/schemas/ContractsGetParametersExpand'
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contracts_getContracts_Response_200'
        '400':
          description: Bad Request - Validation error or invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOfContractsRequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
  /equity/exercise/{public_id}:
    patch:
      operationId: approve-an-equity-exercise-v-2026-01-01
      summary: Approve an equity exercise
      description: "Approve an equity exercise.\n **Token scopes**: `contracts:write`"
      tags:
      - subpackage_contracts
      parameters:
      - name: public_id
        in: path
        description: Equity exercise public ID.
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contracts_approveAnEquityExercise-v2026-01-01_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Authentication failed. The access token is missing, expired, or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestUnauthorizedError'
        '403':
          description: Access denied. The authenticated user does not have the required contracts:write scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestForbiddenError'
        '404':
          description: Resource not found. The equity exercise request does not exist, is not in the required status (APPROVED_BY_EMPLOYEE), or its associated worker profile was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestNotFoundError'
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestTooManyRequestsError'
        '500':
          description: Internal server error. Occurs when an unexpected failure happens during approval processing (e.g., funding task creation failure). The exercise request status may be set to ERROR.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestInternalServerError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                employer_approval:
                  type: string
                  description: 'Approval decision by the employer for the equity exercise. Valid values: ''approved'', ''rejected''.'
              required:
              - employer_approval
  /equity/exercise:
    post:
      operationId: create-a-request-to-exercise-equity-v-2026-01-01
      summary: Create a request to exercise equity.
      description: "Create a request to exercise equity.\n **Token scopes**: `contracts:write`"
      tags:
      - subpackage_contracts
      parameters:
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Equity exercise request created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contracts_createARequestToExerciseEquity-v2026-01-01_Response_201'
        '400':
          description: Request validation failed. A required field is missing, has an invalid format, or the worker is not eligible for equity exercise.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestBadRequestError'
        '401':
          description: Authentication failed. The access token is missing, expired, or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestUnauthorizedError'
        '403':
          description: Access denied. The authenticated user does not have the required contracts:write scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestForbiddenError'
        '404':
          description: The worker profile associated with the given worker_id was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestNotFoundError'
        '422':
          description: A request with the same exercise_id already exists. Each exercise_id can only be used once.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestUnprocessableEntityError'
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestTooManyRequestsError'
        '500':
          description: Internal server error. Possible causes include missing EOR contract for the worker, FX rate service failure, or database errors.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestInternalServerError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                fmv:
                  type: string
                  description: The fair market value of the equity.
                quantity:
                  type: number
                  format: double
                  description: The quantity of equity to exercise. Must be a positive number.
                issuer_id:
                  type: string
                  description: The unique identifier of the issuer.
                worker_id:
                  type: string
                  description: The public UUID of the worker. Must correspond to an existing worker in the system.
                address_zip:
                  type: string
                  description: The zip code of the address.
                exercise_id:
                  type: string
                  format: uuid
                  description: The unique identifier of the exercise.
                address_city:
                  type: string
                  description: The city of the address.
                address_state:
                  type: string
                  description: The state of the address.
                address_street:
                  type: string
                  description: The street of the address.
                stakeholder_id:
                  type: string
                  description: The unique identifier of the stakeholder.
                address_country:
                  type: string
                  description: The country of the address.
                option_grant_id:
                  type: string
                  description: The numeric identifier of the option grant. Must contain only digits.
                fmv_currency_code:
                  type: string
                  description: The currency code of the fair market value (ISO 4217).
                stakeholder_email:
                  type: string
                  format: email
                  description: The email address of the stakeholder.
                option_grant_issue:
                  type: string
                  description: The issue of the option grant.
                option_grant_label:
                  type: string
                  description: The label of the option grant.
                option_grant_currency:
                  type: string
                  description: The currency of the option grant (ISO 4217).
                option_grant_issue_date:
                  type: string
                  format: date
                  description: The issue date of the option grant (ISO 8601 date).
                option_grant_expiry_date:
                  type: string
                  format: date
                  description: The expiry date of the option grant (ISO 8601 date).
                stakeholder_relationship:
                  type: string
                  description: The relationship of the stakeholder.
                option_grant_strike_price:
                  type: string
                  description: The strike price of the option grant.
              required:
              - fmv
              - quantity
              - issuer_id
              - worker_id
              - address_zip
              - exercise_id
              - address_city
              - address_state
              - address_street
              - stakeholder_id
              - address_country
              - option_grant_id
              - fmv_currency_code
              - stakeholder_email
              - option_grant_issue
              - option_grant_label
              - option_grant_currency
              - option_grant_issue_date
              - option_grant_expiry_date
              - stakeholder_relationship
              - option_grant_strike_price
  /contracts/{contract_id}/equity_withholding_estimate:
    get:
      operationId: get-contract-equity-withholding-amount
      summary: Get an estimate of withholding amount given an equity event.
      description: "Get an estimate of the withholding amount required as well as the assumptions behind the estimate, given a contract id, event amount and currency code.\n **Token scopes**: `contracts:read`, `global-payroll:read`"
      tags:
      - subpackage_contracts
      parameters:
      - name: contract_id
        in: path
        description: Deel contract id.
        required: true
        schema:
          type: string
      - name: event_value
        in: query
        description: The monetary value of the equity event.
        required: true
        schema:
          type: string
      - name: event_currency
        in: query
        description: Three-letter currency code for the payment, following ISO 4217.
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contracts_getContractEquityWithholdingAmount_Response_200'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetContractEquityWithholdingAmountRequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Unable to calculate due to missing information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetContractEquityWithholdingAmountRequestNotFoundError'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
  /workers/contracts/{contract_id}/reject:
    post:
      operationId: reject-contract
      summary: Reject contract
      description: "Rejects a contract that is in the pending (unsigned) state by specifying its public ID in the contract_id parameter. Use this endpoint when you do not wish to proceed with the agreement. Only contracts that have not yet been signed or previously rejected are eligible for this action\n **Token scopes**: `worker:write`"
      tags:
      - subpackage_contracts
      parameters:
      - name: contract_id
        in: path
        description: The unique public identifier of the contract to reject. This is the contract's public ID that can be used to identify the specific contract in the system.
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contracts_rejectContract_Response_204'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RejectContractRequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RejectContractRequestInternalServerError'
  /workers/contracts/{contract_id}/pdf:
    get:
      operationId: retrieve-contract-pdf-download-link
      summary: Retrieve contract PDF download link
      description: "Use this endpoint to retrieve a secure URL for downloading the PDF version of a specific contract. Provide the contract_id in the path to get the download link. This link can be used by the authenticated worker to access the contract document.\n **Token scopes**: `worker:read`"
      tags:
      - subpackage_contracts
      parameters:
      - name: contract_id
        in: path
        description: The unique public identifier of the contract.
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contracts_retrieveContractPdfDownloadLink_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveContractPdfDownloadLinkRequestBadRequestError'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveContractPdfDownloadLinkRequestInternalServerError'
  /contract-templates:
    get:
      operationId: get-contract-templates
      summary: Retrieve contract templates
      description: "Fetches a collection of contract templates available within your organization. Use this endpoint to retrieve metadata about the templates.\n **Token scopes**: `contracts:read`"
      tags:
      - subpackage_contracts
      parameters:
      - name: Authorization
        in: header
        description: "## Authentication\nThe Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A successful response containing contract templates.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contracts_getContractTemplates_Response_200'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
  /workers/amendments/{amendment_id}/sign:
    post:
      operationId: sign-amendment
      summary: Sign amendment
      description: "Sign amendment as worker\n **Token scopes**: `worker:read`, `worker:write`, `benefits:read`"
      tags:
      - subpackage_contracts
      parameters:
      - name: amendment_id
        in: path
        descriptio

# --- truncated at 32 KB (205 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/deel/refs/heads/main/openapi/deel-subpackage-contracts-api-openapi.yml