---
title: "Update Record Metadata"
method: PATCH
path: "/records/{id}"
tags: ["Records"]
---

# Update Record Metadata

`PATCH /records/{id}`

Update specific fields on a record. 

**OAuth Scope required:** `public.records.updateRecords`

## Path parameters

- `id` string, required

## Query parameters

- `addressAsObject` boolean

## Headers

- `x-as-user-email` string
- `x-as-user-id` string

## Request body

- object
  - `type` string — The type of Record.
  - `name` string — The name of the Record.
  - `addProperties` object — A key:value map of properties to add. The two below are examples.
    - `counterpartyName` object
      - `type` string, required
      - `value` string, required
    - `agreementDate` object
      - `type` string, required
      - `value` string, required
  - `removeProperties` string[] — List of record property ids to be removed (e.g., ['counterpartyAddress', 'agreementExpirationDate'])
  - `addLinks` RecordPropertyLinkModel[] — List of objects containing the Record IDs or Ironclad IDs of the records to link. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api).
    - `recordId` string, required
  - `removeLinks` RecordPropertyLinkModel[] — List of objects containing the Record IDs or Ironclad IDs of the record links to remove. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api).
    - `recordId` string, required
  - `setParent` RecordParentModel — Object containing Record IDs or Ironclad IDs to be set as the parent of the current record.
    - `recordId` string, required — The ID or Ironclad ID (readable ID) of the record to set as parent
    - `parentLinkType` 'amendment' | 'obligation' — Identifies the type of relationship this child record has with its parent (e.g. amendment)
  - `addChildren` RecordPropertyLinkModel[] — List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record.
    - `recordId` string, required
  - `removeParent` boolean — Boolean flag to indicate if the parent id should be removed for the current record.
  - `removeChildren` RecordPropertyLinkModel[] — List of objects containing the Record IDs or Ironclad IDs of the child records to be removed from the current record.
    - `recordId` string, required
  - `addPropertiesToAmend` PropertiesToAmend — Configuration specifying which properties should be amended from this amendment record to its parent. Keys are property names, values define the amendment behavior. Only valid when parentLinkType is 'amendment'.
  - `removePropertiesToAmend` string[] — List of property IDs to stop deriving from this amendment record to the parent record. Removes existing derived property relationships, allowing the parent record to revert to its non-amended value for those fields.

## Response `200`

200

- RecordModel
  - `id` string, required — The unique identifier of the record
  - `ironcladId` string, required — The unique Ironclad identifier of the record
  - `type` string, required — The type of the record
  - `name` string, required — The name of the record
  - `lastUpdated` string, date-time, required — The date (ISO8601 format) the record was last updated
  - `properties` RecordProperties, required — The record properties associated with the record
  - `attachments` object, required — The attachments associated with the record keyed by the attachment key
  - `links` object[], required — The unique identifiers for the linked records
    - `recordId` string, required — The unique identifier of the linked record
  - `parentId` string — The unique identifier of the parent record
  - `parentLinkType` 'amendment' | 'obligation' — Identifies the type of relationship this child record has with its parent (e.g. amendment)
  - `childIds` string[] — The unique identifiers of the child records
  - `contractStatus` object — A record or contract status indicates whether a contract is active or inactive in addition to a sub-status calculated based on the contract's lifecycle data such as the effective date, expiration date, and auto-renewal type etc. For a detailed description of contract statuses reference this [article](https://support.ironcladapp.com/hc/en-us/articles/17438784927127-Contract-and-Record-Status-Overview).
    - `status` 'active' | 'inactive' | 'indeterminate', required — Base status of a contract.
    - `enhancedStatus` 'evergreen' | 'auto-renewing' | 'expiring' | 'terminating' | 'superseding' | 'extending' | 'active' | 'inactive' | 'unknown' | 'activating' | 'executed', required — A detailed sub-status of a contract calculated based on the lifecycle properties.
    - `remainingDuration` string — Duration remaining for the current status.
    - `eventDate` string — Date when the current contract status went into effect.
    - `message` string — Human readable message regarding the contract status.
  - `source` union — The origin of how the record was created
    - SourcedFromWorkflow — Record created from an Ironclad workflow
      - `type` 'workflow', required — The source type of the record
      - `workflowId` string, required — The unique identifier of the workflow that created the record
    - SourcedFromImportProject — Record created from an import project
      - `type` 'import_project', required — The source type of the record
      - `importId` string, required — The unique identifier of the import project that created the record
    - SourcedFromSingleImport — Record created from a single import
      - `type` 'single_import', required — The source type of the record
    - SourcedFromClickwrap — Record created from a clickwrap agreement
      - `type` 'clickwrap', required — The source type of the record
      - `clickwrapId` string, required — The unique identifier of the clickwrap agreement that created the record
    - SourcedFromConnector — Record created from a connector integration
      - `type` 'connector', required — The source type of the record
      - `connectorId` string, required — The unique identifier of the connector integration that created the record
    - SourcedFromIntegration — Record created from an integration
      - `type` 'integration', required — The source type of the record
      - `integrationName` string, required — The name of the integration that created the record
    - SourcedFromContract — Record created from a contract (typically an obligation)
      - `type` 'contract', required — The source type of the record
      - `contractId` string, required — The unique identifier of the contract that created the record
    - SourcedFromMetadataImport — Record created from a metadata import
      - `type` 'metadata_import', required — The source type of the record
      - `metadataImportId` string, required — The unique identifier of the metadata import that created the record
    - SourcedFromAiChat — Record created from an AI chat
      - `type` 'ai_chat', required — The source type of the record
      - `chatId` string, required — The unique identifier of the AI chat that created the record
  - `amendments` string[] — The unique identifiers of amendment records that amend this record

## Other responses

- `400` — 400
- `404` — 404

---

[API](https://skmtc.net/ironcladapp/apis/ironclad-public-api.md) · [All operations](https://skmtc.net/ironcladapp/apis/ironclad-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ironcladapp/ironclad-public-api/versions/9459b4cfc1e0/schema)
