---
title: "Replace a Record"
method: PUT
path: "/records/{id}"
tags: ["Records"]
---

# Replace a Record

`PUT /records/{id}`

Update an existing record with a new set of metadata. 

**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, required — The type of record to be created. You can view available record types by retrieving records metadata.
  - `name` string, required — The name of the record.
  - `properties` object, required — Object containing key/value pairs of metadata attached to the record. The key you specify must have a value with a supported type as outlined in the Supported Property Types section.
    - `agreementDate` object — The date of the agreement.
      - `type` string
      - `value` string — UTC date (e.g. `2018-05-08T00:00:00-07:00`)
    - `counterpartyName` object — The name of the counterparty.
      - `type` string
      - `value` string — The name of the counterparty.
  - `parent` 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)
  - `propertiesToAmend` 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'.
  - `children` 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

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

---

[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)
