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

# Contracts API

> Create and manage contract CRM records in HubSpot.

export const ScopesList = ({scopes = [], description = "This API requires one of the following scopes:"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

<Accordion title="Required Scopes" icon="key">
  <ScopesList
    scopes={[
  'crm.objects.contracts.read',
  'crm.objects.contracts.write'
]}
  />
</Accordion>

Contracts represent the committed revenue agreements between buyers and sellers, detailing products, billing, and payment terms. Use the contracts API to create, retrieve contract CRM records in HubSpot. For more information on using contracts in HubSpot, see [create and manage contracts](https://knowledge.hubspot.com/contracts/create-contracts).

<Tip>
  To manage contract terms, line items, billing, and mid-contract changes programmatically, use the [commerce contracts API](/docs/api-reference/2027-03-beta/revenue/contracts/guide).
</Tip>

## Retrieve contracts

You can retrieve all contracts or individual contracts by ID.

* To retrieve all contracts, make a `GET` request to `/crm/objects/2026-09/contracts`.
* To retrieve a specific contract, make a `GET` request to `/crm/objects/2026-09/contracts/{contractId}`.

The response includes a few default properties, including the create date and last modified date. To return additional properties, specify them by name using the `?properties=` query parameter.

For example, to retrieve contracts with their name and effective date:

```
GET /crm/objects/2026-09/contracts?properties=hs_name,hs_contract_effective_date
```

```json theme={null}
{
  "results": [
    {
      "id": "398334119041",
      "properties": {
        "hs_contract_effective_date": "2026-09-01",
        "hs_createdate": "2026-08-15T11:32:10.699Z",
        "hs_lastmodifieddate": "2026-08-15T11:32:12.651Z",
        "hs_name": "Enterprise Platform License 2026",
        "hs_object_id": "398334119041"
      },
      "createdAt": "2026-08-15T11:32:10.699Z",
      "updatedAt": "2026-08-15T11:32:12.651Z",
      "archived": false
    }
  ]
}
```

### Batch read

To retrieve multiple contracts in a single request, make a `POST` request to `/crm/objects/2026-09/contracts/batch/read`. Include an `inputs` array of record IDs and an optional `properties` array to specify which properties to return.

```json theme={null}
{
  "inputs": [
    { "id": "398334119041" },
    { "id": "399027563070" }
  ],
  "properties": ["hs_name", "hs_contract_effective_date"]
}
```
