openapi: 3.1.0 info: title: Ironclad OAuth 2.0 Authorization Records API description: Documentation for Ironclad's OAuth 2.0 Implementation. More details on the [OAuth 2.0 specification](https://datatracker.ietf.org/doc/html/rfc6749). version: '1' contact: name: Ironclad Support email: support@ironcladapp.com servers: - url: https://na1.ironcladapp.com/oauth description: Production server - url: https://eu1.ironcladapp.com/oauth description: EU Production server - url: https://demo.ironcladapp.com/oauth description: Demo server tags: - name: Records description: Documentation on Ironclad Records. paths: /records: get: summary: List All Records description: "View all records in the company, with filtering available via query parameters. \n\n**OAuth Scope required:** `public.records.readRecords`" operationId: list-all-records parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' - $ref: '#/components/parameters/HydrateEntitiesFlag' - $ref: '#/components/parameters/RecordType' - $ref: '#/components/parameters/RecordLastUpdated' - $ref: '#/components/parameters/RecordFilter' - name: sortField in: query description: The field to sort Records. Only one field is supported in the sort operation. schema: type: string enum: - agreementDate - name - lastUpdated default: agreementDate - name: sortDirection in: query description: The direction the records are sorted by in correlation with the `sortField`. schema: type: string enum: - ASC - DESC default: DESC - $ref: '#/components/parameters/addressAsObject' security: - sec0: [] OAuth2: - public.records.readRecords responses: '200': description: '200' content: application/json: schema: type: object properties: page: type: integer example: 0 default: 0 pageSize: type: integer example: 20 default: 0 count: type: integer example: 1234 default: 0 list: type: array items: $ref: '#/components/schemas/RecordModel' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Records post: summary: Create a Record description: "Create a contract record by specifying its intended metadata properties. See [more documentation](https://developer.ironcladapp.com/docs/create-a-record-1) on creating a record. \n\n**OAuth Scope required:** `public.records.createRecords`" operationId: create-a-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/addressAsObject' requestBody: content: application/json: schema: type: object required: - type - name - properties properties: type: type: string description: The type of record to be created. You can view available record types by retrieving records metadata. name: type: string description: The name of the record. properties: type: object description: 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. properties: agreementDate: type: object description: The date of the agreement. properties: type: type: string default: date value: type: string description: UTC date (e.g. `2018-05-08T00:00:00-07:00`) counterpartyName: type: object description: The name of the counterparty. properties: type: type: string default: string value: type: string description: The name of the counterparty. contractValue: type: object description: The monetary value of the contract. properties: type: type: string default: monetary_amount value: type: object description: The monetary amount value required: - amount - currency properties: currency: type: string description: The currency in ISO 4217 format example: USD amount: type: number description: The monetary amount example: 100000 links: type: array items: $ref: '#/components/schemas/RecordPropertyLinkModel' parent: $ref: '#/components/schemas/RecordParentModel' propertiesToAmend: $ref: '#/components/schemas/PropertiesToAmend' children: type: array description: List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record. items: $ref: '#/components/schemas/RecordPropertyLinkModel' security: - sec0: [] OAuth2: - public.records.createRecords responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/RecordModel' '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string param: type: string examples: invalidRecordType: summary: Unknown record type. value: code: INVALID_PARAM message: unknown record type my_nonexistent_record_type param: type invalidRecordProperty: summary: Unknown record property. value: code: INVALID_PARAM message: unknown property my_nonexistent_record_property param: properties.my_non_existent_record_property '403': description: '403' content: application/json: schema: type: object properties: code: type: string message: type: string tags: - Records /records/attachments/download-urls: post: summary: Create Attachment Download URLs description: 'Request signed download URLs for record attachments in bulk (currently only latest signed copy is supported). Returns a job ID that can be polled for results. **OAuth Scope required:** `public.records.readAttachments`' operationId: create-attachment-download-urls parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' requestBody: required: true content: application/json: schema: type: object required: - identifiers - type properties: identifiers: type: array items: type: string maxItems: 100 description: An array of record IDs or Ironclad IDs to generate download URLs for. type: type: string enum: - latestSignedCopy description: The type of attachment to generate download URLs for. security: - sec0: [] OAuth2: - public.records.readAttachments responses: '202': description: Job accepted for processing. content: application/json: schema: type: object required: - jobId - status properties: jobId: type: string description: An opaque job identifier to poll for results. status: type: string enum: - processing description: The current status of the job. '400': $ref: '#/components/responses/BadRequestError400' '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' tags: - Records /records/attachments/download-urls/{jobId}: get: summary: Get Attachment Download URLs Status description: 'Poll the status of a previously submitted attachment download URLs job. **OAuth Scope required:** `public.records.readAttachments`' operationId: get-attachment-download-urls-status parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: jobId in: path required: true schema: type: string description: The job ID returned from the create attachment download URLs endpoint. security: - sec0: [] OAuth2: - public.records.readAttachments responses: '200': description: The current status of the job. content: application/json: schema: type: object required: - jobId - status properties: jobId: type: string description: The opaque job identifier. status: type: string enum: - processing - complete - failed description: The current status of the job. succeeded: type: array description: Array of objects with successfully generated download URLs. Present when status is complete. items: type: object required: - identifier - ironcladId - recordId - downloadUrl - filename - fileKey - fileHash - expiration properties: identifier: type: string description: The identifier of the record that was passed in the request (record ID or Ironclad ID). example: 17fe582d-e1e0-4000-bf65-3d2ec2c500a4 ironcladId: type: string description: The Ironclad ID of the record. example: IC-123 recordId: type: string description: The globally unique UUID-based record ID of the record. example: 17fe582d-e1e0-4000-bf65-3d2ec2c500a4 downloadUrl: type: string description: The signed download URL for the attachment. example: https://storage.googleapis.com/ic_record_attachments/645aae3352150fe4e59ef90/6f5c8167-81a6-459c-a53c-eec9fa7e91c9/8674ec0992b199f7902d2459fc0f60b34616db93d28568f7003f6f1d1?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=sa-ic-dev%40na1-flex-c34f.iam.gserviceaccount.com%2F20260306%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20260306T230715Z&X-Goog-Expires=1200&X-Goog-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%22nda-with-table.pdf%22&X-Goog-Signature=40c961dd454de9bb1e80e4994643eee746ed0eb23da3482bd54d6570a267203063ed7e9a8c6e3797386144ce76c9d3272d37040e69940a3877afb4f082e179335a6d4995a4afb70aa20c1ec65af9e27b819e16d34e2f6d9b8e7233c9eb8ef7736c5d4e9507ea58ec48407ad7f2e0c46bb8053b989af67c187cea7258f48e26757b11045891ad7a5f114a65f7dec85405f981101ed77a4a3356e92edd113db391b6bc111357f02e5d05e39437b0d3b057cf9666f8318b04bcc31d30706ab7117f282eb64ab27669b522052d3ac24ede1cca1a1ad5e7c604e38f74eb20b3022007fa9186ed1b773177c88ccb54524addeb08a7624db2720041082997 filename: type: string description: The filename of the attachment. example: contract.pdf fileKey: type: string description: The key of the attachment. example: signedCopy[1] fileId: type: string description: The ID of the attachment. example: d2079940-3049-4883-8931-2210a3864504 fileHash: type: string description: The hash of the attachment. example: 8674ec0992b199f79c5802d2459fc0f60b3461601fcdb93d28568f7003f6f1d1 expiration: type: string format: date-time description: The expiration date of the signed download URL in ISO 8601 format. example: '2026-03-07T00:00:00.000Z' failed: type: array description: Array of identifiers that failed to generate a signed download URL. Present when status is complete. items: type: object required: - identifier - errorCode - errorMessage properties: identifier: type: string description: The identifier of the record that was passed in the request (record ID or Ironclad ID). example: 17fe582d-e1e0-4000-bf65-3d2ec2c500a4 ironcladId: type: string description: The Ironclad ID of the record, if resolved. example: IC-123 recordId: type: string description: The globally unique UUID-based record ID of the record, if resolved. example: 17fe582d-e1e0-4000-bf65-3d2ec2c500a4 errorCode: type: string enum: - RECORD_NOT_FOUND - ACCESS_DENIED - NO_ATTACHMENT_FOUND - INTERNAL_ERROR description: The error code that occurred when generating the signed download URL. errorMessage: type: string description: The error message that occurred when generating the signed download URL. example: Access denied '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Records /records/smart-import: get: summary: Retrieve Predictions description: "Retrieve status of predictions of specific smart import record or all records in an import, one of Record Id or Import Id is required. \n\n**OAuth Scope required:** `public.records.readSmartImportRecords`" operationId: retrieve-import-predictions parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: recordId in: query description: The ID of the Record for prediction status. schema: type: string required: false - name: importId in: query description: The ID of the Import for prediction statuses. schema: type: string required: false security: - sec0: [] OAuth2: - public.records.readSmartImportRecords responses: '200': description: '200' content: application/json: schema: oneOf: - $ref: '#/components/schemas/SmartImportRetrievePredictionsResponseElement' description: If `importId` was not provided, the response will be a single object. - title: Array of Prediction Statuses description: If `importId` was provided, the response will be an array of objects. type: array items: $ref: '#/components/schemas/SmartImportRetrievePredictionsResponseElement' examples: Single Result: value: recordId: df1c2805-f5a3-4a14-9386-c28d950dff49 status: ready Array Result: value: - recordId: df1c2805-f5a3-4a14-9386-c28d950dff49 status: ready - recordId: 9b760581-df10-447a-8782-55b4bd7f2404 status: ready '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string examples: invalidRecordType: summary: Missing Record Id or Import Id from query. value: code: INVALID_PARAM message: missing required form-data part 'recordId' or 'importId '403': description: '403' content: application/json: schema: type: object properties: code: type: string message: type: string examples: outOfSmartImportCredits: summary: Smart Imports not enabled for company. value: code: FORBIDDEN message: 'Reading smart import records not allowed for company with id invalid-company-id ' '404': description: '404' content: application/json: schema: type: object properties: code: type: string message: type: string examples: invalidImportId: summary: Record Id is invalid or does not exist value: code: NOT_FOUND message: 'couldn''t find predictions for the record: invalid-record-id' tags: - Records post: summary: Create a Smart Import Record description: "Upload a file to create a record with smart import and predictions. Provide none of recordType, newRecordTypeId, or newRecordTypeDisplayName to default to Imported type. \n\n**OAuth Scope required:** `public.records.createSmartImportRecords`" operationId: create-a-smart-import-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' requestBody: content: multipart/form-data: schema: type: object required: - attachment properties: attachment: type: string format: binary description: Must be a binary. Base64 is not accepted at this time. recordType: type: string default: imported description: Upload a smart import record as an existing record type. Cannot provide alongside newRecordTypeId and newRecordTypeDisplayName. Defaults to Imported. newRecordTypeId: type: string description: The record type ID for a not-yet-existing record type. Must be provided along with a newRecordTypeDisplayName newRecordTypeDisplayName: type: string description: The display name of the new record type to create. security: - sec0: [] OAuth2: - public.records.createSmartImportRecords responses: '200': description: '200' content: application/json: schema: type: object properties: recordId: type: string description: Record ID of the new created record example: 17fe582d-e1e0-4000-bf65-3d2ec2c500a4 importId: type: string example: 55ez635d-f2g9-5419-gs34-8h1jx4s733q9 remainingCredits: type: number example: 50 '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string param: type: string examples: invalidRecordType: summary: Invalid record type. value: code: INVALID_PARAM message: unknown record type invalid_record_type param: type invalidAttachment: summary: Document size is too large. value: code: INVALID_PARAM message: parameter 'attachment' too large, please limit upload files less than 100MB param: attachment invalidFileType: summary: Document size is too large. value: code: INVALID_PARAM message: 'filename invalidFile.xyz does not have an accepted extension. Only the following extensions are allowed: .pdf, .docx, .doc, .xls, .xlsx, .eml, .tif, .jpg, .png, .jpeg, .txt, .ppt, .pptx.' param: metadata.filename '403': description: '403' content: application/json: schema: type: object properties: code: type: string message: type: string examples: outOfSmartImportCredits: summary: No more AI Contract Credits are available value: code: FORBIDDEN message: No more AI Contract Credits available '404': description: '404' content: application/json: schema: type: object properties: code: type: string message: type: string examples: invalidImportId: summary: Import Id is invalid or does not exist value: code: NOT_FOUND message: couldn't find a record matching the id invalid-import-id tags: - Records /records/smart-import/{importId}: post: summary: Upload a Smart Import Record to an existing Import description: "Upload a file to an existing import and create a record with smart import and predictions. Provide none of recordType, newRecordTypeId, or newRecordTypeDisplayName to default to Imported type. \n\n**OAuth Scope required:** `public.records.createSmartImportRecords`" operationId: create-a-smart-import-record-to-import parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: importId in: path description: 'The Import Id. You can upload a record to an existing import in the repository. ' schema: type: string required: true requestBody: content: multipart/form-data: schema: required: - attachment - recordType type: object properties: attachment: type: string format: binary description: Must be a binary. Base64 is not accepted at this time. recordType: type: string default: imported description: Upload a smart import record as an existing record type. Cannot provide alongside newRecordTypeId and newRecordTypeDisplayName. Defaults to Imported. newRecordTypeId: type: string description: The record type ID for a not-yet-existing record type. Must be provided along with a newRecordTypeDisplayName newRecordTypeDisplayName: type: string description: The display name of the new record type to create. security: - sec0: [] OAuth2: - public.records.createSmartImportRecords responses: '200': description: '200' content: application/json: schema: type: object properties: recordId: type: string description: Record ID of the new created record example: 17fe582d-e1e0-4000-bf65-3d2ec2c500a4 importId: type: string example: 55ez635d-f2g9-5419-gs34-8h1jx4s733q9 remainingCredits: type: number example: 50 '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string param: type: string examples: invalidRecordType: summary: Invalid record type. value: code: INVALID_PARAM message: unknown record type invalid_record_type param: recordType invalidAttachment: summary: Document size is too large. value: code: INVALID_PARAM message: parameter 'attachment' too large, please limit upload files less than 100MB param: attachment invalidFileType: summary: Document size is too large. value: code: INVALID_PARAM message: 'filename invalidFile.xyz does not have an accepted extension. Only the following extensions are allowed: .pdf, .docx, .doc, .xls, .xlsx, .eml, .tif, .jpg, .png, .jpeg, .txt, .ppt, .pptx.' param: metadata.filename '403': description: '403' content: application/json: schema: type: object properties: code: type: string message: type: string examples: outOfSmartImportCredits: summary: No more AI Contract Credits are available value: code: FORBIDDEN message: No more AI Contract Credits available '404': description: '404' content: application/json: schema: type: object properties: code: type: string message: type: string examples: invalidImportId: summary: Import Id is invalid or does not exist value: code: NOT_FOUND message: couldn't find a record matching the id invalid-import-id tags: - Records /records/{id}: get: summary: Retrieve a Record description: "View a specific record and its associated data. \n\n**OAuth Scope required:** `public.records.readRecords`" operationId: retrieve-a-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/HydrateEntitiesFlag' - $ref: '#/components/parameters/addressAsObject' - name: id in: path description: The ID or Ironclad ID of the Record. schema: type: string required: true security: - sec0: [] OAuth2: - public.records.readRecords responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/RecordModel' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Records put: summary: Replace a Record description: "Update an existing record with a new set of metadata. \n\n**OAuth Scope required:** `public.records.updateRecords`" operationId: replace-a-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/addressAsObject' - name: id in: path description: The ID or Ironclad ID of the Record. schema: type: string required: true requestBody: content: application/json: schema: type: object required: - type - name - properties properties: type: type: string description: The type of record to be created. You can view available record types by retrieving records metadata. name: type: string description: The name of the record. properties: type: object description: 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. properties: agreementDate: type: object description: The date of the agreement. properties: type: type: string default: date value: type: string description: UTC date (e.g. `2018-05-08T00:00:00-07:00`) counterpartyName: type: object description: The name of the counterparty. properties: type: type: string default: string value: type: string description: The name of the counterparty. parent: $ref: '#/components/schemas/RecordParentModel' propertiesToAmend: $ref: '#/components/schemas/PropertiesToAmend' children: type: array description: List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record. items: $ref: '#/components/schemas/RecordPropertyLinkModel' security: - sec0: [] OAuth2: - public.records.updateRecords responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/RecordModel' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Records delete: summary: Delete a Record description: "Delete an existing record. \n\n**OAuth Scope required:** `public.records.deleteRecords`" operationId: delete-a-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Record. schema: type: string required: true security: - sec0: [] OAuth2: - public.records.deleteRecords responses: '204': description: '204' content: application/json: schema: type: object properties: {} '400': description: '404' content: application/json: schema: type: object properties: {} tags: - Records patch: summary: Update Record Metadata description: "Update specific fields on a record. \n\n**OAuth Scope required:** `public.records.updateRecords`" operationId: update-record-metadata parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/addressAsObject' - name: id in: path description: The ID or Ironclad ID of the Record. schema: type: string required: true requestBody: content: application/json: schema: type: object additionalProperties: false properties: type: type: string description: The type of Record. name: type: string description: The name of the Record. addProperties: type: object description: A key:value map of properties to add. The two below are examples. additionalProperties: true properties: counterpartyName: type: object required: - type - value properties: type: type: string default: string value: type: string example: Jane Doe agreementDate: type: object required: - type - value properties: type: type: string default: date example: date value: type: string example: '2018-05-08T00:00:00-07:00' removeProperties: type: array description: List of record property ids to be removed (e.g., ['counterpartyAddress', 'agreementExpirationDate']) items: type: string addLinks: type: array description: 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). items: $ref: '#/components/schemas/RecordPropertyLinkModel' removeLinks: type: array description: 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). items: $ref: '#/components/schemas/RecordPropertyLinkModel' setParent: $ref: '#/components/schemas/RecordParentModel' addChildren: type: array description: List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record. items: $ref: '#/components/schemas/RecordPropertyLinkModel' removeParent: type: boolean description: Boolean flag to indicate if the parent id should be removed for the current record. example: false removeChildren: type: array description: List of objects containing the Record IDs or Ironclad IDs of the child records to be removed from the current record. items: $ref: '#/components/schemas/RecordPropertyLinkModel' addPropertiesToAmend: $ref: '#/components/schemas/PropertiesToAmend' removePropertiesToAmend: type: array description: 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. items: type: string examples: Request Example: value: type: consultingAgreement name: Consulting Agreement with Jane Doe addProperties: agreementDate: type: date value: '2018-05-08T00:00:00-07:00' counterpartyName: type: string value: Jane Doe removeProperties: - counterpartySigner setParent: recordId: 17009e0d-z2e9-425d-a85b-1cf152773efg addLinks: - recordId: df1c2805-f5a3-4a14-9386-c28d950dff49 removeLinks: - recordId: df1c2805-f5a3-4a14-9386-c28d950dff49 Set as amendment example: value: setParent: parentLinkType: amendment recordId: 17009e0d-z2e9-425d-a85b-1cf152773efg Amendment with roll-up example: value: setParent: parentLinkType: amendment recordId: 17009e0d-z2e9-425d-a85b-1cf152773efg addPropertiesToAmend: counterpartyName: amendmentType: replace agreementValue: amendmentType: replace Amendment with readableId example: value: setParent: parentLinkType: amendment recordId: IC-12345 addPropertiesToAmend: counterpartyName: amendmentType: replace Remove derived properties example: value: removePropertiesToAmend: - counterpartyName - agreementValue security: - sec0: [] OAuth2: - public.records.updateRecords responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/RecordModel' examples: Get Amendment Record: value: id: IC-124 ironcladId: IC-124 name: 'Amendment #1 - Updated Terms' lastUpdated: '2024-01-01T00:00:00Z' type: nda attachments: {} links: [] parentId: IC-123 parentLinkType: amendment properties: counterpartyName: type: string value: Acme Corporation Ltd contractValue: type: monetary_amount value: amount: 150000 currency: USD Get Parent Record with Amended Properties: value: id: IC-123 ironcladId: IC-123 name: Master NDA with Acme Corp lastUpdated: '2024-01-01T00:00:00Z' type: nda attachments: {} links: [] properties: counterpartyName: type: string originalValue: Acme Corporation value: Acme Corporation Ltd contractValue: type: monetary_amount originalValue: amount: 100000 currency: USD value: amount: 150000 currency: USD expirationDate: type: date value: '2024-12-31T00:00:00Z' amendments: - IC-124 '400': description: '400' content: application/json: schema: type: object properties: code: type: string example: MISSING_PARAM message: type: string example: reason why something has gone wrong param: type: string example: parameter identifier '404': description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: not found param: type: string example: parameter identifier tags: - Records /records/metadata: get: summary: Retrieve Records Schema description: "View the schema associated with contract records, including available record types and metadata properties. \n\n**OAuth Scope required:** `public.records.readSchemas`" operationId: list-all-records-metadata parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' security: - sec0: [] OAuth2: - public.records.readSchemas responses: '200': description: '200' content: application/json: schema: type: object properties: recordTypes: type: object properties: contract: type: object properties: displayName: type: string example: Contract properties: type: object properties: additionalNotes: type: object properties: displayName: type: string example: Additional Notes type: type: string example: string visible: type: boolean example: true default: true agreementDate: type: object properties: displayName: type: string example: Agreement Date type: type: string example: date visible: type: boolean example: true default: true workflowId: type: object properties: displayName: type: string example: Workflow ID type: type: string example: string visible: type: boolean example: true default: true attachments: type: object properties: signedCopy: type: object properties: displayName: type: string example: Signed PDF links: type: object properties: {} '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Records /records/{id}/attachments/{key}: post: summary: Create an Attachment on a Record description: "Create an attachment on a specified record at the specified attachment key. \n\n**OAuth Scope required:** `public.records.createAttachments`" operationId: create-an-attachment-on-a-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Record. 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). schema: type: string required: true - name: key in: path description: The attachment key at which to store the attachment. This can be any arbitrary string. schema: type: string default: signedCopy required: true - $ref: '#/components/parameters/addressAsObject' security: - sec0: [] OAuth2: - public.records.createAttachments requestBody: content: multipart/form-data: schema: type: object properties: attachment: type: string format: binary description: Must be a binary. Base64 is not accepted at this time. metadata: type: object description: 'The `metadata` property''s value must be `{"filename": "[YOUR_FILE_NAME]"}`' properties: filename: type: string description: The name of the file. Must have a supported file extension (doc, docx, pdf). example: NDA - Acme LLC.pdf responses: '200': description: '200' content: application/json: schema: type: object properties: {} '400': $ref: '#/components/responses/RecordAttachmentResponse400' tags: - Records get: summary: Retrieve an Attachment on a Record description: "View an attachment associated with a specific record. \n\n**OAuth Scope required:** `public.records.readAttachments`" operationId: retrieve-an-attachment-on-a-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID of the Record. schema: type: string required: true - name: key in: path description: The attachment key. schema: type: string default: signedCopy required: true security: - sec0: [] OAuth2: - public.records.readAttachments responses: '200': description: '200' content: application/json: schema: type: object properties: {} '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Records delete: summary: Delete an Attachment on a Record description: "Remove an attachment associated with a specific record. \n\n**OAuth Scope required:** `public.records.deleteAttachments`" operationId: delete-an-attachment-on-a-record parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Record. schema: type: string required: true - name: key in: path description: The attachment key. schema: type: string default: signedCopy required: true security: - sec0: [] OAuth2: - public.records.deleteAttachments responses: '204': description: '204' '404': $ref: '#/components/responses/AttachmentDeleteResponse404' tags: - Records /records/{id}/actions: post: summary: Run an Action on a Record description: "Runs an action on the contract. It supports lifecycle actions such as activating a contract. \n\n**OAuth Scope required:** `public.records.applyContractAction`" operationId: run-an-action-on-a-record parameters: - name: id in: path description: The ID or Ironclad ID of the Record. 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). schema: type: string required: true security: - sec0: [] OAuth2: - public.records.applyContractAction requestBody: content: application/json: schema: $ref: '#/components/schemas/ContractAction' responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/ContractAction' '400': $ref: '#/components/responses/ContractActionResponse400' '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '404': description: 404 not found content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: no obligations found tags: - Records /records/export: get: summary: Retrieve XLSX Export File of Records description: "Export a records report with filtering available via query parameters. \n\n**OAuth Scope required:** `public.records.readRecords`" operationId: retrieve-xlsx-export-file-of-all-records parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: types in: query description: 'Comma separated list of record types to export. Example: `mutualNDA,NDA`' schema: type: string - name: properties in: query description: 'IDs of properties to export, comma separated. Example: `counterpartyName,agreementDate`' schema: type: string security: - sec0: [] OAuth2: - public.records.readRecords responses: '200': description: '200' content: application/json: schema: type: object properties: {} '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Records components: schemas: ClauseLanguagePositionPlaybook: title: Clause Language Position Playbook type: object description: A playbook clause language position required: - type - name - preferred properties: type: type: string description: The source type of the playbook clause enum: - playbook example: playbook name: type: string description: The name of the playbook clause example: Standard preferred: type: boolean description: Whether the playbook clause is the preferred language example: true BadRequestErrorRecordNotFound: type: object description: Bad request error. The specified record does not exist. title: Bad Request Error - Record Does not Exist properties: code: type: string example: NOT_FOUND message: type: string example: couldn't find a record matching the id workflow:6346f76fb8fc01d2b43e7c15a RecordPropertyArray: title: Record Property Array type: object description: An array-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - array example: array value: type: array items: type: string minItems: 1 example: - red - blue SourcedFromIntegration: title: Sourced From Integration type: object description: Record created from an integration required: - type - integrationName properties: type: type: string description: The source type of the record enum: - integration example: integration integrationName: type: string description: The name of the integration that created the record example: s4hana RecordPropertyPlaybookClause: type: object description: A playbook-based clause-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - playbookClause example: playbookClause value: type: string description: The playbook clause name example: Standard EffectiveContractActionProperties: type: object properties: standard_initialTermLength: type: object description: The initial term is the time from the effective date that the agreement will be effective for. If not defined, then the agreement will be active until the expiration date. If an expiration date is also not defined then the agreement will be active indefinitely, until the status of the agreement is manually changed. required: - type - value properties: type: type: string enum: - duration value: type: string example: P1Y expirationDate: type: object description: Expiration date is when this agreement will end or become inactive. If an expiration date isn't present then the effective date plus the initial term length are used to expire the contract. required: - type - value properties: type: type: string enum: - date value: type: string example: '2018-05-08T00:00:00-07:00' BadRequestErrorRecordAttachmentExtension: type: object description: Bad request error. The specified filename does not include a supported extension. title: Bad Request Error - Record Attachment Extension Not Supported properties: code: type: string example: INVALID_PARAM message: type: string example: 'filename "NDA - Acme LLC" does not have an accepted extension. Only the following extensions are allowed: .adoc, .asice, .bdoc, .csv, .ddoc, .doc, .docx, .edoc, .eml, .gif, .htm, .jpeg, .jpg, .msg, .pdf, .png, .ppt, .pptx, .rtf, .tif, .tif, .txt, .xls, .xlsx, .xml' param: type: string example: metadata.filename BadRequestErrorContractAction: type: object additionalProperties: false properties: code: type: string enum: - MISSING_PARAM - INVALID_PARAM - INVALID_STATE example: MISSING_PARAM readOnly: true description: A unique code to identify why the contract action cannot be run title: '' message: type: string example: missing required attribute readOnly: true description: A message indicating why the contract action cannot be run title: '' param: type: string example: counterpartySignerTitle readOnly: true description: The required or expected parameter(s) that may be missing in order to run the contract action title: '' required: - code - message - param readOnly: true description: '' title: Bad Request Error - Contract Action EntityProperties: type: object description: The entity properties associated with the entity additionalProperties: $ref: '#/components/schemas/EntityPropertyType' UndoContractAction: type: object required: - type - properties properties: type: type: string description: The action type to run on the contract. enum: - undo properties: type: object required: - standard_undoObligationAction properties: standard_undoObligationAction: type: object description: The action type that is being undone by an undo action. required: - type - value properties: type: type: string enum: - string value: type: string enum: - activate - terminate - supersede - extend - cancelAutoRenewal - editRenewal - undo additionalProperties: false additionalProperties: false RecordPropertyBoolean: title: Record Property Boolean type: object description: A true/false boolean-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - boolean example: boolean value: type: boolean description: The boolean value of the property example: true originalValue: type: boolean description: The original value of the property before amendment (only present when property is amended) example: false SourcedFromWorkflow: title: Sourced From Workflow type: object description: Record created from an Ironclad workflow required: - type - workflowId properties: type: type: string description: The source type of the record enum: - workflow example: workflow workflowId: type: string description: The unique identifier of the workflow that created the record example: workflow:4a785686-d3d5-47bc-960e-3df0df871ea9 SourcedFromContract: title: Sourced From Contract type: object description: Record created from a contract (typically an obligation) required: - type - contractId properties: type: type: string description: The source type of the record enum: - contract example: contract contractId: type: string description: The unique identifier of the contract that created the record example: 4a785686-d3d5-47bc-960e-3df0df871ea9 BadRequestErrorRecordAttachmentAlreadyExists: type: object description: Bad request error. The specified attachment key has an existing file. title: Bad Request Error - Record Attachment Already Exists. properties: code: type: string example: INVALID_PARAM message: type: string example: record attachment key 'signedCopy' already exists for record param: type: string example: attachmentKey RecordPropertyLinkModel: type: object required: - recordId properties: recordId: type: string example: 17009e0d-z2e9-425d-a85b-1cf152773e49 BadRequestErrorRecordAttachmentIDNotFound: type: object description: Record Attachment ID Not Found Request Error title: Bad Request Error - Record Attachment ID Not Found properties: code: type: string example: NOT_FOUND message: type: string example: couldn't find an attachment matching the key [SOME_NONEXISTENT_ATTACHMENT_KEY] for record with id [RECORD_ID] SourcedFromImportProject: title: Sourced From Import Project type: object description: Record created from an import project required: - type - importId properties: type: type: string description: The source type of the record enum: - import_project example: import_project importId: type: string description: The unique identifier of the import project that created the record example: 4a785686-d3d5-47bc-960e-3df0df871ea9 RecordModel: type: object required: - id - ironcladId - type - name - lastUpdated - properties - attachments - links properties: id: type: string description: The unique identifier of the record example: 22e2ff72-56a1-4711-a4ca-41328d311e9f ironcladId: type: string description: The unique Ironclad identifier of the record example: IC-1 type: type: string description: The type of the record example: consultingAgreement name: type: string description: The name of the record example: Consulting Agreement with Jane Doe lastUpdated: type: string description: The date (ISO8601 format) the record was last updated format: date-time example: '2018-05-08T17:28:10Z' properties: $ref: '#/components/schemas/RecordProperties' attachments: type: object description: The attachments associated with the record keyed by the attachment key additionalProperties: type: object required: - filename - href properties: filename: type: string description: The name of the attachment example: 2018-05-08 - Doe, Jane - Consulting Agreement.pdf contentType: type: string description: The content type of the attachment example: application/json href: type: string description: The URL to download the attachment via the public API example: https://na1.ironcladapp.com/public/api/v1/records/22e2ff72-56a1-4711-a4ca-41328d311e9f/attachments/signedCopy links: type: array description: The unique identifiers for the linked records items: type: object required: - recordId properties: recordId: type: string description: The unique identifier of the linked record example: df1c2805-f5a3-4a14-9386-c28d950dff49 parentId: type: string description: The unique identifier of the parent record example: d10b8c01-5c54-4a59-82cb-51e3825182e9 parentLinkType: $ref: '#/components/schemas/LinkType' childIds: type: array description: The unique identifiers of the child records items: type: string example: 4a785686-d3d5-47bc-960e-3df0df871ea9 contractStatus: type: object description: 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). required: - status - enhancedStatus properties: status: type: string description: Base status of a contract. example: active enum: - active - inactive - indeterminate enhancedStatus: type: string description: A detailed sub-status of a contract calculated based on the lifecycle properties. example: auto-renewing enum: - evergreen - auto-renewing - expiring - terminating - superseding - extending - active - inactive - unknown - activating - executed remainingDuration: type: string description: Duration remaining for the current status. example: P26D eventDate: type: string description: Date when the current contract status went into effect. example: '2024-07-02T00:00:00.000Z' message: type: string description: Human readable message regarding the contract status. example: Auto-renewing on Jul 2, 2024 source: description: The origin of how the record was created oneOf: - $ref: '#/components/schemas/SourcedFromWorkflow' - $ref: '#/components/schemas/SourcedFromImportProject' - $ref: '#/components/schemas/SourcedFromSingleImport' - $ref: '#/components/schemas/SourcedFromClickwrap' - $ref: '#/components/schemas/SourcedFromConnector' - $ref: '#/components/schemas/SourcedFromIntegration' - $ref: '#/components/schemas/SourcedFromContract' - $ref: '#/components/schemas/SourcedFromMetadataImport' - $ref: '#/components/schemas/SourcedFromAiChat' amendments: type: array description: The unique identifiers of amendment records that amend this record items: type: string example: IC-124 SourcedFromClickwrap: title: Sourced From Clickwrap type: object description: Record created from a clickwrap agreement required: - type - clickwrapId properties: type: type: string description: The source type of the record enum: - clickwrap example: clickwrap clickwrapId: type: string description: The unique identifier of the clickwrap agreement that created the record example: 4a785686-d3d5-47bc-960e-3df0df871ea9 SourcedFromAiChat: title: Sourced From AI Chat type: object description: Record created from an AI chat required: - type - chatId properties: type: type: string description: The source type of the record enum: - ai_chat example: ai_chat chatId: type: string description: The unique identifier of the AI chat that created the record example: 4a785686-d3d5-47bc-960e-3df0df871ea9 ExtendContractAction: type: object required: - type - properties properties: type: type: string description: The action type to run on the contract. enum: - extend properties: $ref: '#/components/schemas/RenewalTermLengthContractActionProperties' additionalProperties: false EditRenewalContractAction: type: object required: - type - properties properties: type: type: string description: The action type to run on the contract. enum: - editRenewal properties: type: object allOf: - $ref: '#/components/schemas/RenewalContractActionProperties' - $ref: '#/components/schemas/RenewalTypeContractActionProperties' - $ref: '#/components/schemas/EffectiveContractActionProperties' additionalProperties: false additionalProperties: false PropertiesToAmend: type: object description: 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'. additionalProperties: $ref: '#/components/schemas/RollUpConfiguration' example: contractValue: amendmentType: replace terminationDate: amendmentType: replace RecordPropertyReference: type: object description: A reference-type record property that points to another record required: - type - value properties: type: type: string description: The data type of the property enum: - reference example: reference value: type: object description: The reference value of the property required: - recordId properties: recordId: type: string description: The unique identifier of the referenced record example: REC12345 subTypeId: type: string description: Optional sub-type identifier for the referenced record example: contract namedTypeIds: type: array description: The unique identifiers of the relationship types associated with the entity items: type: string example: 43d3e321-e89b-12d3-a456-426614174000 readableId: type: string description: The unique identifier of the referenced record example: ENTITY-1 attributes: $ref: '#/components/schemas/EntityProperties' originalValue: type: object description: The original reference value before amendment (only present when property is amended) required: - recordId properties: recordId: type: string description: The unique identifier of the original referenced record example: REC67890 subTypeId: type: string description: Optional sub-type identifier for the original referenced record example: agreement namedTypeIds: type: array description: The unique identifiers of the relationship types associated with the original entity items: type: string example: 43d3e321-e89b-12d3-a456-426614174000 readableId: type: string description: The unique identifier of the original referenced record example: ENTITY-2 attributes: $ref: '#/components/schemas/EntityProperties' SmartImportRetrievePredictionsResponseElement: title: Single Prediction Status type: object additionalProperties: false required: - recordId - status properties: recordId: description: The record ID for the imported record type: string example: df1c2805-f5a3-4a14-9386-c28d950dff49 status: description: The status of the record's predictions type: string enum: - ready - pending - errored example: ready SourcedFromSingleImport: title: Sourced From Single Import type: object description: Record created from a single import required: - type properties: type: type: string description: The source type of the record enum: - single_import example: single_import BadRequestErrorRecordAttachmentMissingFormDataPart: type: object description: Bad request error. Missing form-data part. title: Bad Request Error - Missing Form-Data Part properties: code: type: string example: INVALID_PARAM message: type: string example: missing required form-data part 'metadata' param: type: string example: metadata RenewalContractActionProperties: type: object allOf: - type: object properties: standard_renewalsRemaining: type: object description: The number of renewals an auto-renewal or optional extension with limited renewals has left. required: - type - value properties: type: type: string enum: - number value: type: number example: 5 standard_renewalOptOutDate: type: object description: An agreement may have an opt-out date that lets you opt-out of the upcoming auto-renewal before it renews. required: - type - value properties: type: type: string enum: - date value: type: string example: '2018-05-08T00:00:00-07:00' standard_renewalOptOutPeriod: type: object description: An agreement may have an opt-out period that lets you opt-out of the upcoming auto-renewal before it renews. In the case of an opt period the last day to opt-out is the expiration date minus the opt-out period. required: - type - value properties: type: type: string enum: - duration value: type: string example: P1M - $ref: '#/components/schemas/RenewalTermLengthContractActionProperties' SourcedFromConnector: title: Sourced From Connector type: object description: Record created from a connector integration required: - type - connectorId properties: type: type: string description: The source type of the record enum: - connector example: connector connectorId: type: string description: The unique identifier of the connector integration that created the record example: 4a785686-d3d5-47bc-960e-3df0df871ea9 BadRequestErrorRecordAttachmentUnknownContentType: type: object description: Bad request error. Unknown content type. title: Bad Request Error - Unknown Content Type properties: code: type: string example: INVALID_PARAM message: type: string example: unknown content type 'filename or extension' param: type: string example: metadata.filename RecordProperties: type: object description: The record properties associated with the record additionalProperties: $ref: '#/components/schemas/RecordPropertyType' RecordPropertyAddress: type: object description: An address-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - address example: address value: type: object description: The address example: lines: - 123 Main St. locality: Los Angeles region: CA postcode: '90001' properties: lines: type: array maxLength: 4 items: type: string description: Address Lines (Street, Apt., etc.) locality: type: string description: Locality (City, Town, etc) country: type: string description: Country region: type: string description: Region (State, Province, etc) postcode: type: string description: Postcode (ZIP code, etc) raw: type: string description: A raw address string, useful when address is not stored in a structured way originalValue: type: object description: The original address before amendment (only present when property is amended) example: lines: - 456 Old St. locality: San Francisco region: CA postcode: '94102' properties: lines: type: array maxLength: 4 items: type: string description: Original Address Lines (Street, Apt., etc.) locality: type: string description: Original Locality (City, Town, etc) country: type: string description: Original Country region: type: string description: Original Region (State, Province, etc) postcode: type: string description: Original Postcode (ZIP code, etc) raw: type: string description: A raw original address string, useful when address is not stored in a structured way RecordPropertyDate: title: Record Property Date type: object description: A date-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - date example: date value: type: string description: The date value of the property in ISO8601 format format: date-time example: '1992-10-04T09:31:00Z' originalValue: type: string description: The original value of the property before amendment (only present when property is amended) format: date-time example: '1990-01-01T00:00:00Z' ActivateContractAction: type: object required: - type - properties additionalProperties: false properties: type: type: string description: The action type to run on the contract. enum: - activate properties: type: object allOf: - type: object properties: standard_terminationNoticePeriod: type: object description: This is the number of days of notice that needs to be given before this agreement can be terminated. required: - type - value properties: type: type: string enum: - duration value: type: string example: P14D effectiveDate: type: object description: Effective date is when this agreement begins and is considered active. If effective date is not defined then the executed date of the agreement is used to mark the contract as active. required: - type - value properties: type: type: string enum: - date value: type: string example: '2018-05-08T00:00:00-07:00' - $ref: '#/components/schemas/RenewalContractActionProperties' - $ref: '#/components/schemas/RenewalTypeContractActionProperties' - $ref: '#/components/schemas/EffectiveContractActionProperties' RecordPropertyClause: type: object description: A clause-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - clause example: clause value: type: object description: The clause value of the property required: - source properties: source: type: string description: The source of the clause property enum: - ai - manual example: ai clauseType: type: string description: The string key denoting which type of clause used example: remedies clauseText: type: string description: The actual paragraph text used example: This agreement is governed by the laws of the State of California. documentId: type: string description: The unique identifier of the document that contains the clause example: signedCopy languagePosition: type: object description: The position of the clause in the document oneOf: - $ref: '#/components/schemas/ClauseLanguagePositionCustom' - $ref: '#/components/schemas/ClauseLanguagePositionPlaybook' documentLocation: type: object description: The autoML style formatted location of the clause in the document required: - startOffset - endOffset - boundingPoly properties: startOffset: type: integer description: The position in the document where the clause begins example: 0 endOffset: type: integer description: The position in the document where the clause ends example: 0 boundingPoly: type: array description: The bounding polygon of the clause in the document items: type: object required: - x - y properties: x: type: integer description: The x coordinate of the bounding polygon example: 0 y: type: integer description: The y coordinate of the bounding polygon example: 0 pageNumber: type: integer description: The page number of the clause in the document example: 1 ClauseLanguagePositionCustom: title: Clause Language Position Custom type: object description: A custom clause language position required: - type properties: type: type: string description: The source type of the custom clause enum: - custom example: custom LinkType: type: string enum: - amendment - obligation description: Identifies the type of relationship this child record has with its parent (e.g. amendment) BadRequestErrorRecordAttachmentUnknownAttachmentKey: type: object description: Bad request error. Unknown record attachment key. title: Bad Request Error - Unknown Record Attachment Key properties: code: type: string example: INVALID_PARAM message: type: string example: unknown record attachment key 'someRandomKey' param: type: string example: attachmentKey RecordPropertyType: type: object oneOf: - $ref: '#/components/schemas/RecordPropertyString' - $ref: '#/components/schemas/RecordPropertyNumber' - $ref: '#/components/schemas/RecordPropertyBoolean' - $ref: '#/components/schemas/RecordPropertyDate' - $ref: '#/components/schemas/RecordPropertyDuration' - $ref: '#/components/schemas/RecordPropertyEmail' - $ref: '#/components/schemas/RecordPropertyMonetaryAmount' - $ref: '#/components/schemas/RecordPropertyClause' - $ref: '#/components/schemas/RecordPropertyPlaybookClause' - $ref: '#/components/schemas/RecordPropertyAddress' - $ref: '#/components/schemas/RecordPropertyArray' - $ref: '#/components/schemas/RecordPropertyReference' RecordPropertyDuration: title: Record Property Duration type: object description: A duration-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - duration example: duration value: type: string description: The duration value of the property in ISO8601 format example: P10Y3M2W1D originalValue: type: string description: The original value of the property before amendment (only present when property is amended) example: P5Y1M1W CancelAutoRenewalContractAction: type: object required: - type properties: type: type: string description: The action type to run on the contract. enum: - cancelAutoRenewal additionalProperties: false RecordParentModel: type: object description: Object containing Record IDs or Ironclad IDs to be set as the parent of the current record. required: - recordId properties: recordId: type: string description: The ID or Ironclad ID (readable ID) of the record to set as parent example: 17009e0d-z2e9-425d-a85b-1cf152773efg parentLinkType: $ref: '#/components/schemas/LinkType' RecordPropertyNumber: title: Record Property Number type: object description: A number-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - number example: number value: type: integer description: The number value of the property example: 123 originalValue: type: integer description: The original value of the property before amendment (only present when property is amended) example: 100 RecordPropertyEmail: title: Record Property Email type: object description: An email-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - email example: email value: type: string format: email description: The email value of the property example: ironclad@example.com originalValue: type: string format: email description: The original value of the property before amendment (only present when property is amended) example: original@example.com RecordPropertyMonetaryAmount: title: Record Property Monetary Amount type: object description: A monetary amount-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - monetary_amount example: monetary_amount value: type: object description: The monetary amount value of the property required: - amount - currency properties: currency: type: string description: The currency of the monetary value in ISO 4217 format example: USD amount: type: number description: The amount of the monetary value example: 100000 originalValue: type: object description: The original value of the property before amendment (only present when property is amended) required: - amount - currency properties: currency: type: string description: The currency of the original monetary value in ISO 4217 format example: USD amount: type: number description: The original amount of the monetary value example: 50000 RenewalTermLengthContractActionProperties: type: object properties: standard_renewalTermLength: type: object description: Renewal Term Length required: - type - value properties: type: type: string enum: - duration value: type: string example: P1Y ContractAction: type: object oneOf: - $ref: '#/components/schemas/ActivateContractAction' - $ref: '#/components/schemas/TerminateContractAction' - $ref: '#/components/schemas/SupersedeContractAction' - $ref: '#/components/schemas/ExtendContractAction' - $ref: '#/components/schemas/CancelAutoRenewalContractAction' - $ref: '#/components/schemas/EditRenewalContractAction' - $ref: '#/components/schemas/UndoContractAction' TerminateContractAction: type: object required: - type - properties properties: type: type: string description: The action type to run on the contract. enum: - terminate properties: type: object required: - standard_terminatedDate - standard_terminationEffectiveDate properties: standard_terminatedDate: type: object description: The date when the contract was terminated. required: - type - value properties: type: type: string enum: - date value: type: string example: '2018-05-08T00:00:00-07:00' standard_terminationEffectiveDate: type: object description: The effective date of the contract termination. required: - type - value properties: type: type: string enum: - date value: type: string example: '2018-05-08T00:00:00-07:00' standard_terminatingRecordId: type: object description: The record ID for the contract that terminated this contract. required: - type - value properties: type: type: string enum: - string value: type: string example: 715f1e37-292f-4e6c-8b48-c07e1b68bccd additionalProperties: false additionalProperties: false BadRequestErrorRecordIDNotFound: type: object description: Record ID Not Found Request Error title: Bad Request Error - Record ID Not Found properties: code: type: string example: NOT_FOUND message: type: string example: couldn't find a record matching the id [SOME_NONEXISTENT_RECORD_ID] EntityPropertyType: type: object oneOf: - $ref: '#/components/schemas/RecordPropertyString' - $ref: '#/components/schemas/RecordPropertyNumber' - $ref: '#/components/schemas/RecordPropertyBoolean' - $ref: '#/components/schemas/RecordPropertyDate' - $ref: '#/components/schemas/RecordPropertyDuration' - $ref: '#/components/schemas/RecordPropertyEmail' - $ref: '#/components/schemas/RecordPropertyMonetaryAmount' - $ref: '#/components/schemas/RecordPropertyAddress' RenewalTypeContractActionProperties: type: object required: - standard_renewalType properties: standard_renewalType: type: object description: "The renewal type for an agreement will govern what happens on its expiration date if it has one. Accepted values for renewal type:\n\n \tAuto-Renew: These agreements will automatically renew on their expiration date which means they will then have a new expiration date which would be the current date plus the renewal term length.\n\n \tOptional Extension: These agreements have an optional extension which means that the party can choose to renew the agreement by the renewal term length without renegotiating the contract. There may be a notification requirement to exercise this option.\n\n \tEvergreen: These are agreements that don't have an expiration date, which means they are active forever. Also known as perpetual agreements.\n\n \tNone: These agreements that don't have a renewal provision and will expire on their expiration date. If an agreement has no renewal provision but also doesn't have an expiration date, it'll be active forever.\n\n \tOther: For renewal provisions that are not covered by these options." required: - type - value properties: type: type: string enum: - string value: type: string enum: - Auto-Renew - Optional Extension - Evergreen - None - Other otherRenewalType: type: object description: This property helps downstream reporting for when you have a renewal type not defined by the system. required: - type - value properties: type: type: string enum: - string value: type: string example: Custom Auto-Renew SourcedFromMetadataImport: title: Sourced From Metadata Import type: object description: Record created from a metadata import required: - type - metadataImportId properties: type: type: string description: The source type of the record enum: - metadata_import example: metadata_import metadataImportId: type: string description: The unique identifier of the metadata import that created the record example: 4a785686-d3d5-47bc-960e-3df0df871ea9 RollUpConfiguration: type: object required: - amendmentType properties: amendmentType: type: string enum: - replace description: How to amend the property value. Currently only 'replace' is supported. SupersedeContractAction: type: object required: - type - properties properties: type: type: string description: The action type to run on the contract. enum: - supersede properties: type: object required: - standard_supersededDate - standard_supersessionEffectiveDate properties: standard_supersededDate: type: object description: Superseded Date required: - type - value properties: type: type: string enum: - date value: type: string example: '2018-05-08T00:00:00-07:00' standard_supersessionEffectiveDate: type: object description: Supersession Effective Date required: - type - value properties: type: type: string enum: - date value: type: string example: '2018-05-08T00:00:00-07:00' standard_supersedingRecordId: type: object description: The record ID for the contract that has superseded this contract. required: - type - value properties: type: type: string enum: - string value: type: string example: 715f1e37-292f-4e6c-8b48-c07e1b68bccd RecordPropertyString: title: Record Property String type: object description: A text-type record property required: - type - value properties: type: type: string description: The data type of the property enum: - string example: string value: type: string description: The string value of the property example: Foobar originalValue: type: string description: The original value of the property before amendment (only present when property is amended) example: Original Value responses: BadRequestError400: description: '400' content: application/json: schema: type: object properties: code: type: string example: MISSING_PARAM message: type: string example: reason why something has gone wrong param: type: string example: parameter identifier NotFoundError404: description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: not found AttachmentDeleteResponse404: description: Bad request error when deleting attachment. content: application/json: schema: oneOf: - $ref: '#/components/schemas/BadRequestErrorRecordIDNotFound' - $ref: '#/components/schemas/BadRequestErrorRecordAttachmentIDNotFound' ContractActionResponse400: description: Bad input for contract action content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorContractAction' UnauthorizedError401: description: '401' content: application/json: schema: type: object properties: code: type: string enum: - UNAUTHORIZED example: UNAUTHORIZED message: type: string example: invalid authentication token examples: invalidToken: value: code: UNAUTHORIZED message: invalid authentication token revokedToken: value: code: UNAUTHORIZED message: token has been revoked expiredToken: value: code: UNAUTHORIZED message: token has expired RecordAttachmentResponse400: description: Bad request error for creating record attachment. content: application/json: schema: oneOf: - $ref: '#/components/schemas/BadRequestErrorRecordNotFound' - $ref: '#/components/schemas/BadRequestErrorRecordAttachmentExtension' - $ref: '#/components/schemas/BadRequestErrorRecordAttachmentAlreadyExists' - $ref: '#/components/schemas/BadRequestErrorRecordAttachmentUnknownAttachmentKey' - $ref: '#/components/schemas/BadRequestErrorRecordAttachmentUnknownContentType' - $ref: '#/components/schemas/BadRequestErrorRecordAttachmentMissingFormDataPart' ForbiddenError403: description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden parameters: QueryPageSize: name: pageSize in: query description: A limit of the number of results to return. schema: type: integer format: int32 minimum: 1 maximum: 100 default: 20 RecordType: name: types in: query description: Comma separated (no spaces) record types to export. Use the [Retrieve Records Schema](https://developer.ironcladapp.com/reference/list-all-records-metadata) endpoint to retrieve a list of types. example: mutualNDA,consultingAgreement schema: type: string XAsUserId: name: x-as-user-id in: header description: Denotes the actor of the request. When used, the API will take into account this user's permissions and access. This or `x-as-user-email` is required when the associated token was produced from the Client Credentials grant or with legacy bearer tokens on select endpoints. More information about [permissions](https://support.ironcladapp.com/hc/en-us/articles/23063233934999-Ironclad-Permissions-Overview). required: false schema: type: string example: 5f0375c4cdc1927a3c5edcd3 RecordFilter: name: filter in: query description: "Filter records using a formula. The record property ID should be enclosed in brackets `[ ]` and the value should be enclosed in single quotes `' '`. \n\nRecord properties can be identified using the [Retrieve Records Schema](https://developer.ironcladapp.com/reference/list-all-records-metadata) endpoint.\n\nSupported formula operations include the following with documentation found [here](/reference/filter-query-param):\n\n" schema: type: string example: Equals([counterpartyName], 'Test LLC') addressAsObject: name: addressAsObject in: query description: When true, returns addresses as objects instead of strings. schema: type: boolean default: false QueryPageNumber: name: page in: query description: The page number used when paginating through a list of results. schema: type: integer format: int32 default: 0 minimum: 0 maximum: 100000000 RecordLastUpdated: name: lastUpdated in: query description: Get records updated since (UTC) example: '2018-03-10T00:00:00.000Z' schema: type: string XAsUserEmail: name: x-as-user-email in: header description: Denotes the actor of the request. When used, the API will take into account this user's permissions and access. This or `x-as-user-id` is required when the associated token was produced from the Client Credentials grant or with legacy bearer tokens on select endpoints. More information about [permissions](https://support.ironcladapp.com/hc/en-us/articles/23063233934999-Ironclad-Permissions-Overview). required: false schema: type: string example: jane.doe@test.com HydrateEntitiesFlag: name: hydrateEntities in: query description: Indicates whether to fully hydrate related entities (true) or return minimal information (false). required: false schema: type: boolean default: false x-readme: headers: [] explorer-enabled: true proxy-enabled: true samples-languages: - curl - node - ruby - javascript - python