openapi: 3.1.0 info: title: Ironclad OAuth 2.0 Authorization Workflows API description: Documentation for Ironclad's OAuth 2.0 Implementation. More details on the [OAuth 2.0 specification](https://datatracker.ietf.org/doc/html/rfc6749). version: '1' contact: name: Ironclad Support email: support@ironcladapp.com servers: - url: https://na1.ironcladapp.com/oauth description: Production server - url: https://eu1.ironcladapp.com/oauth description: EU Production server - url: https://demo.ironcladapp.com/oauth description: Demo server tags: - name: Workflows description: Documentation on Ironclad Workflows. 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 components: schemas: 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. 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 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 AddUsersToWorkflowModel: type: boolean description: Must be set to true if mentioning users who are not participants on the workflow. 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 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 NotOnSignStep400: type: object properties: code: type: string enum: - INVALID_STATE message: type: string example: Workflow must be on Sign Step. 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: '' 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 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 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 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 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 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' 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 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' 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 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' 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 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 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 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: {} SignatureStatusModel: title: Signature Status Model type: object properties: status: type: string enum: - pending - sent - signed - declined - viewed 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 SignedDocumentResponseModel: type: object oneOf: - $ref: '#/components/schemas/SignedResponse200' - $ref: '#/components/schemas/PartialSignedResponse200' 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: '' 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 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 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 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 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' 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 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 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 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' 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 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 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 WorkflowTemplateIdModel: type: string description: The identifier of the workflow template example: 600b296c3e15a234ab88f884 AttributeStringModel: type: string example: Example Value 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: {} 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' 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 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 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' AttributeNumberModel: type: number example: 5 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 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: {} 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 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. SignedResponse200: type: object properties: workflowId: type: string example: 6dac47a10b1242d1f7df688d title: type: string example: Goldendoodle Adoption Contract signed: $ref: '#/components/schemas/WorkflowDocumentModel' 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' 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 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 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 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 responses: BadRequestError400: description: '400' content: application/json: schema: type: object properties: code: type: string example: MISSING_PARAM message: type: string example: reason why something has gone wrong param: type: string example: parameter identifier ObjectNotFoundResponse404: description: 404 not found content: application/json: schema: oneOf: - $ref: '#/components/schemas/WorkflowNotFound' - $ref: '#/components/schemas/EmailNotFound' - $ref: '#/components/schemas/AttachmentNotFound' NotFoundError404: description: '404' content: application/json: schema: type: object properties: code: type: string example: NOT_FOUND message: type: string example: not found 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' WorkflowLaunchResponse400: description: Error Launching Workflow. content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorWorkflowLaunch' WorkflowOrEmailNotFoundResponse404: description: 404 not found content: application/json: schema: oneOf: - $ref: '#/components/schemas/WorkflowNotFound' - $ref: '#/components/schemas/EmailNotFound' 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 WorkflowUpdateResponse204: description: '204' content: application/json: schema: type: object properties: {} SignedDocumentResponse200: description: POST Signed Documents Response content: application/json: schema: $ref: '#/components/schemas/SignedDocumentResponseModel' 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 WorkflowNotFoundResponse404: description: 404 not found content: application/json: schema: $ref: '#/components/schemas/WorkflowNotFound' 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 EmailResponse200: description: GET Email Response content: application/json: schema: $ref: '#/components/schemas/ActivityFeedEmail' WorkflowLaunchResponse200: description: Launched Workflow Response. content: application/json: schema: $ref: '#/components/schemas/LaunchedWorkflow' ForbiddenError403: description: '403' content: application/json: schema: type: object properties: code: type: string example: FORBIDDEN message: type: string example: access forbidden 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: '' parameters: 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') 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 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 WorkflowOrIroncladId: name: id in: path description: The unique identifier or Ironclad ID of a workflow. schema: type: string required: true 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 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 WorkflowId: name: id in: path description: The unique identifier of a workflow schema: type: string required: true 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 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 x-readme: headers: [] explorer-enabled: true proxy-enabled: true samples-languages: - curl - node - ruby - javascript - python