openapi: 3.1.0 info: title: Ironclad Public API description: Documentation for Ironclad's REST API. contact: name: Ironclad Support email: support@ironcladapp.com version: '1' servers: - url: https://na1.ironcladapp.com/public/api/v1 description: Production server - url: https://eu1.ironcladapp.com/public/api/v1 description: EU Production server - url: https://demo.ironcladapp.com/public/api/v1 description: Demo server paths: /workflows: post: summary: Create a Workflow Synchronously description: "Launch a new Workflow synchronously. \n\n**OAuth Scope required:** `public.workflows.createWorkflows`" operationId: launch-a-new-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/UseDefaultValuesOnLaunch' requestBody: $ref: '#/components/requestBodies/WorkflowLaunch' security: - sec0: [] OAuth2: - public.workflows.createWorkflows responses: '200': $ref: '#/components/responses/WorkflowLaunchResponse200' '400': $ref: '#/components/responses/WorkflowLaunchResponse400' tags: - Workflows get: summary: List All Workflows description: "List all workflows in your Ironclad account. \n\n**OAuth Scope required:** `public.workflows.readWorkflows`" operationId: list-all-workflows parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' - $ref: '#/components/parameters/HydrateEntitiesFlag' - name: status in: query description: Filter the workflows that are listed based on their status. If this parameter is omitted, `active` workflows will be returned. Active workflows include workflows in the Create, Review, Sign, and Archive stages. Also accepts multiple comma-separated statuses to get workflows in more than one status. schema: type: array items: type: string enum: - active - paused - completed - cancelled - name: template in: query description: Filter workflows to a specific Template ID. schema: type: string - name: lastUpdated in: query description: Retrieve workflows that have been updated since a UTC date. schema: type: string - $ref: '#/components/parameters/WorkflowFilter' security: - sec0: [] OAuth2: - public.workflows.readWorkflows 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/WorkflowResponseModel' tags: - Workflows /workflows/async: post: summary: Create a Workflow Asynchronously description: "Launch a new Workflow asynchronously for non-blocking performance, which is helpful when/if you provide\ \ files to the Workflow. \n\n**OAuth Scope required:** `public.workflows.createWorkflows`" operationId: create-a-new-workflow-async parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/UseDefaultValuesOnLaunch' requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkflowLaunchModel' security: - sec0: [] OAuth2: - public.workflows.createWorkflows responses: '200': $ref: '#/components/responses/AsyncWorkflowLaunchResponse200' '400': description: Bad Request content: application/json: schema: type: object properties: {} tags: - Workflows /workflows/async/{asyncJobId}: get: summary: Retrieve the Status of an Async Workflow Create Job description: "Check the status of a Workflow you created while using the [Create a Workflow Async](https://developer.ironcladapp.com/reference/create-a-workflow-sync-vs-async#create-a-new-workflow-async)\ \ route. \n\n**OAuth Scope required:** `public.workflows.createWorkflows`" operationId: retrieve-asynchronous-workflow-status parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: asyncJobId in: path description: The identifier provided in the response of creating a Workflow asynchronously. schema: type: string required: true security: - sec0: [] OAuth2: - public.workflows.createWorkflows responses: '200': $ref: '#/components/responses/AsyncWorkflowStatusResponse200' '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: - Workflows /workflows/{id}: get: summary: Retrieve a Workflow description: "View the data associated with a specific workflow. \n\n**OAuth Scope required:** `public.workflows.readWorkflows`" operationId: retrieve-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/HydrateEntitiesFlag' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.readWorkflows responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/WorkflowResponseModel' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Workflows /workflows/{id}/approvals: get: summary: List All Workflow Approvals description: "Returns a list of approvals for the workflow. The `approvalGroups` property will display only triggered\ \ approvals (i.e. conditional approvals that have not been triggered will not appear). \n\n**OAuth Scope required:**\ \ `public.workflows.readApprovals`" operationId: list-all-workflow-approvals parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.readApprovals responses: '200': description: '200' content: application/json: schema: type: object properties: workflowId: type: string example: 5f595f76c4fc9b3571413c3ac title: type: string example: Consulting Agreement with Michael Scott Paper Company approvalGroups: type: array items: type: object properties: reviewers: type: array items: type: object properties: role: type: string example: finance displayName: type: string example: Finance reviewerType: type: string example: role status: type: string enum: - pending - approved description: The status of the reviewer. If the status is `approved`, the reviewer has approved. If the status is `pending`, the reviewer has not yet approved. example: pending status: type: string enum: - pending - approved - active description: The status of the approval group. If the status is `active`, the approval group is currently reviewing and its reviewers may approve. If the status is `approved`, all reviewers in the approval group have approved. If the status is `pending`, the approval group is waiting for prior groups to approve and its reviewers cannot approve. example: pending order: type: integer description: The order in which the approval group is executed. Only relevant if there is more than one approval group and sequential approvals are enabled. example: 1 roles: type: array items: type: object properties: id: type: string example: legal displayName: type: string example: Legal assignees: type: array items: type: object properties: userName: type: string example: Boba Fett userId: type: string example: 63d415e0dd0d828c3a878548 email: type: string example: bobafett@exmaple.com '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Workflows /workflows/{id}/approval-requests: get: summary: Retrieve the Approval Requests on a Workflow description: "Returns a list of approval requests that have taken place on the workflow. \n\n**OAuth Scope required:**\ \ `public.workflows.readApprovals`" operationId: approval-requests parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' - name: actorDetails in: query description: An optional boolean parameter that adds additional information about the actor to each item in the response. Defaults to false. schema: type: boolean example: false default: false required: false - name: requestType in: query description: An optional string parameter that specifies the type of approval requests and returns approval requests by `role` or `user`. schema: type: string enum: - role - user default: user required: false security: - sec0: [] OAuth2: - public.workflows.readApprovals responses: '200': description: '200' content: application/json: schema: type: object properties: page: type: integer example: 0 default: 0 pageSize: type: integer example: 20 default: 20 count: type: integer example: 42 list: type: array description: Approval requests on a workflow items: type: object properties: startTime: type: string description: Timestamp when the approval request became available for review example: '2024-12-20T20:23:41.335Z' endTime: type: string description: Timestamp when the approval request was approved or interrupted by workflow actions example: '2024-12-20T20:23:43.036Z' status: type: string description: Current state of an approval request that indicates whether the request is approved, in progress, or affected by workflow actions. enum: - Approved - Pending - Workflow Paused - Workflow Canceled - Approver Removed - Approver Reassigned example: Approved actorId: type: string description: User ID to whom the approval request is assigned to example: 6334b636b9fb1eb6e76ada97 actorType: type: string example: User enum: - User actorDetails: type: object properties: userName: type: string example: Cave Johnson userEmail: type: string example: cave@aperturescience.com role: type: string description: Role ID of the role assigned to the user for the approval request example: approver58348a760b354ab3a986f56a74656c86 roleName: type: string description: Display name of the role assigned to the user for the approval request example: CEO duration: type: integer description: 'Duration of the completed approval request in milliseconds ' example: 1701 aggregateDuration: type: integer description: Total duration of the completed approval request, obtained by adding the duration of the approved request with the durations of preceding requests (if any) where the approver was able to review but interrupted by a workflow pause. example: 1500 approvalType: type: string example: Workflow enum: - Workflow '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '404': description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: workflow does not exist param: type: string example: workflowId tags: - Workflows /workflows/{id}/approvals/{roleId}: patch: summary: Update Approval Status on a Workflow description: "Updates the status of an approval to the specified value. Approval statuses can only be updated during\ \ the Review step and when a given approval group is active (when it is that group's turn to approve). \n\n**OAuth\ \ Scope required:** `public.workflows.updateApprovals`" operationId: update-workflow-approval parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - name: roleId in: path description: The unique identifier of the approver role whose status should be changed. This identifier can be retrieved using the `GET /workflows/{id}/approvals` endpoint. schema: type: string required: true security: - sec0: [] OAuth2: - public.workflows.updateApprovals requestBody: content: application/json: schema: description: Note that `user` is required when approving with a legacy bearer token but will be ignored when approving via an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or 'x-as-user-email` header will be used. type: object required: - status properties: user: type: object description: The Ironclad user approving the workflow. The user must be currently assigned as the approver. properties: email: type: string description: The Ironclad user's email address. example: fett@intergalactic.com type: type: string description: The mechanism of identifying the Ironclad user's account. default: email status: type: string enum: - approved - pending description: The new approval status. responses: '200': description: '200' content: application/json: schema: type: boolean example: true '400': description: '400' content: application/json: schema: oneOf: - type: object properties: code: type: string enum: - INVALID_PARAM example: INVALID_PARAM message: type: string enum: - This role does not exist in this workflow - invalid user for user attribute - This approval either was not requested or this user was not assigned to this approval example: This role does not exist in this workflow param: type: string enum: - approval example: approval - type: object properties: code: type: string enum: - INVALID_STATE example: INVALID_STATE message: type: string enum: - This approval cannot be approved out of order example: This approval cannot be approved out of order param: type: string enum: - approval example: approval tags: - Workflows /workflows/{id}/turn-history: get: summary: Retrieve the Turn History on a Workflow description: "An array of objects for each turn on a workflow. \n\n**OAuth Scope required:** `public.workflows.readTurnHistory`" operationId: turn-history parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' security: - sec0: [] OAuth2: - public.workflows.readTurnHistory responses: '200': description: '200' content: application/json: schema: type: object properties: page: type: integer example: 0 default: 0 pageSize: type: integer example: 20 default: 20 count: type: integer example: 42 list: type: array items: type: object properties: turnParty: type: string example: internal turnStartTime: type: string example: '2022-09-20T15:51:54.156Z' turnLocation: type: string example: manual change turnUserId: type: string example: 5f89b6a5eed2cc6e0b2735d4 turnEndTime: type: string example: '2022-09-28T19:21:05.034Z' turnNumber: type: integer example: 1 turnUserEmail: type: string example: baldwin@ironcladhq.com '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '404': description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: workflow does not exist param: type: string example: workflowId tags: - Workflows /workflows/{id}/sign-status: get: summary: Retrieve Sign Step Status description: "Returns information about a workflow in the sign step. \n\n**OAuth Scope required:** `public.workflows.readSignStatus`\ \ \n\n**NOTE:** The workflow must be in the sign step to access this route." operationId: get-sign-status parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.readSignStatus responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/SignStatusModel' '400': description: '400' content: application/json: schema: type: object properties: code: type: string example: INVALID_STATE message: type: string example: This workflow is not at the Sign step, and is currently at the Review step '401': $ref: '#/components/responses/UnauthorizedError401' '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows /workflows/{id}/sign-status/send-signature-request: post: summary: Send Signature Request description: "Send a signature request.\n\n**OAuth Scope required:** `public.workflows.sendSignatureRequests`\n\n **Note**:\ \ You can only send a packet out for signature if all signers have an associated signature or initials tag (tag requirements\ \ are dependent on the signature provider)." operationId: send-signature-request parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.sendSignatureRequests responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/SignStatusModel' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows /workflows/{id}/sign-status/scheduled-send: post: summary: Schedule Send Signature Request description: 'Schedule a signature request to be sent out for signature. The workflow must be on the Sign step and not yet out for signature. **OAuth Scope required:** `public.workflows.scheduleSendSignatureRequest` ' operationId: schedule-send-signature-request parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.scheduleSendSignatureRequest requestBody: content: application/json: schema: type: object required: - notifyAt properties: notifyAt: type: string format: date-time description: The ISO8601 timestamp for when the signature request should be sent out for signature. example: '2026-03-01T12:00:00Z' reminder: type: object description: Optional reminder email to the Signature Coordinator before the scheduled send. properties: daysBefore: type: integer minimum: 1 maximum: 7 description: Number of days before the scheduled send to send the reminder email (1-7). required: - daysBefore responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/SignStatusModel' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows patch: summary: Update Scheduled Signature Request description: 'Update a scheduled signature request. The workflow must be on the Sign step and not yet out for signature. **OAuth Scope required:** `public.workflows.updateScheduledSignatureRequest` ' operationId: update-scheduled-signature-request parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.updateScheduledSignatureRequest requestBody: content: application/json: schema: type: object properties: notifyAt: type: string format: date-time description: The ISO8601 timestamp for when the signature request should be sent out for signature. example: '2026-03-01T12:00:00Z' reminder: description: Set to an object to add/update reminder, null to remove, or omit to leave unchanged. nullable: true type: object properties: daysBefore: type: integer minimum: 1 maximum: 7 description: Number of days before the scheduled send to send the reminder email (1-7). required: - daysBefore responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/SignStatusModel' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows delete: summary: Delete Scheduled Signature Request description: 'Delete a scheduled signature request. The workflow must be on the Sign step and not yet out for signature. **OAuth Scope required:** `public.workflows.deleteScheduledSignatureRequest` ' operationId: delete-scheduled-signature-request parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.deleteScheduledSignatureRequest responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/SignStatusModel' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows /workflows/{id}/sign-status/cancel-signature-request: post: summary: Cancel Signature Request description: 'Cancel a signature request that was out for signature. **OAuth Scope required:** `public.workflows.cancelSignatureRequests` ' operationId: cancel-signature-request parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.cancelSignatureRequests requestBody: content: application/json: schema: type: object required: - reason properties: reason: type: string description: The reason for canceling the signature request. example: Need to make changes. responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/SignStatusModel' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows /workflows/{id}/sign-status/signers/{signerRoleName}: patch: summary: Update Signer description: 'Reassign a signer or edit an external signer''s name or email, as specified by the `signerRoleName` parameter. The original signer will receive an email that the packet has been reassigned if it was sent out for signature. **OAuth Scope required:** `public.workflows.updateSigners` **NOTE**: Editing a signer will not cancel a signature request unless your configured signature provider is Adobe Sign. Also, you cannot update a signer that has already signed via the API for any signature provider.' operationId: update-signer parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - name: signerRoleName in: path description: 'The role name of the signer to be updated. Note: the role name should be URL encoded in the URL.' schema: type: string required: true example: Counterparty%20Signer security: - sec0: [] OAuth2: - public.workflows.updateSigners requestBody: content: application/json: schema: oneOf: - $ref: '#/components/schemas/InternalAssignment' - $ref: '#/components/schemas/ExternalAssignment' responses: '200': description: '200' content: application/json: schema: oneOf: - $ref: '#/components/schemas/SignStatusInternalSigner' - $ref: '#/components/schemas/SignStatusExternalSigner' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows delete: summary: Delete Signer description: 'Deletes a signer from a signature packet, as specified by the `signerRoleName` parameter. **OAuth Scope required:** `public.workflows.deleteSigners` **NOTE**: Removing a signer will cancel the current packet that is out collecting signatures.' operationId: delete-signer parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - name: signerRoleName in: path description: 'The role name of the signer to be removed. Note: the role name should be URL encoded in the URL.' schema: type: string example: Counterparty%20Signer required: true security: - sec0: [] OAuth2: - public.workflows.deleteSigners responses: '204': description: '204' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows /workflows/{id}/sign-status/signers/{signerRoleName}/remind: post: summary: Remind Signer description: 'Send a reminder email to a signer that a signature is needed. **OAuth Scope required:** `public.workflows.remindSigners` **NOTE**: You can only send a reminder after the signature packet has been sent out for signature. Also, if using Adobe Sign as your signature provider, reminding a signer reminds all unsigned signers.' operationId: remind-signer parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - name: signerRoleName in: path description: 'The role name of the signer to be reminded. Note: the role name should be URL encoded in the URL.' schema: type: string required: true example: Counterparty%20Signer security: - sec0: [] OAuth2: - public.workflows.remindSigners responses: '204': description: '204' '400': description: '400' content: application/json: schema: $ref: '#/components/schemas/NotOnSignStep400' '401': $ref: '#/components/responses/UnauthorizedError401' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' '429': description: '429' content: application/json: schema: type: object properties: code: type: string enum: - TOO_MANY_REQUESTS message: type: string example: You cannot remind the signer at this time (you can only send one reminder per hour). Please try again later. tags: - Workflows /workflows/{id}/signatures: get: summary: List All Workflow Signers description: "Returns a list of workflow signers and the status of their signature. \n\n**OAuth Scope required:** `public.workflows.readSignatures`" operationId: list-all-workflow-signers parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.readSignatures responses: '200': description: '200' content: application/json: schema: type: object properties: workflowId: type: string example: 6dac47a10b1242d1f7df688d title: type: string example: Goldendoodle Adoption Contract signers: type: array items: type: object properties: name: type: string example: Jimothy Kim email: type: string example: jimothykim@example.com roleName: type: string example: Counterparty Signer signatureStatus: $ref: '#/components/schemas/SignatureStatusModel' delegates: type: array items: type: object properties: name: type: string example: Kim Lam email: type: string example: kimlam@example.com '400': description: '400' content: application/json: schema: type: object properties: code: type: string example: INVALID_STATE message: type: string example: This workflow is not at the Sign step, and is currently at the Review step '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden tags: - Workflows /workflows/{id}/signatures/recipient-urls: post: summary: Create a Recipient URL for a Signer description: 'Create a recipient URL for a signer or viewer to access the signature request. This functionality is exclusive to Ironclad Signature. See [this help center article](https://support.ironcladapp.com/hc/en-us/articles/12276957992983-Manage-Signatures-During-the-Sign-Step#copysignerlink) for more information. **OAuth Scope required:** `public.workflows.createSignatureRecipientUrls`' operationId: create-recipient-url parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' requestBody: content: application/json: schema: oneOf: - type: object required: - type - roleName properties: type: type: string enum: - signer description: The type of recipient. roleName: type: string description: The role name of the signer. A full list of role names can be located using the [List All Workflow Signers](https://developer.ironcladapp.com/reference/list-all-workflow-signers) endpoint. example: Counterparty Signer - type: object required: - type - email properties: type: type: string enum: - viewer description: The type of recipient. email: type: string description: The email address of the CC recipient. security: - sec0: [] OAuth2: - public.workflows.createSignatureRecipientUrls responses: '201': description: '201' content: application/json: schema: type: object required: - url properties: url: type: string description: The URL for the recipient to access the signature request. example: https://na1.ironcladapp.com/sign?r=5e51f2b9-a684-4c50-887c-32911b661300&s=b2a303cd-f7a0-425e-8f36-d94e38c4e1a8 '400': description: '400' content: application/json: schema: oneOf: - $ref: '#/components/schemas/NotOnSignStep400' - type: object properties: code: type: string example: INVALID_PARAM message: type: string example: invalid recipient type; *, signer, viewer are acceptable recipient types param: type: string example: recipient.type - type: object properties: code: type: string enum: - MISSING_PARAM message: type: string example: missing required property 'recipient' param: type: string example: recipient '401': $ref: '#/components/responses/UnauthorizedError401' '403': description: '403' content: application/json: schema: type: object properties: code: type: string enum: - FORBIDDEN message: type: string example: user is not authorized to create signature request URL for signature request, please try again later '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' '429': description: '429' content: application/json: schema: type: object properties: code: type: string enum: - TOO_MANY_REQUESTS message: type: string example: user cannot create signature request URL for recipient at this time tags: - Workflows /workflows/{id}/signatures/recipient-urls/embedded: post: summary: Create an Embeddable Recipient URL for a Signer description: 'Create an embeddable recipient URL for a signer to access the signature request. This functionality is exclusive to Ironclad Signature. See [this help center article](https://support.ironcladapp.com/hc/en-us/articles/12276957992983-Manage-Signatures-During-the-Sign-Step#copysignerlink) for more information. **OAuth Scope required:** `public.workflows.createEmbeddableSignerUrls`' operationId: create-embeddable-recipient-url parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' requestBody: content: application/json: schema: type: object required: - type - roleName - frameAncestor properties: type: type: string enum: - signer description: The type of recipient. roleName: type: string description: The role name of the signer. A full list of role names can be located using the [List All Workflow Signers](https://developer.ironcladapp.com/reference/list-all-workflow-signers) endpoint. example: Counterparty Signer frameAncestor: description: The hostname of the parent frame that the recipient URL can be embedded in. Can optionally include a URL scheme and/or port number. Wildcards (i.e. '*') are not allowed. type: string example: https://example.com allowMultipleUsages: description: Whether or not the embeddable recipient URL can be used multiple times before it expires. Defaults to false if not set. type: boolean example: true security: - sec0: [] OAuth2: - public.workflows.createEmbeddableSignerUrls responses: '201': description: '201' content: application/json: schema: type: object required: - url properties: url: type: string description: The embeddable URL for the recipient to access the signature request. The URL can only be embedded in a parent matching the host specified in frameAncestor. example: https://na1.ironcladapp.com/sign?r=5e51f2b9-a684-4c50-887c-32911b661300&s=b2a303cd-f7a0-425e-8f36-d94e38c4e1a8 '400': description: '400' content: application/json: schema: oneOf: - $ref: '#/components/schemas/NotOnSignStep400' - type: object properties: code: type: string example: INVALID_PARAM message: type: string example: invalid recipient type; signer is the only acceptable recipient type param: type: string example: recipient.type - type: object properties: code: type: string enum: - MISSING_PARAM message: type: string example: missing required property 'frameAncestor' param: type: string example: frameAncestor '401': $ref: '#/components/responses/UnauthorizedError401' '403': description: '403' content: application/json: schema: type: object properties: code: type: string enum: - FORBIDDEN message: type: string example: user is not authorized to create signature request URL for signature request, please try again later '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' '429': description: '429' content: application/json: schema: type: object properties: code: type: string enum: - TOO_MANY_REQUESTS message: type: string example: user cannot create signature request URL for recipient at this time tags: - Workflows /workflows/{id}/upload-signed: post: summary: Create a Signed Document on a Workflow description: "Upload a fully or partially signed document to a specified workflow that is in sign step. \n\n**OAuth\ \ Scope required:** `public.workflows.uploadSignedDocuments`" operationId: workflow-upload-signed-document parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' requestBody: content: multipart/form-data: schema: type: object required: - attachment properties: attachment: type: object format: binary description: Must be a binary. Base64 is not accepted at this time. metadata: type: object description: A JSON string containing metadata for the document. The `signerRoleNames` field must be nested inside this object. If `metadata` is omitted entirely, the uploaded document is treated as fully signed and the workflow will complete the sign step. properties: signerRoleNames: type: array description: Specifies which signers have already signed on the document when the document does not contain all required signatures. This field must be provided inside the `metadata` object. If `signerRoleNames` is omitted or empty — either by excluding it from `metadata` or by omitting `metadata` altogether — the document is assumed to be fully signed and the workflow will complete the sign step. items: type: string example: Counterparty Signer description: The role name of the signers. A full list of role names can be located using the [List All Workflow Signers](https://developer.ironcladapp.com/reference/list-all-workflow-signers) endpoint. encoding: attachment: contentType: application/pdf metadata: contentType: application/json security: - sec0: [] OAuth2: - public.workflows.uploadSignedDocuments responses: '200': $ref: '#/components/responses/SignedDocumentResponse200' '400': description: '400' content: application/json: schema: oneOf: - type: object properties: code: type: string enum: - MISSING_PARAM param: type: string example: attachments message: type: string example: missing required form-data part 'attachment' - type: object properties: data: type: object properties: code: type: string enum: - VIRUS_DETECTED files: type: array items: type: string example: sample-eicar-file.pdf message: type: string example: Detected virus in one or more of the files received. - $ref: '#/components/schemas/NotOnSignStep400' - type: object properties: code: type: string example: INVALID_PARAM message: type: string example: The signer field contains invalid signers, please check. '404': description: '404' content: application/json: schema: oneOf: - $ref: '#/components/schemas/WorkflowNotFound' tags: - Workflows /workflows/{id}/participants: get: summary: List All Workflow Participants description: "Returns a list of workflow participants. \n\n**OAuth Scope required:** `public.workflows.readParticipants`" operationId: list-all-workflow-participants parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' - name: email in: query description: The Ironclad user's email address. schema: type: string security: - sec0: [] OAuth2: - public.workflows.readParticipants responses: '200': description: '200' content: application/json: schema: type: object properties: page: type: integer example: 0 default: 0 pageSize: type: integer example: 20 default: 20 count: type: integer example: 1 list: type: array items: type: object properties: userId: type: string example: 61968ae4945dcecf4a78cc83 email: type: string example: boba@intergalactic.com '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows /workflows/{id}/roles/{roleName}: patch: summary: Update Workflow Role Assignment description: "Updates the assignment of the specified role (e.g. Archiver, Signature Coordinator, etc.) on the workflow\ \ to a new user. The new assignee must be eligible to be assigned to the role per the workflow definition configured\ \ in workflow designer. \n\n**OAuth Scope required:** `public.workflows.updateRoleAssignment`" operationId: update-workflow-role-assignment parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - name: roleName in: path required: true description: The display name of the role, URL-encoded (e.g. `Legal%20Approver`). schema: type: string maxLength: 200 example: Legal%20Approver security: - sec0: [] OAuth2: - public.workflows.updateRoleAssignment requestBody: required: true content: application/json: schema: type: object required: - userId properties: userId: type: string description: The id of the Ironclad user to assign to the role. Must be eligible to be assigned to the role. example: 61968ae4945dcecf4a78cc83 responses: '200': description: '200' content: application/json: schema: type: object required: - roleName - assignee properties: roleName: type: string description: The display name of the role that was updated. example: Legal Approver assignee: type: object required: - userId - displayName - email properties: userId: type: string example: 61968ae4945dcecf4a78cc83 displayName: type: string example: Jane Doe email: type: string example: jane@example.com '400': description: '400' content: application/json: schema: type: object properties: code: type: string enum: - INVALID_PARAM example: INVALID_PARAM message: type: string example: userId is required param: type: string example: userId '403': description: '403' content: application/json: schema: type: object properties: code: type: string enum: - FORBIDDEN example: FORBIDDEN message: type: string example: user is not assignable to the role '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' '422': description: '422' content: application/json: schema: type: object properties: code: type: string enum: - INVALID_STATE example: INVALID_STATE message: type: string example: workflow is completed and cannot be reassigned tags: - Workflows /workflows/{id}/roles/{roleName}/eligible-assignees: get: summary: List Eligible Assignees for a Workflow Role description: "Returns a paginated list of users eligible to be assigned to the specified role on the workflow along\ \ with the user ID of current assignee if a user is already assigned to the role. \n\n**OAuth Scope required:** `public.workflows.readRoleAssignees`" operationId: list-workflow-role-eligible-assignees parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - name: roleName in: path required: true description: The display name of the role, URL-encoded (e.g. `Legal%20Approver`). schema: type: string maxLength: 200 example: Legal Approver - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' security: - sec0: [] OAuth2: - public.workflows.readRoleAssignees responses: '200': description: '200' content: application/json: schema: type: object required: - page - pageSize - count - list properties: page: type: integer example: 0 default: 0 description: The zero-based page number for paginating through results. pageSize: type: integer example: 20 default: 20 description: The number of items to return per page count: type: integer example: 1 description: The total number of items available across all pages list: type: array description: The list of users eligible to be assigned to the role items: type: object required: - userId - email - displayName properties: userId: type: string example: 61968ae4945dcecf4a78cc83 email: type: string example: lilbieber@gmail.com displayName: type: string example: Justin Bieber defaultAssignee: required: - userId - email - displayName type: object description: The user assigned to the role by default. properties: userId: type: string example: 63d415e0dd0d828c3a878548 email: type: string example: tate.mcrae@gmail.com displayName: type: string example: Tate McRae '404': description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string enum: - workflow does not exist - role does not exist on this workflow example: role does not exist on this workflow param: type: string enum: - workflowId - roleName example: roleName tags: - Workflows /workflows/{id}/revert-to-review: patch: summary: Revert a Workflow to the Review Step description: "Reverts a workflow to the Review step. Only workflows sourced from Workflow Designer and in the Sign step\ \ can be reverted. \n\n**OAuth Scope required:** `public.workflows.revertToReview`" operationId: revert-to-review parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' requestBody: content: application/json: schema: description: Note that `user` is required when reverting with a legacy bearer token but will be ignored when reverting via an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or 'x-as-user-email` header will be used. type: object required: - status properties: user: type: object description: The Ironclad user reverting the workflow to the Review step. The user must have access to the workflow. properties: email: type: string description: The Ironclad user's email address. example: jango@intergalactic.com type: type: string description: The mechanism of identifying the Ironclad user's account. default: email security: - sec0: [] OAuth2: - public.workflows.revertToReview responses: '204': description: '204' '400': description: '400' content: application/json: schema: type: object properties: code: type: string enum: - INVALID_PARAM - INVALID_STATE example: INVALID_STATE message: type: string enum: - invalid user for user attribute - workflow was not built in workflow designer and cannot be reverted to review via the API - workflow cannot be reverted to review as it is not in the sign stage - various malformed user payload messages example: workflow cannot be reverted to review as it is not in the sign stage param: type: string example: user '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: user is not a participant on the workflow param: type: string example: user '404': description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: workflow does not exist param: type: string example: workflowId tags: - Workflows /workflows/{id}/cancel: post: summary: Cancel a Workflow description: "Cancel a workflow. \n\n**OAuth Scope required:** `public.workflows.cancel`" operationId: cancel-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' requestBody: content: application/json: schema: type: object required: - comment properties: comment: $ref: '#/components/schemas/CommentModel' security: - sec0: [] OAuth2: - public.workflows.cancel responses: '204': $ref: '#/components/responses/WorkflowUpdateResponse204' tags: - Workflows /workflows/{id}/pause: post: summary: Pause a Workflow description: "Pause an active workflow. \n\n**OAuth Scope required:** `public.workflows.pauseAndResume`" operationId: pause-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' requestBody: content: application/json: schema: type: object required: - comment properties: comment: $ref: '#/components/schemas/CommentModel' security: - sec0: [] OAuth2: - public.workflows.pauseAndResume responses: '204': $ref: '#/components/responses/WorkflowUpdateResponse204' '400': description: '400' content: application/json: schema: type: object properties: code: type: string example: INVALID_STATE message: type: string example: Only active workflows in the review step can be paused. tags: - Workflows /workflows/{id}/resume: post: summary: Resume a Workflow description: "Resume a paused Workflow. \n\n**OAuth Scope required:** `public.workflows.pauseAndResume`" operationId: resume-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' requestBody: content: application/json: schema: type: object required: - comment properties: comment: $ref: '#/components/schemas/CommentModel' security: - sec0: [] OAuth2: - public.workflows.pauseAndResume responses: '204': $ref: '#/components/responses/WorkflowUpdateResponse204' '400': description: '400' content: application/json: schema: type: object properties: code: type: string example: INVALID_STATE message: type: string example: Only paused workflows in the review step can be resumed. tags: - Workflows /workflows/{id}/comment: post: deprecated: true summary: Create a Comment on a Workflow description: Creates a comment in the specified workflow's activity feed. operationId: deprecated-create-a-comment-on-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.createComments requestBody: content: application/json: schema: description: Note that `creator` is required when commenting with a legacy bearer token but will be ignored when commenting via an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or 'x-as-user-email` header will be used. type: object required: - comment properties: creator: $ref: '#/components/schemas/CreatorModel' comment: type: string addUsersToWorkflow: $ref: '#/components/schemas/AddUsersToWorkflowModel' repliedToActivityFeedMessageId: type: string description: Use to specify the comment to reply to responses: '204': description: '204' content: application/json: schema: type: object properties: {} '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Workflows /workflows/{id}/comments: post: summary: Create a Comment on a Workflow description: "Creates a comment in the specified workflow's activity feed. \n\n**OAuth Scope required:** `public.workflows.createComments`" operationId: create-a-comment-on-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' requestBody: content: application/json: schema: description: Note that `user` is required when commenting with a legacy bearer token but will be ignored when commenting via an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or 'x-as-user-email` header will be used. type: object required: - comment properties: creator: $ref: '#/components/schemas/CreatorModel' comment: type: string description: The comment to be added to the workflow activity feed. To @-mention a user, use the format `<@john.doe@example.com>`. addUsersToWorkflow: $ref: '#/components/schemas/AddUsersToWorkflowModel' repliedToActivityFeedMessageId: type: string description: Use to specify a comment to reply to. Message ID can be found via the [List All Comments on a Workflow](https://developer.ironcladapp.com/reference/list-all-comments-in-a-workflow) endpoint. security: - sec0: [] OAuth2: - public.records.createComments responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/ActivityFeedComment' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Workflows get: summary: List all Comments on a Workflow description: "Return a list of comments on a workflow. \n\n**OAuth Scope required:** `public.workflows.readComments`" operationId: list-all-comments-in-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' security: - sec0: [] OAuth2: - public.workflows.readComments responses: '200': description: '200' content: application/json: schema: type: object properties: page: type: integer example: 0 default: 0 pageSize: type: integer example: 20 default: 20 count: type: integer example: 1 list: type: array items: $ref: '#/components/schemas/ActivityFeedComment' '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '404': description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: workflow does not exist param: type: string example: workflowId tags: - Workflows /workflows/{id}/comments/{commentId}: get: summary: List a Comment from a Specified Workflow description: "Return a single comment for a specified workflow. \n\n**OAuth Scope required:** `public.workflows.readComments`" operationId: list-a-comment-from-a-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The unique identifier of a workflow. schema: type: string required: true - name: commentId in: path description: The unique identifier of a comment. schema: type: string required: true security: - sec0: [] OAuth2: - public.workflows.readComments responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/ActivityFeedComment' '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '404': $ref: '#/components/responses/CommentNotFoundResponse404' tags: - Workflows /workflows/{id}/attributes: patch: summary: Update Workflow Metadata description: 'The workflow must be in the Review step in order for its data to be updated. Use the `remove` action to clear field values and the `set` action to add or modify values. Form validation is enforced; required fields cannot be removed and any required fields triggered by conditions must be populated. **Note:** This endpoint does not support updating document/file type attributes. To manage documents, use the [Create a Document on a Workflow](https://developer.ironcladapp.com/reference/create-a-workflow-document) and [Update Signature Packet on a Workflow](https://developer.ironcladapp.com/reference/update-workflow-signature-packet) endpoints. **OAuth Scope required:** `public.workflows.updateWorkflows`' operationId: update-workflow-metadata parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' requestBody: content: application/json: schema: type: object properties: updates: type: array items: type: object properties: action: type: string enum: - set - remove description: The type of action you'd like to take on an existing attribute (read-only fields cannot be updated). Use the remove action to clear values. If using the remove action, the attribute cannot be required by the workflow. default: set path: type: string description: The workflow attribute id that you'd like to make a change to. Workflow attribute IDs and values can be retrieved using the [Retrieve a Workflow](https://developer.ironcladapp.com/reference/retrieve-a-workflow) endpoint. example: counterpartyName value: type: string description: The value to change the attribute to. Only required when the `action` property is `set` and not `remove`. The value's format must conform to the field type (e.g., `"someString"` for strings, `true` or `false` for booleans, etc. example: Example Company required: - action - path comment: type: string description: A comment that explains the updates you are making to the workflow. example: Changing attribute on a Workflow. required: - updates security: - sec0: [] OAuth2: - public.workflows.updateWorkflows responses: '200': description: '200' content: application/json: schema: type: object properties: id: type: string example: 6013609108b8f070cee94fc1 ironcladId: type: string example: IC-1 title: type: string example: Consulting Agreement with Jane Doe template: type: string example: 600b296c3e15a234ab88f884 step: type: string example: Review schema: type: object properties: counterpartyName: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute propertyKey: description: The unique identifier for the property. type: string example: counterpartyName readOnly: description: Determines whether the property's value can be updated. type: boolean example: true amount: type: object properties: type: type: string example: number displayName: type: string example: Example Number Attribute propertyKey: description: The unique identifier for the property. type: string example: amount readOnly: description: Determines whether the property's value can be updated. type: boolean example: false fee: type: object properties: type: type: string example: monetaryAmount displayName: type: string example: Example Monetary Amount Attribute propertyKey: description: The unique identifier for the property. type: string example: fee readOnly: description: Determines whether the property's value can be updated. type: boolean example: false draft: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: document displayName: type: string example: Example Document Attribute lineItems: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: object displayName: type: string example: Example Object Attribute schema: type: object properties: childAttribute: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute anotherChildAttribute: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute attributes: type: object properties: counterpartyName: type: string example: Boba Fett amount: type: integer example: 123 default: 0 fee: type: object properties: currency: type: string example: USD amount: type: integer example: 50000 default: 0 draft: type: array items: type: object properties: version: type: string example: B1QePArXb filename: type: string example: file.pdf download: type: string example: /public/api/v1/workflows/594356b9fbcd7f74006fdf8a/document/rJklwCHQ/download isCancelled: type: boolean example: false default: true isComplete: type: boolean example: false default: true status: type: string example: active creator: type: object properties: displayName: type: string example: Boba Fett email: type: string example: fett@intergalactic.com id: type: string example: 63d415e0dd0d828c3a878548 created: type: string example: '2016-11-17T00:37:22.318Z' lastUpdated: type: string example: '2016-11-17T00:37:22.318Z' roles: type: array items: type: object properties: id: type: string example: legal displayName: type: string example: Legal assignees: type: array items: type: object properties: userName: type: string example: Boba Fett userId: type: string example: 63d415e0dd0d828c3a878548 email: type: string example: bobafett@example.com approvals: type: object properties: state: type: string example: in_progess url: type: string example: https://na1.ironcladapp.com/public/api/v1/workflows/22e2ff72-56a1-4711-a4ca-41328d311e9f/approvals signatures: type: object properties: state: type: string example: in_progess url: type: string example: https://na1.ironcladapp.com/public/api/v1/workflows/6dac47a10b1242d1f7df688d/signatures recordIds: type: array items: type: string example: 715f1e37-292f-4e6c-8b48-c07e1b68bccd isRevertibleToReview: type: boolean example: false '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string param: type: string examples: noInformationChanged: summary: No information changed value: code: INVALID_PARAM message: No information changed. The updates provided did not introduce any new values param: attributes invalidParamNonExistentAttribute: summary: Non-existent attribute specified value: code: INVALID_PARAM message: 'non-existent attribute(s) specified: someRandomAttribute' param: attributes invalidParamFormValidationFailed: summary: Form validation failed description: Form validation may fail if (1) a required conditional field is triggered but not populated by your request (2) the value does not conform to the expected field type (e.g., sending strings to number fields). value: code: INVALID_PARAM message: form validation failed, please check schema param: attributes invalidParamReadOnlyField: summary: Read-only attribute description: Cannot patch read-only attribute someRandomFunctionAttribute value: code: INVALID_PARAM message: Cannot patch read-only attribute someRandomFunctionAttribute param: attributes '403': description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden '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: - Workflows /workflows/{id}/documents: get: summary: Retrieve Documents from a Workflow description: "Retrieve all documents from a workflow that are included and excluded from the signature packet. \n\n\ **OAuth Scope required:** `public.workflows.readDocuments`" operationId: retrieve-workflow-documents parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' security: - sec0: [] OAuth2: - public.workflows.readDocuments responses: '200': description: '200' content: application/json: schema: type: object properties: signaturePacketDocuments: description: The signature packet documents in the order they are displayed on the packet. type: array items: $ref: '#/components/schemas/WorkflowDocumentModel' excludedFromSignaturePacketDocuments: description: The documents that are excluded from the signature packet. type: array items: $ref: '#/components/schemas/WorkflowDocumentModel' required: - signaturePacketDocuments - excludedFromSignaturePacketDocuments '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Workflows /workflows/{id}/signature-packet: patch: summary: Update Signature Packet on a Workflow description: "Update a workflow's signature packet by moving documents into it, moving documents out of it, or reordering\ \ documents within it. The request body specifies which workflow documents should be in the signature packet and their\ \ order. Documents in the request but not currently in the signature packet will be moved into it. Documents currently\ \ in the signature packet but not in the request will be moved out of it.\n\n**Note:** Only editable file types (.doc,\ \ .docx, .pdf) can be included in the signature packet.\n\n**Restrictions:**\n- Workflow must be at Review stage \n\ - All document keys must be valid editable documents on the workflow \n\n**OAuth Scope required:** `public.workflows.updateSignaturePacket`" operationId: update-workflow-signature-packet parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' requestBody: required: true content: application/json: schema: type: object properties: signaturePacketDocumentKeys: description: Array of document keys representing the desired signature packet order. Only editable file types (.doc, .docx, .pdf) are valid. Cannot be empty if the workflow has a sign step configured. type: array items: type: string description: Document key required: - signaturePacketDocumentKeys security: - sec0: [] OAuth2: - public.workflows.updateSignaturePacket responses: '200': description: '200' content: application/json: schema: type: object required: - signaturePacketDocuments - excludedFromSignaturePacketDocuments properties: signaturePacketDocuments: description: The signature packet documents in the updated order. type: array items: $ref: '#/components/schemas/WorkflowDocumentModel' excludedFromSignaturePacketDocuments: description: The documents that are excluded from the signature packet. type: array items: $ref: '#/components/schemas/WorkflowDocumentModel' '400': $ref: '#/components/responses/BadRequestError400' '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Workflows /workflows/{id}/documents/{attributeId}: post: summary: Create a Document on a Workflow description: 'Create a document in the specified workflow attribute. If a document key to an existing draft document is provided, the new file will be uploaded as a new version of the existing document. For all other non-draft documents and when document key is absent, this operation will only append the new document to the document attribute array. Please note that to upload a signed document, reference the [Create a Signed Document on a Workflow](https://developer.ironcladapp.com/reference/workflow-upload-signed-document) endpoint. **OAuth Scope required:** `public.workflows.createDocuments`' operationId: create-a-workflow-document parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' - name: attributeId in: path description: The file attribute (e.g. "draft", "myFileField") - "document" type attributes can be found in the schema portion of the [Retrieve a Workflow](https://developer.ironcladapp.com/reference/retrieve-a-workflow) response. schema: type: string required: true requestBody: content: multipart/form-data: schema: type: object required: - metadata - attachment properties: attachment: type: string format: binary description: Must be a binary. Base64 is not accepted at this time. metadata: type: object description: A JSON string that contains all the metadata for the Document. required: - comment properties: comment: $ref: '#/components/schemas/CommentModel' key: type: string description: The unique identifier for the document. This key can be located using the [Retrieve a Workflow](https://developer.ironcladapp.com/reference/retrieve-a-workflow) endpoint. Should only be provided when creating a new version of an existing draft document. Versioning is not supported for non-draft documents. encoding: attachment: contentType: application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document metadata: contentType: application/json security: - sec0: [] OAuth2: - public.workflows.createDocuments responses: '204': description: '204' content: application/json: schema: type: object properties: {} '400': description: '400' content: application/json: schema: oneOf: - type: string example: missing required form-data part 'attachment' - type: string example: virus detected '404': description: '404' content: application/json: schema: oneOf: - type: string example: Document does not exists - type: string example: Workflow does not exists tags: - Workflows /workflows/{id}/document/{key}/download: get: summary: Retrieve a Workflow Document description: "Download a document associated with a specific workflow via a reference to its document key. \n\n**OAuth\ \ Scope required:** `public.workflows.readDocuments`" operationId: retrieve-a-workflow-document parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowOrIroncladId' - name: key in: path description: The unique identifier for the attachment. This key can be located using the [Retrieve a Workflow](https://developer.ironcladapp.com/reference/retrieve-a-workflow) endpoint. In the response, locate the file attribute (e.g., `draft`) and look at its `download` parameter. The download parameter includes the key at the end of the URL `.../document/{ATTACHMENT_KEY}/download` schema: type: string required: true security: - sec0: [] OAuth2: - public.workflows.readDocuments responses: '200': description: '200' content: application/json: schema: type: object properties: {} '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Workflows /workflows/{id}/emails: get: summary: Retrieve Email Threads from A Workflow description: "List all email threads in the specified workflow. \n\n**OAuth Scope required:** `public.workflows.readEmailCommunications`" operationId: retrieve-email-threads-from-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' security: - sec0: [] OAuth2: - public.workflows.readEmailCommunications responses: '200': $ref: '#/components/responses/EmailsResponse200' '404': $ref: '#/components/responses/WorkflowNotFoundResponse404' tags: - Workflows /workflows/{id}/emails/{emailThreadId}: get: summary: Retrieve an Email Thread from a Specified Workflow description: "List a single email thread for a specified workflow. \n\n**OAuth Scope required:** `public.workflows.readEmailCommunications`" operationId: retrieve-email-thread-from-workflow parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' - $ref: '#/components/parameters/EmailThreadId' security: - sec0: [] OAuth2: - public.workflows.readEmailCommunications responses: '200': $ref: '#/components/responses/EmailResponse200' '404': $ref: '#/components/responses/WorkflowOrEmailNotFoundResponse404' tags: - Workflows /workflows/{id}/emails/{emailThreadId}/attachments/{attachmentId}: get: summary: Retrieve an Attachment from an Email Thread description: "Retrieve an attachment from the specified email thread. \n\n**OAuth Scope required:** `public.workflows.readEmailCommunications`" operationId: retrieve-attachment-from-email-thread parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WorkflowId' - $ref: '#/components/parameters/EmailThreadId' - name: attachmentId in: path description: The unique identifier for the attachment. This key can be located using the [Retrieve email threads from workflow](https://developer.ironcladapp.com/reference/retrieve-emails) endpoint. In the response, locate the file attribute (e.g., `attachments`) and look at its `download` parameter. The download parameter includes the key at the end of the URL `...emails/{emailThreadId}/attachment/{ATTACHMENT_ID}` schema: type: string required: true security: - sec0: [] OAuth2: - public.workflows.readEmailCommunications responses: '200': description: '200' content: application/json: schema: type: object properties: {} '404': $ref: '#/components/responses/ObjectNotFoundResponse404' tags: - Workflows /workflow-schemas: get: summary: List All Workflow Schemas description: "Returns a list of workflow schemas. Each schema specifies the fields used in the workflow's launch form.\ \ \n\n**OAuth Scope required:** `public.workflows.readSchemas`" operationId: list-all-workflow-schemas parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: form in: query description: The launch form is the only form supported at this time. required: true schema: type: string default: launch security: - sec0: [] OAuth2: - public.workflows.readSchemas responses: '200': description: '200' content: application/json: schema: type: object properties: list: type: array items: type: object properties: id: type: string example: a1b2c3d4 name: type: string example: MNDA schema: type: object properties: counterpartyName: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' amount: type: object properties: type: type: string example: number displayName: type: string example: Example Number Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' fee: type: object properties: type: type: string example: monetaryAmount displayName: type: string example: Example Monetary Amount Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' draft: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: document displayName: type: string example: Example Document Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' lineItems: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: object displayName: type: string example: Example Object Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' schema: type: object properties: childAttribute: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' anotherChildAttribute: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' exampleLinkedRecord: $ref: '#/components/schemas/WorkflowSchemasLinkedRecordAttribute' exampleParentRecord: $ref: '#/components/schemas/WorkflowSchemasParentRecordAttribute' exampleChildRecord: $ref: '#/components/schemas/WorkflowSchemasChildRecordAttribute' permissions: type: array example: - launch - view items: type: string '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 tags: - Workflows /workflow-schemas/{id}: get: summary: Retrieve a Workflow Schema description: "Returns the fields used in the workflow's launch form. \n\n**OAuth Scope required:** `public.workflows.readSchemas`" operationId: retrieve-a-workflow-schema parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - description: 'The unique identifier of a schema (see explanation of [Template ID](https://developer.ironcladapp.com/reference/getting-started-api)). A list of identifiers can be retrieved using the `GET /workflow-schemas` endpoint. Only published workflows will have an identifier. ' name: id in: path schema: type: string required: true - name: form in: query schema: type: string default: launch security: - sec0: [] OAuth2: - public.workflows.readSchemas responses: '200': description: '200' content: application/json: schema: type: object properties: id: type: string example: 6013609108b8f070cee94fc1 name: type: string example: MNDA schema: type: object properties: counterpartyName: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' amount: type: object properties: type: type: string example: number displayName: type: string example: Example Number Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' fee: type: object properties: type: type: string example: monetaryAmount displayName: type: string example: Example Monetary Amount Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' draft: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: document displayName: type: string example: Example Document Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' lineItems: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: object displayName: type: string example: Example Object Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' schema: type: object properties: childAttribute: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' anotherChildAttribute: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' options: $ref: '#/components/schemas/WorkflowSchemasResponseOptionsField' default: $ref: '#/components/schemas/WorkflowSchemasResponseDefaultField' exampleLinkedRecord: $ref: '#/components/schemas/WorkflowSchemasLinkedRecordAttribute' exampleParentRecord: $ref: '#/components/schemas/WorkflowSchemasParentRecordAttribute' exampleChildRecord: $ref: '#/components/schemas/WorkflowSchemasChildRecordAttribute' permissions: type: array example: - launch - view items: type: string '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string param: type: string examples: notFound: summary: Non-existent template id. value: code: NOT_FOUND message: workflow template schema not found param: templateId invalidParam: summary: Invalid query parameter. value: code: INVALID_PARAM message: invalid query value 'randomRequest'; value must be one of [launch] param: /?form tags: - Workflows /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 /webhooks: post: summary: Create a Webhook description: "Creates a webhook for the specified events. Send separate requests if you need to create webhooks for\ \ multiple target URLs. Each target URL may only have one active registration. \n\n**OAuth Scope required:** `public.webhooks.createWebhooks`" operationId: create-a-webhook parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' requestBody: content: application/json: schema: type: object properties: events: type: array description: 'The event type(s) to trigger the webhook. Note: you can use `*` to receive events for all events, although we don''t recommend this path, especially for environments with higher volume.' items: $ref: '#/components/schemas/WebhookEvent' minItems: 1 targetURL: type: string format: https-url description: The URL to send the webhook event payload to. It must be an HTTPS url. status: type: string enum: - enabled - disabled default: enabled description: The status of the webhook. If the status is `disabled`, the webhook will not be triggered. required: - events - targetURL security: - sec0: [] OAuth2: - public.webhooks.createWebhooks responses: '201': description: '201' content: application/json: schema: $ref: '#/components/schemas/WebhookModel' '400': $ref: '#/components/responses/WebhookCreateResponse400' tags: - Webhooks get: summary: List All Webhooks description: "View all webhooks associated with a specific company with filtering available via query parameters. \n\ \n**OAuth Scope required:** `public.webhooks.readWebhooks`" operationId: list-all-webhooks parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' security: - sec0: [] OAuth2: - public.webhooks.readWebhooks responses: '200': description: '200' content: application/json: schema: type: object required: - page - pageSize - list properties: page: type: integer example: 0 pageSize: type: integer example: 20 list: type: array items: $ref: '#/components/schemas/WebhookModel' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Webhooks /webhooks/{id}: get: summary: Retrieve a Webhook description: "View the data associated with a specific webhook. \n\n**OAuth Scope required:** `public.webhooks.readWebhooks`" operationId: retrieve-a-webhook parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WebhookId' security: - sec0: [] OAuth2: - public.webhooks.readWebhooks responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/WebhookModel' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Webhooks patch: summary: Update a Webhook description: "Update the data associated with a specific webhook. \n\n**OAuth Scope required:** `public.webhooks.updateWebhooks`" operationId: update-a-webhook parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WebhookId' requestBody: content: application/json: schema: type: object properties: events: type: array description: The type of events that will trigger a notification to the target URL. minItems: 1 items: $ref: '#/components/schemas/WebhookEvent' targetURL: type: string description: The URL of where the notification gets sent. format: https-url status: type: string enum: - enabled - disabled description: The status of the webhook. If the status is `disabled`, the webhook will not be triggered. security: - sec0: [] OAuth2: - public.webhooks.updateWebhooks responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/WebhookModel' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Webhooks delete: summary: Delete a Webhook description: "Delete a specific webhook. \n\n**OAuth Scope required:** `public.webhooks.deleteWebhooks`" operationId: delete-a-webhook parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/WebhookId' security: - sec0: [] OAuth2: - public.webhooks.deleteWebhooks responses: '204': description: '204' '400': description: '400' content: application/json: schema: type: object properties: {} tags: - Webhooks /webhooks/verification-key: get: summary: Retrieve Webhook Verification Key description: View the verification key for webhook security implementations operationId: retrieve-webhook-verification-key parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' security: - sec0: [] OAuth2: [] responses: '200': description: '200' content: text/plain: examples: Result: value: PEM-FILE '400': description: '400' content: application/json: examples: Result: value: {} schema: type: object properties: {} tags: - Webhooks /exports: post: summary: Submit a request to generate a new data export description: "Submit a request to generate a new data export. \n\n**OAuth Scope required:** `public.export.createReports`\ \ \n\nThe Data Export feature is part of the paid Security & Data Pro add-on. Contact your Ironclad account representative\ \ for more information about purchasing this package." operationId: export parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' security: - sec0: [] OAuth2: - public.export.createReports requestBody: $ref: '#/components/requestBodies/DataExportRequest' responses: '200': description: '200' content: application/json: schema: type: object properties: jobId: type: string example: 02e1343b-d024-4de0-a22e-a579282f05d9 jobStatus: type: string enum: - pending - running - done - failed '400': description: '400' content: application/json: schema: type: object properties: error: type: string example: Could not retrieve job status. Please verify the job id and try again. tags: - Exports /exports/{jobId}: get: summary: Check Data Export Job Status description: "View the status of an export job using the job id returned during job creation. \n\n**OAuth Scope required:**\ \ `public.export.readReports` \n\nThe Data Export feature is part of the paid Security & Data Pro add-on. Contact\ \ your Ironclad account representative for more information about purchasing this package." operationId: export-job parameters: - name: jobId in: path description: The job id to be checked. schema: type: string required: true security: - sec0: [] OAuth2: - public.export.readReports responses: '200': description: '200' content: application/json: schema: type: object properties: jobId: type: string example: 02e1343b-d024-4de0-a22e-a579282f05d9 jobStatus: type: string enum: - pending - running - done - failed '400': description: '400' content: application/json: schema: type: object properties: error: type: string example: Could not retrieve job status. Please verify the job id and try again. tags: - Exports /exports/{jobId}/download: get: summary: Download Data Export File description: "Download completed file produced by the export job. \n\n**OAuth Scope required:** `public.export.readReports`\ \ \n\nThe Data Export feature is part of the paid Security & Data Pro add-on. Contact your Ironclad account representative\ \ for more information about purchasing this package." operationId: export-job-download parameters: - name: jobId in: path description: The job id to be checked. schema: type: string required: true security: - sec0: [] OAuth2: - public.export.readReports responses: '200': description: '200' content: application/json: {} '400': description: '400' content: application/json: schema: type: object properties: error: type: string example: Could not retrieve job status. Please verify the job id and try again. tags: - Exports /entities/relationship-types: get: summary: Get All Entity Relationship Types description: "Returns all entity relationship types. For more information, see [Entity Relationship Types](https://support.ironcladapp.com/hc/en-us/articles/28005038398231-Create-Manage-Relationship-Types-and-Entity-Properties).\ \ \n\n**OAuth Scope required:** `public.entities.readRelationshipTypes`" operationId: get-all-entity-relationship-types parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' security: - sec0: [] OAuth2: - public.entities.readRelationshipTypes responses: '200': description: '200' content: application/json: schema: type: array items: type: object properties: id: type: string description: The unique identifier of the record example: 22e2ff72-56a1-4711-a4ca-41328d311e9f name: type: string description: The unique identifier of the relationship type example: customer displayName: type: string description: The display name of the relationship type example: Customer or Custom Vendor description: type: string description: The description of the relationship type example: A customer is a business that purchases products or services from a business. '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Entities /entities: get: summary: List All Entities description: "View all entities in the company, with filtering available via query parameters. \n\n**OAuth Scope required:**\ \ `public.entities.readEntities`" operationId: list-all-entities parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' - $ref: '#/components/parameters/EntityFilter' - name: sortField in: query description: The field to sort Entities. Only one field is supported in the sort operation. Default is `name`. schema: type: string enum: - name - lastUpdated - name: sortDirection in: query description: The direction the entities are sorted by in correlation with the `sortField`. Default is `DESC`. schema: type: string enum: - ASC - DESC security: - sec0: [] OAuth2: - public.entities.readEntities responses: '200': description: '200' content: application/json: schema: type: object properties: page: type: integer example: 0 default: 0 pageSize: type: integer example: 20 default: 20 maximum: 100 count: type: integer example: 1 maximum: 100 list: type: array items: $ref: '#/components/schemas/EntityModel' '400': $ref: '#/components/responses/BadRequestError400' '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Entities post: summary: Create an Entity description: "Create a new entity. More details on creating an entity can be found in the [Entity Overview](https://support.ironcladapp.com/hc/en-us/articles/28004816859543-Create-and-Manage-Entities)\ \ article. \n\n**OAuth Scope required:** `public.entities.createEntities`" operationId: create-an-entity parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' requestBody: content: application/json: schema: type: object required: - name properties: name: type: string description: The name of the Entity. minLength: 1 relationshipTypeKey: $ref: '#/components/schemas/RelationshipTypeKey' status: description: The status of the entity type: string enum: - ACTIVE - INACTIVE default: ACTIVE properties: type: object description: A key:value map of properties to add. The two below are examples. More details on the properties can be found in the [Entity Properties](https://support.ironcladapp.com/hc/en-us/articles/28005038398231-Create-Manage-Relationship-Types-and-Entity-Properties) article. additionalProperties: $ref: '#/components/schemas/RecordPropertyType' parent: type: object description: Object containing Record IDs or Ironclad IDs to be set as the parent of the current record. properties: recordId: type: string description: For post entity example: 123e4567-e89b-12d3-a456-426614174001 required: - recordId examples: Request Example: value: name: Ironclad Inc. relationshipTypeKey: - customer properties: entity_externalID: type: string value: '1234567890' entity_businessType: type: string value: company parent: recordId: 123e4567-e89b-12d3-a456-426614174001 Remove parent example: value: name: Ironclad Inc. removeParent: true security: - sec0: [] OAuth2: - public.entities.createEntities responses: '201': description: '201' content: application/json: schema: $ref: '#/components/schemas/EntityModel' '400': $ref: '#/components/responses/BadRequestError400' '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Entities /entities/{id}: get: summary: Retrieve an Entity description: "View a specific entity and its associated data. \n\n**OAuth Scope required:** `public.entities.readEntities`" operationId: retrieve-an-entity parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Entity to fetch. schema: type: string required: true security: - sec0: [] OAuth2: - public.entities.readEntities responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/EntityModel' '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 '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Entities patch: summary: Update an Entity description: "Update an entity's name, relationship type, and properties. More details on managing an entity can be\ \ found in the [Entity Overview](https://support.ironcladapp.com/hc/en-us/articles/28004816859543-Create-and-Manage-Entities)\ \ article. \n\n**OAuth Scope required:** `public.entities.updateEntities`" operationId: update-an-entity parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Entity to update. schema: type: string required: true requestBody: content: application/json: schema: type: object properties: name: type: string description: The name of the Entity. minLength: 1 relationshipTypeKey: $ref: '#/components/schemas/RelationshipTypeKey' status: description: The status of the entity type: string enum: - ACTIVE - INACTIVE addProperties: type: object description: A key:value map of properties to add. More details on the properties can be found in the [Entity Properties](https://support.ironcladapp.com/hc/en-us/articles/28005038398231-Create-Manage-Relationship-Types-and-Entity-Properties) article. additionalProperties: $ref: '#/components/schemas/RecordPropertyType' removeProperties: type: array description: List of entity property ids to be removed from the entity record if they exist. items: type: string example: entity_externalID setParent: type: object description: Object containing Record ID or Ironclad ID to be set as the parent of the current entity. required: - recordId properties: recordId: type: string example: 123e4567-e89b-12d3-a456-426614174001 removeParent: type: boolean description: Boolean flag to indicate if the parent id should be removed for the current entity. example: false examples: Request Example: value: name: Ironclad Inc. relationshipTypeKey: - customer addProperties: entity_externalID: type: string value: '1234567890' entity_businessType: type: string value: company removeProperties: - entity_alternativeNames setParent: recordId: 123e4567-e89b-12d3-a456-426614174001 Remove parent example: value: removeParent: true security: - sec0: [] OAuth2: - public.entities.updateEntities responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/EntityModel' '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 '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Entities delete: summary: Delete an Entity description: "Delete an existing entity. \n\n**OAuth Scope required:** `public.entities.deleteEntities`" operationId: delete-an-entity parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Entity to delete. schema: type: string required: true security: - sec0: [] OAuth2: - public.entities.deleteEntities responses: '204': description: '204' content: application/json: schema: type: object properties: {} '404': description: '404' content: application/json: schema: type: object properties: {} tags: - Entities /obligations: get: summary: List All Obligations description: "View all obligations in the company, with filtering available via query parameters. \n\n**OAuth Scope\ \ required:** `public.obligations.readObligations`" operationId: list-all-obligations parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - $ref: '#/components/parameters/QueryPageNumber' - $ref: '#/components/parameters/QueryPageSize' - $ref: '#/components/parameters/ObligationFilter' - $ref: '#/components/parameters/QuerySortField' - $ref: '#/components/parameters/QuerySortDirection' security: - sec0: [] OAuth2: - public.obligations.readObligations responses: '200': description: '200' content: application/json: schema: type: object properties: page: type: integer description: The zero-based page number for paginating through results example: 0 default: 0 pageSize: type: integer description: The number of items to return per page example: 20 default: 20 maximum: 100 minimum: 1 count: type: integer description: The total number of items available across all pages example: 42 maximum: 100 list: type: array items: $ref: '#/components/schemas/ObligationModel' '400': $ref: '#/components/responses/BadRequestError400' '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Obligations post: summary: Create an Obligation description: "Create a new obligation. \n\n**OAuth Scope required:** `public.obligations.createObligations`" operationId: create-an-obligation parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' requestBody: content: application/json: schema: type: object required: - name - parentId - obligationTypeKey properties: name: type: string description: The name of the obligation properties: type: object description: A key:value map of properties to add. The two below are examples. More details on the properties can be found in the [Obligation Properties](https://support.ironcladapp.com/hc/en-us/articles/31128654301079-Create-and-Manage-Obligations) article. additionalProperties: $ref: '#/components/schemas/RecordPropertyType' obligationTypeKey: $ref: '#/components/schemas/ObligationTypeKey' parentId: type: string description: The ID of the contract to create the new obligation as a child of. This is useful for creating a new obligation as a child of an existing obligation. security: - sec0: [] OAuth2: - public.obligations.createObligations responses: '201': description: '201' content: application/json: schema: $ref: '#/components/schemas/ObligationModel' '400': $ref: '#/components/responses/BadRequestError400' '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' tags: - Obligations /obligations/{id}: get: summary: Retrieve an Obligation description: "View a specific obligation and its associated data. \n\n**OAuth Scope required:** `public.obligations.readObligations`" operationId: retrieve-an-obligation parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Obligation to fetch. schema: type: string required: true security: - sec0: [] OAuth2: - public.obligations.readObligations responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/ObligationModel' '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 '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Obligations patch: summary: Update an Obligation description: "Update an existing obligation. \n\n**OAuth Scope required:** `public.obligations.updateObligations`" operationId: update-an-obligation parameters: - $ref: '#/components/parameters/XAsUserEmail' - $ref: '#/components/parameters/XAsUserId' - name: id in: path description: The ID or Ironclad ID of the Obligation to update. schema: type: string required: true security: - sec0: [] OAuth2: - public.obligations.updateObligations requestBody: content: application/json: schema: type: object properties: name: type: string description: The name of the obligation minLength: 1 addProperties: type: object description: A key:value map of properties to add. More details on the properties can be found in the [Obligation Properties](https://support.ironcladapp.com/hc/en-us/articles/31128654301079-Create-and-Manage-Obligations) article. additionalProperties: $ref: '#/components/schemas/RecordPropertyType' removeProperties: type: array description: A list of property keys to remove from the obligation. More details on the properties can be found in the [Obligation Properties](https://support.ironcladapp.com/hc/en-us/articles/31128654301079-Create-and-Manage-Obligations) article. minItems: 1 items: type: string example: userFacingObligations_description obligationTypeKey: $ref: '#/components/schemas/ObligationTypeKey' responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/ObligationModel' '400': description: '400' content: application/json: schema: type: object properties: code: type: string example: MISSING_PARAM message: type: string example: Record id OB-1 doesn't exist, or no access param: type: string example: parameter identifier '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' '404': $ref: '#/components/responses/NotFoundError404' tags: - Obligations /search/conversational: post: summary: Run Conversational Search description: 'Ask a natural language question and get an AI-generated response grounded in your contracts and records. **OAuth Scopes required:** `public.search.conversational`, `public.records.readRecords`, `public.workflows.readWorkflows`' operationId: run-conversational-search requestBody: content: application/json: schema: type: object required: - query properties: query: type: string description: The natural language question to ask example: Which contracts are expiring in the next 30 days? modelTier: type: string enum: - ultrafast - fast - standard - powerful description: Controls the model used. Defaults to 'fast'. Use 'ultrafast' for the lightest/quickest model, 'standard' or 'powerful' for more capable models on complex queries. example: fast userTimezone: type: string description: The user's IANA timezone (e.g. "America/New_York", "Asia/Kolkata"). Used to correctly interpret relative time expressions like "last month" or "this week". If not provided, falls back to the timezone in the user's company profile, then UTC. example: America/New_York security: - sec0: [] OAuth2: - public.search.conversational - public.records.readRecords - public.workflows.readWorkflows responses: '200': description: '200' content: application/json: schema: type: object required: - result - records properties: result: type: string description: The agent's prose response records: type: object description: Map of record ID to record details for all records surfaced by the agent additionalProperties: $ref: '#/components/schemas/ConversationalSearchRecord' '400': $ref: '#/components/responses/BadRequestError400' '401': $ref: '#/components/responses/UnauthorizedError401' '403': $ref: '#/components/responses/ForbiddenError403' tags: - Search components: schemas: ConversationalSearchRecord: title: Conversational Search Record type: object required: - url properties: url: type: string nullable: true description: Dashboard URL for this record, or null if unavailable 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 LaunchedWorkflow: title: Launched Workflow description: The response from a successful workflow launch. type: object required: - id - title - template - step - attributes - schema - isCancelled - isComplete - status - created - lastUpdated - roles - approvals - signatures - isRevertibleToReview properties: id: type: string example: 6013609108b8f070cee94fc1 description: The ID of the launched workflow. readOnly: true ironcladId: type: string example: IC-1 description: The Ironclad ID of the launched workflow. readOnly: true title: type: string example: Consulting Agreement with Jane Doe description: The name used for the launched workflow. readOnly: true template: $ref: '#/components/schemas/WorkflowTemplateIdModel' step: type: string example: Review description: The step the workflow is currently on. enum: - Review - Sign - Archive - Complete readOnly: true attributes: description: The workflow attributes (also known as properties). Attributes of type linkedRecord, parentRecord, or childRecord are returned as objects with recordId and readableId. type: object additionalProperties: true schema: $ref: '#/components/schemas/AttributesModel' isCancelled: type: boolean example: false description: Displays if the launched workflow has been cancelled. readOnly: true deprecated: true isComplete: type: boolean example: false description: Displays if the launched workflow has been completed. readOnly: true deprecated: true status: type: string example: active description: The current status of the launched workflow. enum: - active - paused - cancelled - completed readOnly: true creator: type: object properties: id: type: string example: 63d415e0dd0d828c3a878548 description: '' readOnly: true email: type: string example: fett@intergalactic.com description: '' readOnly: true displayName: type: string example: Boba Fett description: '' readOnly: true description: '' readOnly: true title: '' created: type: string example: '2016-11-17T00:37:22.318Z' description: The date (ISO8601 format) the workflow was launched readOnly: true lastUpdated: type: string example: '2016-11-17T00:37:42.318Z' description: The date (ISO8601 format) the workflow was last updated readOnly: true roles: type: array readOnly: true items: $ref: '#/components/schemas/WorkflowRoleModel' approvals: type: object properties: state: type: string example: in_progress description: The state of the approvals. enum: - not_started - in_progress - completed - not_applicable readOnly: true signatures: type: object properties: state: type: string example: in_progress description: The state of the signatures. enum: - not_started - in_progress - complete - not_applicable readOnly: true url: type: string example: https://na1.ironcladapp.com/public/api/v1/workflows/6dac47a10b1242d1f7df688d/signatures description: The url where signature information is located if it exists. readOnly: true recordIds: type: array items: type: string example: 715f1e37-292f-4e6c-8b48-c07e1b68bccd description: Ids of records created by the workflow. readOnly: true isRevertibleToReview: type: boolean example: false description: Displays if the launched workflow can be reverted back to the review step. readOnly: true WorkflowLaunchModel: description: Note that `creator` is required when launching with a legacy bearer token but will be ignored when launching via an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or 'x-as-user-email` header will be used. type: object additionalProperties: false properties: template: $ref: '#/components/schemas/WorkflowTemplateIdModel' attributes: $ref: '#/components/schemas/AttributesModel' creator: $ref: '#/components/schemas/CreatorModel' required: - attributes - template WorkflowLaunchMultipartModel: description: Note that `creator` is required when launching with a legacy bearer token but will be ignored when launching via an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or 'x-as-user-email` header will be used. type: object additionalProperties: true properties: data: type: object properties: template: $ref: '#/components/schemas/WorkflowTemplateIdModel' attributes: $ref: '#/components/schemas/AttributesModel' creator: $ref: '#/components/schemas/CreatorModel' required: - template - attribute WorkflowResponseModel: type: object description: The response from a successful workflow retrieval. additionalProperties: false properties: id: type: string example: 6013609108b8f070cee94fc1 ironcladId: type: string example: IC-1 title: type: string example: Consulting Agreement with Jane Doe template: type: string example: 600b296c3e15a234ab88f884 step: type: string example: Review schema: type: object properties: counterpartyName: type: object properties: type: type: string example: string displayName: type: string example: Example String Attribute propertyKey: description: The unique identifier for the property. type: string example: counterpartyName readOnly: description: Determines whether the property's value can be updated. type: boolean example: true amount: type: object properties: type: type: string example: number displayName: type: string example: Example Number Attribute propertyKey: description: The unique identifier for the property. type: string example: amount readOnly: description: Determines whether the property's value can be updated. type: boolean example: false fee: type: object properties: type: type: string example: monetaryAmount displayName: type: string example: Example Monetary Amount Attribute propertyKey: description: The unique identifier for the property. type: string example: fee readOnly: description: Determines whether the property's value can be updated. type: boolean example: false draft: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: document displayName: type: string example: Example Document Attribute lineItems: type: object properties: type: type: string example: array elementType: type: object properties: type: type: string example: object displayName: type: string example: Example Object Attribute schema: type: object properties: childAttribute: type: object properties: type: type: string example: string displayName: $ref: '#/components/schemas/AttributeStringModel' anotherChildAttribute: type: object properties: type: type: string enum: - string displayName: $ref: '#/components/schemas/AttributeStringModel' numberAttribute: type: object properties: type: type: string enum: - number number: $ref: '#/components/schemas/AttributeNumberModel' attributes: type: object properties: counterpartyName: type: string example: Boba Fett amount: type: integer example: 123 default: 0 fee: type: object properties: currency: type: string example: USD amount: type: integer example: 50000 default: 0 draft: type: array items: $ref: '#/components/schemas/WorkflowDocumentModel' localLinkedRecord: $ref: '#/components/schemas/LinkedRecordAttributeModel' localParentRecord: $ref: '#/components/schemas/ParentRecordAttributeModel' localChildRecord: $ref: '#/components/schemas/ChildRecordAttributeModel' isCancelled: type: boolean example: false default: true isComplete: type: boolean example: false default: true status: type: string enum: - active - completed - cancelled - paused example: active creator: type: object properties: id: type: string example: 63d415e0dd0d828c3a878548 displayName: type: string example: Boba Fett email: type: string example: fett@intergalactic.com title: type: string example: Director username: type: string example: fett@intergalactic.com metadata: type: object example: {} required: - id - displayName - email - title - username - metadata created: type: string example: '2016-11-17T00:37:22.318Z' lastUpdated: type: string example: '2016-11-17T00:37:22.318Z' roles: type: array items: type: object properties: id: type: string example: legal displayName: type: string example: Legal assignees: type: array items: type: object properties: userName: type: string example: Boba Fett userId: type: string example: 63d415e0dd0d828c3a878548 email: type: string example: bobafett@example.com required: - userName - userId - email required: - id - displayName - assignees approvals: $ref: '#/components/schemas/WorkflowStateModel' signatures: $ref: '#/components/schemas/WorkflowStateModel' recordIds: type: array items: type: string example: 715f1e37-292f-4e6c-8b48-c07e1b68bccd isRevertibleToReview: type: boolean example: false required: - id - title - template - step - attributes - schema - isCancelled - isComplete - status - created - lastUpdated - roles - approvals - signatures - isRevertibleToReview WorkflowTemplateIdModel: type: string description: The identifier of the workflow template example: 600b296c3e15a234ab88f884 WorkflowDocumentModel: type: object required: - version - versionNumber - filename - key - download properties: version: description: The version ID of the document's latest version type: string example: B1QePArXb versionNumber: description: The latest version number of the document type: number example: 2 filename: description: The name of the document with the extension type: string example: file.pdf key: description: The unique key associated with the document type: string example: rJklwCHQ download: description: The URL to download the document omitting the base URL type: string example: /public/api/v1/workflows/594356b9fbcd7f74006fdf8a/document/rJklwCHQ/download lastModified: description: The timestamp and author of the last modification to the document type: object required: - timestamp properties: timestamp: description: The timestamp of the last modification to the document (ISO 8601 format) type: string example: '2016-11-17T00:37:22.318Z' author: description: The author of the last modification to the document example: type: internal companyName: Stark Industries displayName: Tony Stark email: tony.stark@starkindustries.com userId: 5f0375c4cdc1927a3c5edcd3 $ref: '#/components/schemas/ActivityFeedAuthor' AttributeStringModel: type: string example: Example Value AttributeNumberModel: type: number example: 5 LinkedRecordAttributeModel: type: object description: A linked record attribute value. Contains the record ID and readable ID of the linked record. properties: recordId: type: string description: The UUID of the linked record example: 50cc0690-d3b5-4a0e-a9c0-4e323e409429 readableId: type: string description: The human-readable ID of the linked record example: IC-123 ParentRecordAttributeModel: type: object description: A parent record attribute value. Contains the record ID and readable ID of the parent record. properties: recordId: type: string description: The UUID of the parent record example: 50cc0690-d3b5-4a0e-a9c0-4e323e409430 readableId: type: string description: The human-readable ID of the parent record example: IC-456 ChildRecordAttributeModel: type: object description: A child record attribute value. Contains the record ID and readable ID of the child record. properties: recordId: type: string description: The UUID of the child record example: 50cc0690-d3b5-4a0e-a9c0-4e323e409431 readableId: type: string description: The human-readable ID of the child record example: IC-789 AttributesModel: type: object description: The data that will be used to populate the workflow's fields. Learn more about the various attributes and their associated types by viewing the [Launch a Workflow](https://developer.ironcladapp.com/docs/launch-a-workflow) guide. Your attributes will differ and include more than this simple example. properties: counterpartyName: type: string example: Example Company draft: type: array description: The files for the draft documents of this workflow, please note that we only support `url` for json request and `multipartField` for multipart request items: $ref: '#/components/schemas/FileUploadModel' paperSource: type: string description: Indicate the type of paper source used on a contract that supports both templatized and third party paper functionality. This field is required when there exists a question for selecting paper source on the template enum: - Counterparty paper - Our paper localLinkedRecord: type: string description: The readable ID (e.g. "IC-123") or UUID of the record to link as a related record. example: IC-123 localParentRecord: type: string description: The readable ID (e.g. "IC-456") or UUID of the record to set as the parent record. example: IC-456 localChildRecord: type: string description: The readable ID (e.g. "IC-789") or UUID of the record to set as the child record. example: IC-789 additionalProperties: true required: - counterpartyName FileUploadModel: oneOf: - type: object description: Provide a URL for a file representing the first uploaded version of a counterparty paper. This field is required when the template source is set to third party paper properties: url: type: string example: https://www.law.berkeley.edu/wp-content/uploads/2018/12/Resume-Samples-1.pdf required: - url additionalProperties: false - type: object description: Provide a file with the same key as in the entry in form-data's attachment, for example, we expect a key called properties: file: type: string example: SampleNDA required: - file additionalProperties: false InboundEmailAttachment: title: Inbound Email Attachment description: An attachment on an inbound email type: object required: - filename - download properties: filename: description: The name of the attachment file type: string example: file.pdf download: description: The public API URL to download the attachment (does not include the base URL) type: string example: /public/api/v1/workflows/6013609108b8f070cee94fc1/emails/z_1zgjgjq/attachments/attachmentIdc85d7e3be5d84bf28cebe4591e39c894 content-type: description: The content type of the attachment type: string example: application/pdf documentKey: description: The document key of the associated document when the attachment has been added to the workflow. Will only be present when the "Add to Workflow" button has been clicked on the activity feed item. type: string example: 5xfsCSMmfxkp4C1gKv67l documentVersion: description: The version of the associated document when the attachment has been added to the workflow. Will only be present when the "Add to Workflow" button has been clicked on the activity feed item. type: number example: 1 OutboundEmailAttachment: title: Outbound Email Attachment description: An attachment on an outbound email type: object required: - download - documentKey - documentVersion properties: filename: description: The name of the attachment file type: string example: file.docx download: description: The public API URL to download the attachment (does not include the base URL) type: string example: /public/api/v1/workflows/6013609108b8f070cee94fc1/document/XZ9j0cHGA/download content-type: description: The content type of the attachment type: string example: application/vnd.openxmlformats-officedocument.wordprocessingml.document documentKey: description: The document key of the associated document. type: string example: 5xfsCSMmfxkp4C1gKv67l documentVersion: description: The version of the associated document. type: number example: 1 AddUsersToWorkflowModel: type: boolean description: Must be set to true if mentioning users who are not participants on the workflow. CommentModel: type: object required: - message properties: message: type: string description: The comment text to add, accepts user mentions in the form of <@user_id_or_email>. addUsersToWorkflow: $ref: '#/components/schemas/AddUsersToWorkflowModel' CreatorModel: type: object additionalProperties: false description: The Ironclad user (must be a user in your Ironclad account) to be used for launching the workflow. This is required when using a legacy bearer token but will be ignored when using an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or `x-as-user-email` header will be used. oneOf: - $ref: '#/components/schemas/CreatorEmailModel' - $ref: '#/components/schemas/CreatorIdModel' title: creator CreatorEmailModel: type: object additionalProperties: false description: The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's email address. properties: type: type: string default: email description: The type of value used to identify the user. email: type: string description: The email address of the Ironclad user. example: example@example.com CreatorIdModel: type: object additionalProperties: false description: The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's ID. properties: type: type: string default: id description: The type of value used to identify the user. id: type: string description: The user ID of the Ironclad user. example: abcd1234 ActivityFeedEmail: title: Activity Feed Email description: A email-type item on the workflow activity feed type: object oneOf: - $ref: '#/components/schemas/InboundActivityFeedEmail' - $ref: '#/components/schemas/OutboundActivityFeedEmail' InboundActivityFeedEmail: title: Inbound Activity Feed Email description: An inbound email-type item on the workflow activity feed type: object required: - type - id - emailThreadId - timestamp - author properties: type: description: The type of the email-type activity feed item type: string enum: - inboundEmail id: description: Unique ID of the email-type activity feed item type: string example: ez3cvz95z emailThreadId: description: Unique ID of the email thread type: string example: emailThread498b9193da784477b09454f1d925e26d timestamp: description: The timestamp of the email (ISO8601 format) type: string example: '2022-09-28T19:21:05.034Z' author: $ref: '#/components/schemas/ActivityFeedAuthor' subject: description: The subject line of the email type: string example: 'Re: Contract Review Request - New Jedi Interceptors' body: description: The body of the email (may include control characters) type: string example: 'I''ll review the contract with care, ensuring it aligns with the Jedi Order''s principles. You''ll have my insights soon so we can secure a fleet worthy of peace and balance. May the Force be with you, Obi-Wan Kenobi' attachments: description: The attachments on the email type: array items: $ref: '#/components/schemas/InboundEmailAttachment' OutboundActivityFeedEmail: title: Outbound Activity Feed Email description: An outbound email-type item on the workflow activity feed type: object required: - type - id - timestamp - author properties: type: description: The type of the email-type activity feed item type: string enum: - outboundEmail example: outboundEmail id: description: Unique ID of the email-type activity feed item type: string example: 6372b491abd2adf22f6e13ff timestamp: description: The timestamp of the email (ISO8601 format) type: string example: '2022-09-28T19:21:05.034Z' author: $ref: '#/components/schemas/ActivityFeedAuthor' subject: description: The subject line of the email type: string example: 'Re: Contract Review Request - New Jedi Interceptors' body: description: The body of the email (may include control characters) type: string example: 'I''ll review the contract with care, ensuring it aligns with the Jedi Order''s principles. You''ll have my insights soon so we can secure a fleet worthy of peace and balance. May the Force be with you, Obi-Wan Kenobi' attachments: description: The attachments on the email type: array items: $ref: '#/components/schemas/OutboundEmailAttachment' recipients: description: The recipient email addresses for the email type: array items: type: string format: email example: obiwan@example.com cc: description: The CC email addresses for the email type: array items: type: string format: email example: anakin@example.com emailOpenedTimestamps: description: The timestamps of when the email was opened by each recipient type: array items: type: object required: - email - opened properties: email: description: The email address of the recipient type: string format: email example: mace@example.com opened: description: Whether or not the email was opened by the recipient type: boolean example: true timestamp: description: The timestamp of when the email was opened (ISO 8601 format) type: string example: '2022-09-28T19:21:05.034Z' SignedDocumentResponseModel: type: object oneOf: - $ref: '#/components/schemas/SignedResponse200' - $ref: '#/components/schemas/PartialSignedResponse200' SignedResponse200: type: object properties: workflowId: type: string example: 6dac47a10b1242d1f7df688d title: type: string example: Goldendoodle Adoption Contract signed: $ref: '#/components/schemas/WorkflowDocumentModel' PartialSignedResponse200: type: object properties: workflowId: type: string example: 6dac47a10b1242d1f7df688d title: type: string example: Goldendoodle Adoption Contract signers: type: array items: type: object properties: name: type: string example: Jimothy Kim email: type: string example: jimothykim@example.com roleName: type: string example: Counterparty Signer signatureStatus: $ref: '#/components/schemas/SignatureStatusModel' delegates: type: array items: type: object properties: name: type: string example: Kim Lam email: type: string example: kimlam@example.com partiallySigned: $ref: '#/components/schemas/WorkflowDocumentModel' SignatureStatusModel: title: Signature Status Model type: object properties: status: type: string enum: - pending - sent - signed - declined - viewed BaseSignStatusSigner: title: Base Sign Status Signer type: object properties: name: type: string example: Jane Doe description: The signer's name. email: type: string example: janedoe@example.com description: The signer's email. roleName: type: string example: Counterparty Signer description: The role name associated with the signer. status: type: string enum: - pending - declined - sent - viewed - signed example: pending description: The status of the signer's action on the request. isWetSigned: type: boolean example: false description: Indicates if the document was physically signed by the signer and then uploaded. delegates: type: array items: type: object description: "Signer delegates are individuals who are authorized to sign a document on behalf of the original\ \ signer. \n\n NOTE: Signer delegation is only available with Adobe Sign." properties: name: type: string example: Kim Lam description: The delegate's name. email: type: string example: kimlam@example.com description: The delegate's email. routingOrder: type: integer minimum: -1 example: 1 description: "Indicates the order in which a signer signs when signing is sequential. \n\n NOTE: If a signer signs\ \ with wet signature, their routing order is denoted as -1." required: - name - email - roleName - status SignStatusInternalSigner: title: Sign Status Internal Signer allOf: - $ref: '#/components/schemas/BaseSignStatusSigner' - type: object properties: type: type: string enum: - internal example: internal description: Indicates an internal Ironclad user. userId: type: string example: 63d415e0dd0d828c3a878548 description: The user ID associated with the signer. required: - type SignStatusExternalSigner: title: Sign Status External Signer allOf: - $ref: '#/components/schemas/BaseSignStatusSigner' - type: object properties: type: type: string enum: - external example: external description: Indicates an external signer. required: - type SignStatusModel: title: Sign Status Model type: object properties: signers: type: array items: oneOf: - $ref: '#/components/schemas/SignStatusInternalSigner' - $ref: '#/components/schemas/SignStatusExternalSigner' description: All signers associated with the workflow. routing: type: string enum: - sequential - parallel example: sequential description: Indicates if routing is sequential (signatures collected in order) or parallel (all signers receive request simultaneously). status: type: string enum: - not_sent - sent - action_required - complete example: sent description: 'Indicates the status of the signature request. NOTE: If status is ''action_required,'' that means signature tags are missing for document.' requireSignedDocumentUpload: type: boolean example: false description: Indicates if the document requires a signed document to be uploaded. provider: type: string enum: - Ironclad Clickwrap - Ironclad Signature - Ironclad Signature (Legacy) - DocuSign - Adobe Sign - DropboxSign - Demo - None example: Ironclad Signature description: Indicates the signature provider used for the signature request, if any. scheduledSend: type: object properties: notifyAt: type: string format: date-time description: The ISO8601 timestamp for when the signature request is scheduled to be sent. reminder: type: object description: Reminder configuration, if set. properties: daysBefore: type: integer minimum: 1 maximum: 7 description: Number of days before the scheduled send when the reminder email will be sent. reminderDate: type: string format: date-time description: The computed ISO8601 timestamp when the reminder email will be sent. required: - daysBefore - reminderDate required: - notifyAt description: Present when a signature request is scheduled. Only returned when status is not_sent. InternalAssignment: title: Internal Assignment type: object properties: reason: type: string example: Because I need someone from legal to sign instead. description: The reason for updating the signer. assigned: type: object properties: type: type: string enum: - internal example: internal description: Indicates an internal Ironclad user within the company the workflow was launched from. userId: type: string example: 63d415e0dd0d828c3a878548 description: The user ID associated with the signer. description: Indicates the signer that you want to assign to the given role. required: - type - userId required: - reason - assigned ExternalAssignment: title: External Assignment type: object properties: reason: type: string example: Because I need to send it to a different counterparty signer. description: The reason for updating the signer. assigned: type: object properties: type: type: string enum: - external example: external description: Indicates an external signer. email: type: string example: jane.doe@test.com description: The email associated with the signer you want to assign. name: type: string example: Jane Doe description: The name associated with the signer you want to assign. description: Indicates the signer that you want to assign to the given role. required: - type - email - name required: - reason - assigned NotOnSignStep400: type: object properties: code: type: string enum: - INVALID_STATE message: type: string example: Workflow must be on Sign Step. WorkflowRoleModel: type: object additionalProperties: false properties: id: type: string example: legal displayName: type: string example: Legal assignees: type: array items: $ref: '#/components/schemas/WorkflowRoleAssigneeModel' description: '' WorkflowRoleAssigneeModel: type: object additionalProperties: false properties: userName: type: string example: Boba Fett userId: type: string example: 63d415e0dd0d828c3a878548 email: type: string example: bobafett@example.com description: '' 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 RecordProperties: type: object description: The record properties associated with the record additionalProperties: $ref: '#/components/schemas/RecordPropertyType' 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' EntityProperties: type: object description: The entity properties associated with the entity additionalProperties: $ref: '#/components/schemas/EntityPropertyType' 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' 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 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' 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 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 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 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 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 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 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 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' 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 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 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 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 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 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 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 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 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 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 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 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 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' 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 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 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 CancelAutoRenewalContractAction: type: object required: - type properties: type: type: string description: The action type to run on the contract. enum: - cancelAutoRenewal 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 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 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 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' 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 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' 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' RecordPropertyLinkModel: type: object required: - recordId properties: recordId: type: string example: 17009e0d-z2e9-425d-a85b-1cf152773e49 LinkType: type: string enum: - amendment - obligation description: Identifies the type of relationship this child record has with its parent (e.g. amendment) 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' RollUpConfiguration: type: object required: - amendmentType properties: amendmentType: type: string enum: - replace description: How to amend the property value. Currently only 'replace' is supported. 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 DataExportConfigWorkflowActivities: title: Workflow activities export config type: object additionalProperties: false properties: metadataProperties: type: array items: type: string example: counterpartyName description: Array of available custom metadata properties to include in export. Contact support for assistance on locating your custom metadata properties. includeCommentDetail: type: boolean description: Include comment details in export. DataExportConfigAuditLog: title: Audit log export config type: object additionalProperties: false properties: eventCategories: type: array items: type: string enum: - user_entitlement - integration_errors example: - user_entitlement - integration_errors description: Array of categories of audit log events to include in the export. DataExportRequestModel: type: object additionalProperties: false properties: exportType: type: string example: workflow_activities enum: - workflow_activities - audit_log description: 'string for record type. Example: `workflow_activities`' startDate: type: string example: '2016-11-17T00:37:22.318Z' description: 'Starting date (ISO8601 format) of data to be included in the export. Example: `2016-11-17T00:37:22.318Z`' endDate: type: string example: '2016-11-17T00:37:22.318Z' description: 'Starting date (ISO8601 format) of data to be included in the export. Example: `2016-11-17T00:37:22.318Z`' exportFormat: type: string example: CSV enum: - CSV - JSON description: File format for the export. CSV is the default. signedUrlEnabled: type: boolean description: An optional boolean value to enable a signed url for downloading the exported file. If not provided, defaults to false. exportConfigs: description: 'Each `exportType` may have additional export configurations specific to this type of export. Use one of the following `exportConfigs` schemas:' oneOf: - $ref: '#/components/schemas/DataExportConfigWorkflowActivities' - $ref: '#/components/schemas/DataExportConfigAuditLog' required: - exportType ActivityFeedAuthor: title: Activity Feed Author description: The author of an activity feed item type: object oneOf: - $ref: '#/components/schemas/InternalActivityFeedAuthor' - $ref: '#/components/schemas/ExternalActivityFeedAuthor' - $ref: '#/components/schemas/IntegrationActivityFeedAuthor' - $ref: '#/components/schemas/SystemActivityFeedAuthor' InternalActivityFeedAuthor: title: Internal Activity Feed Author description: An internal author of an activity feed item type: object required: - type - companyName properties: type: description: The type of author type: string enum: - internalUser example: internalUser companyName: description: The company name of the author type: string example: Jabba the Hutt Industries displayName: description: The display name of the author type: string example: Boba Fett email: description: The email of the author type: string example: boba@example.com userId: description: The user ID of the author type: string example: 63d415e0dd0d828c3a878548 ExternalActivityFeedAuthor: title: External Activity Feed Author description: An external author of an activity feed item (typically a counterparty) type: object required: - type - companyName properties: type: description: The type of author type: string enum: - externalUser example: externalUser companyName: description: The company name of the author type: string example: Jedi Order displayName: description: The display name of the author type: string example: Luke Skywalker email: description: The email of the author type: string example: luke@example.com IntegrationActivityFeedAuthor: title: Integration Activity Feed Author description: An integration author of an activity feed item type: object required: - type - displayName properties: type: description: The type of author type: string enum: - integration example: integration displayName: description: The display name of the integration type: string example: Salesforce SystemActivityFeedAuthor: title: System Activity Feed Author description: A system author of an activity feed item type: object required: - type - displayName properties: type: description: The type of author type: string enum: - system example: system displayName: description: The display name of the system type: string enum: - Ironclad example: Ironclad ActivityFeedComment: title: Activity Feed Comment description: A comment-type item on the workflow activity feed type: object required: - id - commentMessage - timestamp - author - mentionedUserDetails - addedParticipants - reactions properties: id: description: Unique ID of the comment-type activity feed item type: string example: 8asdkyrhl commentMessage: description: The comment message type: string example: Do or do not. There is no try. timestamp: description: When the comment was posted (ISO 8601 format) type: string format: date-time example: '2025-01-17T17:51:49.008Z' isExternal: description: Whether the comment was made by an external user type: boolean example: false author: $ref: '#/components/schemas/ActivityFeedAuthor' repliedTo: description: The comment that this comment is a reply to type: object required: - item - itemAuthor properties: item: description: The ID of the comment that this comment is a reply to type: string example: uwshlxaa2 itemAuthor: $ref: '#/components/schemas/ActivityFeedAuthor' mentionedUserDetails: description: The users mentioned in the comment type: array items: type: object required: - id - displayName - email properties: id: description: The user ID of the mentioned user type: string example: 63d415e0dd0d828c3a878548 displayName: description: The display name of the mentioned user type: string example: Yoda email: description: The email of the mentioned user type: string example: yoda@example.com addedParticipants: description: The users added to the workflow by the comment type: array items: description: The user display name of the added participant type: string example: Obi-Wan Kenobi reactions: description: The emoji reactions to the comment type: array items: type: object required: - emojiId - reactors properties: emojiId: description: The ID of the emoji reaction type: string example: joy reactors: description: The users who reacted with the particular emoji type: array items: $ref: '#/components/schemas/ActivityFeedAuthor' WorkflowStateModel: type: object oneOf: - properties: state: type: string enum: - not_started example: not_started required: - state - properties: state: type: string enum: - completed example: completed required: - state - properties: state: type: string enum: - in_progress example: in_progress url: type: string example: https://na1.ironcladapp.com/public/api/v1/workflows/22e2ff72-56a1-4711-a4ca-41328d311e9f/approvals required: - state - url - properties: state: type: string enum: - not_applicable example: not_applicable message: type: string example: This workflow has been cancelled required: - state - message WebhookEvent: type: string description: Events that can be subscribed to using a webhook. example: workflow_launched enum: - '*' - workflow_launched - workflow_updated - workflow_cancelled - workflow_completed - workflow_approval_status_changed - workflow_attribute_updated - workflow_comment_added - workflow_comment_removed - workflow_comment_updated - workflow_comment_reaction_added - workflow_comment_reaction_removed - workflow_counterparty_invite_sent - workflow_counterparty_invite_revoked - workflow_documents_added - workflow_documents_removed - workflow_documents_updated - workflow_documents_renamed - workflow_document_edited - workflow_changed_turn - workflow_paused - workflow_resumed - workflow_signature_packet_cancelled - workflow_signature_packet_document_moved - workflow_signature_packet_fully_signed - workflow_signature_packet_sent - workflow_signature_packet_signatures_collected - workflow_signature_packet_signer_first_viewed - workflow_signature_packet_signer_viewed - workflow_signature_packet_uploaded - workflow_signer_added - workflow_signer_removed - workflow_signer_reassigned - workflow_step_updated - workflow_roles_assigned - record_contract_status_changed WebhookModel: description: Webhook object describing the subscribed events and target URL to be called. type: object required: - id - events - targetURL - companyId - status - consecutiveFailureCount properties: id: description: Unique ID of the webhook type: string example: 5928719b30182d3700364a74 events: description: Array of events to which webhook is subscribed to. type: array minItems: 1 items: $ref: '#/components/schemas/WebhookEvent' targetURL: description: Target URL to which the webhook is called. type: string format: https-url example: https://develop.ironcladapp.com companyId: description: Unique ID of the Ironclad company instance to which the webhook belongs to. type: string example: 5928719b30182d3700364a74 status: description: The status of the webhook. If the status is `disabled`, the webhook will not be triggered. type: string enum: - enabled - disabled - disabledBySystem example: enabled statusLastUpdatedAt: description: The timestamp of the most recent status change in ISO 8601 format. type: string format: date-time example: '2025-01-17T17:51:49.008Z' statusLastUpdatedBy: description: The user or system ID that made the most recent status change. type: string example: system consecutiveFailureCount: description: The number of consecutive failed deliveries of the webhook. After a certain number of consecutive failures over a certain period of time, the webhook will be disabled. See [more](https://developer.ironcladapp.com/reference/webhook-deactivation). type: number example: 0 firstConsecutiveFailure: description: The timestamp of the first consecutive failure of the webhook in ISO 8601 format. type: string format: date-time example: '2025-01-17T17:51:49.008Z' WebhookInvalidEventTypeBadRequestResponse: type: object properties: code: type: string example: INVALID_PARAM message: type: string example: invalid event type; *, workflow_launched, workflow_updated, workflow_cancelled, workflow_completed, workflow_approval_status_changed, workflow_attribute_updated, workflow_changed_turn, workflow_comment_reaction_added, workflow_comment_reaction_removed, workflow_comment_added, workflow_comment_removed, workflow_comment_updated, workflow_counterparty_invite_sent, workflow_counterparty_invite_revoked, workflow_documents_added, workflow_documents_removed, workflow_documents_updated, workflow_documents_renamed, workflow_document_edited, workflow_paused, workflow_resumed, workflow_signature_packet_sent, workflow_signature_packet_uploaded, or workflow_signature_packet_cancelled, workflow_signer_added, workflow_signer_removed, workflow_signer_reassigned are acceptable event types param: type: string example: events WebhookTargetURLExistsBadRequestResponse: type: object properties: code: type: string enum: - INVALID_PARAM message: type: string example: webhook already exists for event workflow_completed and target [SOME_EXISTING_TARGET_URL] param: type: string example: tagetURL WorkflowAsyncLaunchSuccessResponse: type: object additionalProperties: false properties: status: type: string default: success description: '' readOnly: true title: '' requestPayload: $ref: '#/components/schemas/WorkflowLaunchModel' workflowUrls: type: object properties: browserUrl: type: string example: http://na1.ironcladapp.com/workflows/6013609108b8f070cee94fc1 description: The URL for accessing the workflow in a browser. readOnly: true title: '' apiUrl: type: string example: http://na1.ironcladapp.com/public/api/v1/workflows/6013609108b8f070cee94fc1 description: The URL for accessing workflow data via the REST API. readOnly: true title: '' description: '' readOnly: true title: '' workflow: $ref: '#/components/schemas/LaunchedWorkflow' required: - status - requestPayload - workflowUrls - workflow readOnly: true description: Response for a successfully asynchronously launched workflow. WorkflowAsyncLaunchFailedResponse: type: object additionalProperties: false properties: status: type: string default: failed description: '' readOnly: true title: '' requestPayload: $ref: '#/components/schemas/WorkflowLaunchModel' error: type: object additionalProperties: true description: An error object indicating why the workflow failed to launch. readOnly: true title: '' properties: code: type: string enum: - MISSING_PARAM - INVALID_PARAM - NOT_FOUND - FORBIDDEN - UNAUTHORIZED - DEPRECATED - SERVER_ERROR - NOT_IMPLEMENTED - NOT_ALLOWED - INVALID_STATE - CONTENT_UNAVAILABLE - CONFLICT - BAD_GATEWAY - TOO_MANY_REQUESTS example: MISSING_PARAM readOnly: true description: A status code to identify why the workflow cannot be launched. title: '' message: type: string example: missing required attribute readOnly: true description: A message indicating why the workflow cannot be launched. title: '' param: type: string example: counterpartyName readOnly: true description: The required or expected parameter(s) that is missing or invalid and preventing the workflow from being launched. title: '' redirectUrl: type: string example: https://na1.ironcladapp.com/c/6013609108c8f050cee94fc1/workflows/launch/600b296c3e15a234ab88f884 description: The URL for accessing the launch form to complete the workflow launch. readOnly: true title: '' required: - status - requestPayload - error readOnly: true description: '' title: Workflow Launch Failed WorkflowAsyncInProgressResponse: type: object additionalProperties: false properties: status: type: string default: in_progress description: '' readOnly: true title: '' requestPayload: $ref: '#/components/schemas/WorkflowLaunchModel' required: - status - requestPayload readOnly: true description: '' title: Workflow Launch In Progress WorkflowSchemasResponseRequiredField: type: string enum: - always - never - conditional description: Indicates whether the field is required. Possible values are 'always', 'never', or 'conditional'. Conditional properties are either gated by a condition on the workflow template, or appear multiple times in the workflow and are only sometimes required. example: always WorkflowSchemasResponseOptionsField: type: object properties: values: type: array items: type: string description: An array of choices for dropdowns or multiple-choice questions. Each item represents a valid option. If there are multiple instances of the same property, the options will be combined. example: - Option 1 - Option 2 - Option 3 freeTextAllowed: type: boolean description: Indicates if a free text input is allowed in addition to the dropdown choices. example: true required: - values - freeTextAllowed description: Defines the options for a field, including dropdown choices and whether free text input is allowed. example: values: - Option 1 - Option 2 - Option 3 freeTextAllowed: true WorkflowSchemasResponseDefaultField: oneOf: - type: string description: A string value from fields such as text inputs, dropdowns, emails, or dates. example: croissant - type: boolean description: A boolean value. example: true - type: number description: A numeric value. example: 123 - type: object description: An object value from fields such as monetary fields, addresses, or durations. example: currency: USD amount: 111.11 - type: array description: An array value from fields such as tables. items: type: object description: An object representing an item in the list. Contains key value pairs of properties from the table additionalProperties: oneOf: - type: string description: A string table value. - type: number description: A numeric table value. - type: boolean description: A boolean table value. - type: object description: A nested object table value. example: dynamicProperty43526af6c7694df7acbaff71a7b1c79f: '2025-04-11T04:00:00.000Z' dynamicPropertyb6896dbbe6bb4186aea01d3a03e75f05: test@email.test example: - dynamicProperty43526af6c7694df7acbaff71a7b1c79f: '2025-04-11T04:00:00.000Z' dynamicPropertyb6896dbbe6bb4186aea01d3a03e75f05: test@email.test description: Defines the available default value for a field. In the case of multiple instances of the same property, the last evaluated default will be used. example: currency: USD amount: 111.11 WorkflowSchemasLinkedRecordAttribute: type: object description: A linked record schema attribute. properties: type: type: string example: linkedRecord displayName: type: string example: Example Linked Record required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' schema: type: object description: 'Reserved for record property metadata. Currently returned as { properties: { type: ''object'', displayName: ''properties'', schema: {} } }.' example: properties: type: object displayName: properties schema: {} WorkflowSchemasParentRecordAttribute: type: object description: A parent record schema attribute. properties: type: type: string example: parentRecord displayName: type: string example: Example Parent Record required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' schema: type: object description: 'Reserved for record property metadata. Currently returned as { properties: { type: ''object'', displayName: ''properties'', schema: {} } }.' example: properties: type: object displayName: properties schema: {} WorkflowSchemasChildRecordAttribute: type: object description: A child record schema attribute. The referenced record must not already have a parent. properties: type: type: string example: childRecord displayName: type: string example: Example Child Record required: $ref: '#/components/schemas/WorkflowSchemasResponseRequiredField' schema: type: object description: 'Reserved for record property metadata. Currently returned as { properties: { type: ''object'', displayName: ''properties'', schema: {} } }.' example: properties: type: object displayName: properties schema: {} 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 BadRequestErrorWorkflowLaunch: 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 workflow cannot be launched. title: '' message: type: string example: missing required attribute readOnly: true description: A message indicating why the workflow cannot be launched. title: '' param: type: string example: counterpartySignerTitle readOnly: true description: The required or expected parameter(s) that may be missing in order to launch the workflow. title: '' required: - code - message - param readOnly: true description: '' title: Bad Request Error - Workflow Launch 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 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 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 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 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 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 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] 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] WorkflowNotFound: type: object description: Workflow ID Not Found Request Error title: Not Found Error - Workflow ID Not Found properties: code: type: string example: NOT_FOUND message: type: string example: workflow does not exist param: type: string example: workflowId EmailNotFound: type: object description: Email ID Not Found Request Error title: Bad Request Error - Email ID Not Found properties: code: type: string example: NOT_FOUND message: type: string example: emailThreadId does not exist param: type: string example: emailThreadId AttachmentNotFound: type: object description: attachmentId Not Found Request Error title: Bad Request Error - attachmentId Not Found properties: code: type: string example: NOT_FOUND message: type: string example: attachmentId does not exist param: type: string example: attachmentId EntityModel: type: object properties: id: type: string description: The unique identifier of the entity example: 123e4567-e89b-12d3-a456-426614174000 ironcladId: type: string description: The unique Ironclad identifier of the entity example: ENTITY-1 name: type: string description: The name of the entity example: Ironclad, Inc. status: type: string description: The status of the entity example: active lastUpdated: type: string description: The last updated date of the entity example: '2021-01-01T00:00:00Z' properties: $ref: '#/components/schemas/RecordProperties' namedTypeIds: type: array description: The unique identifiers of the relationship types associated with the entity items: type: string example: 43d3e321-e89b-12d3-a456-426614174000 parentId: type: string description: The unique identifier of the parent entity example: 123e4567-e89b-12d3-a456-426614174001 required: - id - ironcladId - name - status - lastUpdated - properties ObligationModel: type: object properties: id: description: The unique identifier of the obligation type: string example: 123e4567-e89b-12d3-a456-426614174000 ironcladId: description: Readable Ironclad ID of the obligation type: string example: OB-1 name: description: The name of the obligation type: string example: Obligation XYZ properties: $ref: '#/components/schemas/RecordProperties' lastUpdated: description: The last updated date of the obligation type: string example: '2021-01-01T00:00:00Z' namedTypeIds: description: The unique identifiers of the types associated with the obligation. These IDs are tied with the Named Type of obligations, like 'Breach Notice', 'Compliance' and so on. type: array items: type: string example: eda20988-6b99-404b-99dc-866b84b63883 parentReadableId: description: The parent readable id of the obligation type: string example: IC-1 parentRecordName: description: The parent record name of the obligation type: string example: Parent Record required: - id - ironcladId - name - properties RelationshipTypeKey: description: The key of the relationship type to be added to the entity. The key must match a valid relationship type in the company settings. The key is displayed on the relationship types page in Data Manager and is always a single word without spaces that starts with a lowercase. For now, only one relationship type can be added or updated per entity. More info on relationship types can be found in the [Entity Relationship Types](https://support.ironcladapp.com/hc/en-us/articles/28005038398231-Create-Manage-Relationship-Types-and-Entity-Properties) article. type: array items: type: string minLength: 1 ObligationTypeKey: description: The key of the obligation type to be added to the obligation. Only one obligation type can be added or updated per obligation, currently. More info on obligation types can be found in the [Obligation Types](https://support.ironcladapp.com/hc/en-us/articles/31128654301079-Create-and-Manage-Obligations) article. type: array items: type: string maxItems: 1 minItems: 1 responses: WebhookCreateResponse400: description: Bad request error when creating webhook. content: application/json: schema: oneOf: - $ref: '#/components/schemas/WebhookInvalidEventTypeBadRequestResponse' - $ref: '#/components/schemas/WebhookTargetURLExistsBadRequestResponse' AttachmentDeleteResponse404: description: Bad request error when deleting attachment. content: application/json: schema: oneOf: - $ref: '#/components/schemas/BadRequestErrorRecordIDNotFound' - $ref: '#/components/schemas/BadRequestErrorRecordAttachmentIDNotFound' CommentNotFoundResponse404: description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: commentId does not exist param: type: string example: commentId WorkflowLaunchResponse200: description: Launched Workflow Response. content: application/json: schema: $ref: '#/components/schemas/LaunchedWorkflow' WorkflowLaunchResponse400: description: Error Launching Workflow. content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorWorkflowLaunch' ContractActionResponse400: description: Bad input for contract action content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorContractAction' AsyncWorkflowLaunchResponse200: description: The response of the initiated async workflow launch. content: application/json: schema: type: object additionalProperties: false properties: asyncJobId: type: string example: jobIda89474a8ba364f79bb510517d7bd3fea readOnly: true description: '' title: '' asyncJobStatusUrl: type: string example: http://na1.ironcladapp.com/public/api/v1/workflows/async/jobIda89474a8ba364f79bb510517d7bd3fea readOnly: true description: '' title: '' required: - asyncJobId - asyncJobStatusUrl description: '' title: '' AsyncWorkflowStatusResponse200: description: The status of the workflow launch. content: application/json: schema: type: object additionalProperties: false description: The current status of the launch workflow job. oneOf: - $ref: '#/components/schemas/WorkflowAsyncLaunchSuccessResponse' - $ref: '#/components/schemas/WorkflowAsyncLaunchFailedResponse' - $ref: '#/components/schemas/WorkflowAsyncInProgressResponse' readOnly: true title: Workflow Launch Status EmailsResponse200: description: GET Emails Response. content: application/json: schema: type: object properties: page: type: integer example: 0 default: 0 pageSize: type: integer example: 20 default: 20 count: type: integer example: 1 list: type: array items: $ref: '#/components/schemas/ActivityFeedEmail' EmailResponse200: description: GET Email Response content: application/json: schema: $ref: '#/components/schemas/ActivityFeedEmail' SignedDocumentResponse200: description: POST Signed Documents Response content: application/json: schema: $ref: '#/components/schemas/SignedDocumentResponseModel' 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' WorkflowNotFoundResponse404: description: 404 not found content: application/json: schema: $ref: '#/components/schemas/WorkflowNotFound' WorkflowOrEmailNotFoundResponse404: description: 404 not found content: application/json: schema: oneOf: - $ref: '#/components/schemas/WorkflowNotFound' - $ref: '#/components/schemas/EmailNotFound' ObjectNotFoundResponse404: description: 404 not found content: application/json: schema: oneOf: - $ref: '#/components/schemas/WorkflowNotFound' - $ref: '#/components/schemas/EmailNotFound' - $ref: '#/components/schemas/AttachmentNotFound' WorkflowUpdateResponse204: description: '204' content: application/json: schema: type: object properties: {} 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 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 ForbiddenError403: description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden NotFoundError404: description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: not found parameters: WorkflowId: name: id in: path description: The unique identifier of a workflow schema: type: string required: true WorkflowOrIroncladId: name: id in: path description: The unique identifier or Ironclad ID of a workflow. schema: type: string required: true 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 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 QuerySortDirection: name: sortDirection in: query description: The direction to sort by. Default is 'DESC'. schema: type: string enum: - ASC - DESC default: DESC QuerySortField: name: sortField in: query description: The field to sort by. Default is 'name'. schema: type: string enum: - name - lastUpdated default: name 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 WorkflowFilter: name: filter in: query description: "Filter workflows using a formula. The workflow attribute ID should be enclosed in brackets `[ ]` and the\ \ value should be enclosed in single quotes `' '`.\n\nWorkflow attributes for a specific workflow design can be identified\ \ using the [List All Workflow Schemas](https://developer.ironcladapp.com/reference/list-all-workflow-schemas) endpoint.\n\ \nSupported formula operations include the following with documentation found [here](/reference/filter-query-param):\n\ \n" schema: type: string example: Equals([counterpartyName], 'Harley Quinn') 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') EntityFilter: name: filter in: query description: "Filter entities using a formula. The entity property ID should be enclosed in brackets `[ ]` and the value\ \ should be enclosed in single quotes `' '`. \n\nEntity properties can be identified using the [Get All Entity Relationship\ \ Types](https://developer.ironcladapp.com/reference/get-all-entity-relationship-types) endpoint.\n\nSupported formula\ \ operations include the following with documentation found [here](/reference/filter-query-param):\n\n" schema: type: string example: Equals([entity_externalID], '1234567890') ObligationFilter: name: filter in: query description: "Filter obligations using a formula. The obligation property ID should be enclosed in brackets `[ ]` and\ \ the value should be enclosed in single quotes `' '`. \n\nSupported formula operations include the following with\ \ documentation found [here](/reference/filter-query-param):\n\n" schema: type: string example: Equals([name], 'Obligation Name') 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 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 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 addressAsObject: name: addressAsObject in: query description: When true, returns addresses as objects instead of strings. schema: type: boolean default: false UseDefaultValuesOnLaunch: name: useDefaultValues in: query description: If values are not specified for a given field, use the default values specified in the launch form configuration. schema: type: boolean default: false EmailThreadId: name: emailThreadId in: path description: The unique identifier of an email thread schema: type: string required: true WebhookId: name: id in: path description: The unique identifier of the webhook schema: type: string required: true requestBodies: WorkflowLaunch: content: application/json: schema: $ref: '#/components/schemas/WorkflowLaunchModel' multipart/form-data: schema: $ref: '#/components/schemas/WorkflowLaunchMultipartModel' encoding: data: contentType: application/json multipartField: contentType: application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document DataExportRequest: content: application/json: schema: $ref: '#/components/schemas/DataExportRequestModel' securitySchemes: sec0: type: apiKey in: header name: Authorization x-bearer-format: bearer OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://na1.ironcladapp.com/oauth/authorize tokenUrl: https://na1.ironcladapp.com/oauth/token scopes: public.records.createRecords: Create Records public.records.readRecords: Read Records public.records.updateRecords: Update Records public.records.deleteRecords: Delete Records public.records.readSchemas: Read Record Schemas public.records.createAttachments: Create Record Attachments public.records.readAttachments: Read Record Attachments public.records.deleteAttachments: Delete Record Attachments public.records.createSmartImportRecords: Create Records via Smart Import public.records.readSmartImportRecords: Read Record Import Details from Smart Import public.records.applyContractAction: Apply Contract Actions public.webhooks.createWebhooks: Create Webhooks public.webhooks.readWebhooks: Read Webhooks public.webhooks.updateWebhooks: Update Webhooks public.webhooks.deleteWebhooks: Delete Webhooks public.workflows.createWorkflows: Create Workflows public.workflows.readWorkflows: Read Workflows public.workflows.updateWorkflows: Update Workflows public.workflows.readApprovals: Read Workflow Approvals public.workflows.updateApprovals: Update Workflow Approvals public.workflows.readSignatures: Read Workflow Signatures public.workflows.uploadSignedDocuments: Upload Signed Workflow Documents public.workflows.readParticipants: Read Workflow Participants public.workflows.readRoleAssignees: Read Workflow Role Eligible Assignees public.workflows.updateRoleAssignment: Update Workflow Role Assignment public.workflows.revertToReview: Revert Workflows to Review public.workflows.cancel: Cancel Workflows public.workflows.pauseAndResume: Resume and Pause Workflows public.workflows.createComments: Create Workflow Comments public.workflows.readComments: Read Workflow Comments public.workflows.createDocuments: Create Workflow Documents public.workflows.readDocuments: Read Workflow Documents public.workflows.updateSignaturePacket: Update Signature Packet public.workflows.readSchemas: Read Workflow Schemas public.workflows.readTurnHistory: Read Workflow Turn History public.workflows.readEmailCommunications: Read Workflow Email Communications public.workflows.readSignStatus: Read Sign Status public.records.createComments: Create Workflow Comments public.export.createReports: Create Reports public.export.readReports: Read Reports public.workflows.createSignatureRecipientUrls: Create Signature Request Recipient URLs public.workflows.createEmbeddableSignerUrls: Create Embeddable Signature Request Recipient URLs public.workflows.sendSignatureRequests: Send Signature Requests public.workflows.cancelSignatureRequests: Cancel Signature Requests public.workflows.deleteSigners: Delete Signers public.workflows.remindSigners: Remind Signers public.workflows.updateSigners: Update Signers public.entities.readRelationshipTypes: Read Relationship Types public.entities.updateEntities: Update Entities public.entities.deleteEntities: Delete Entities public.entities.createEntities: Create Entities public.entities.readEntities: Read Entities public.obligations.readObligations: Read Obligations public.obligations.createObligations: Create Obligations public.obligations.updateObligations: Update Obligations public.obligations.deleteObligations: Delete Obligations public.workflows.scheduleSendSignatureRequest: Schedule Send Signature Request public.workflows.updateScheduledSignatureRequest: Update Scheduled Signature Request public.workflows.deleteScheduledSignatureRequest: Delete Scheduled Signature Request public.search.conversational: Run Conversational agent Search clientCredentials: tokenUrl: https://na1.ironcladapp.com/oauth/token scopes: public.records.createRecords: Create Records public.records.readRecords: Read Records public.records.updateRecords: Update Records public.records.deleteRecords: Delete Records public.records.readSchemas: Read Record Schemas public.records.createAttachments: Create Record Attachments public.records.readAttachments: Read Record Attachments public.records.deleteAttachments: Delete Record Attachments public.records.createSmartImportRecords: Create Records via Smart Import public.records.readSmartImportRecords: Read Record Import Details from Smart Import public.records.applyContractAction: Apply Contract Actions public.webhooks.createWebhooks: Create Webhooks public.webhooks.readWebhooks: Read Webhooks public.webhooks.updateWebhooks: Update Webhooks public.webhooks.deleteWebhooks: Delete Webhooks public.workflows.createWorkflows: Create Workflows public.workflows.readWorkflows: Read Workflows public.workflows.updateWorkflows: Update Workflows public.workflows.readApprovals: Read Workflow Approvals public.workflows.updateApprovals: Update Workflow Approvals public.workflows.readSignatures: Read Workflow Signatures public.workflows.uploadSignedDocuments: Upload Signed Workflow Documents public.workflows.readParticipants: Read Workflow Participants public.workflows.readRoleAssignees: Read Workflow Role Eligible Assignees public.workflows.updateRoleAssignment: Update Workflow Role Assignment public.workflows.revertToReview: Revert Workflows to Review public.workflows.cancel: Cancel Workflows public.workflows.pauseAndResume: Resume and Pause Workflows public.workflows.createComments: Create Workflow Comments public.workflows.readComments: Read Workflow Comments public.workflows.createDocuments: Create Workflow Documents public.workflows.readDocuments: Read Workflow Documents public.workflows.updateSignaturePacket: Update Signature Packet public.workflows.readSchemas: Read Workflow Schemas public.workflows.readTurnHistory: Read Workflow Turn History public.workflows.readEmailCommunications: Read Workflow Email Communications public.records.createComments: Create Workflow Comments public.export.createReports: Create Reports public.export.readReports: Read Reports public.workflows.createSignatureRecipientUrls: Create Signature Request Recipient URLs public.workflows.createEmbeddableSignerUrls: Create Embeddable Signature Request Recipient URLs public.workflows.sendSignatureRequests: Send Signature Requests public.workflows.cancelSignatureRequests: Cancel Signature Requests public.workflows.deleteSigners: Delete Signers public.workflows.remindSigners: Remind Signers public.workflows.updateSigners: Update Signers public.entities.readRelationshipTypes: Read Relationship Types public.entities.updateEntities: Update Entities public.entities.deleteEntities: Delete Entities public.entities.createEntities: Create Entities public.entities.readEntities: Read Entities public.obligations.readObligations: Read Obligations public.obligations.createObligations: Create Obligations public.obligations.updateObligations: Update Obligations public.obligations.deleteObligations: Delete Obligations public.workflows.scheduleSendSignatureRequest: Schedule Send Signature Request public.workflows.updateScheduledSignatureRequest: Update Scheduled Signature Request public.workflows.deleteScheduledSignatureRequest: Delete Scheduled Signature Request tags: - name: Workflows description: Documentation on Ironclad Workflows. - name: Records description: Documentation on Ironclad Records. - name: Entities description: Documentation on Ironclad Entities. - name: Obligations description: Documentation on Ironclad Obligations. - name: Webhooks description: Documentation on Ironclad Webhooks. - name: Exports description: Documentation on Ironclad Data Exports. - name: Search description: Documentation on Ironclad Search. x-readme: headers: [] explorer-enabled: true proxy-enabled: true samples-languages: - curl - node - ruby - javascript - python