Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://ironcladapp.com/public/api/v1
https://eu1.ironcladapp.com/public/api/v1
https://demo.ironcladapp.com/public/api/v1
https://preview.ironcladapp.com/public/api/v1
/records
View all records in the company, with filtering available via query parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| optional | ||||
| optional | ||||
| optional | ||||
| optional | ||||
| optional | ||||
| sortField | query | optional | string | The field to sort Records. Only one field is supported in the sort operation. |
| sortDirection | query | optional | string | The direction the records are sorted by in correlation with the `sortField`. |
GET /records
/records
Create a contract record by specifying its intended metadata properties
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RecordsCreateRecordRequest"
}
}
}
}
POST /records
/records/export
Export a records report with filtering available via query parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| types | query | optional | string | Comma separated list of record types to export. Example: `mutualNDA,NDA` |
| properties | query | optional | string | IDs of properties to export, comma separated. Example: `counterpartyName,agreementDate` |
GET /records/export
/records/metadata
View the schema associated with contract records, including available record types and metadata properties.
GET /records/metadata
/records/smart-import
Retrieve status of predictions of specific smart import record or all records in an import, one of Record Id or Import Id is required.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| recordId | query | optional | string | The ID of the Record for prediction status. |
| importId | query | optional | string | The ID of the Import for prediction statuses. |
GET /records/smart-import
/records/smart-import
Upload a file to create a record with smart import and predictions. Provide none of recordType, newRecordTypeId, or newRecordTypeDisplayName to default to Imported type.
{
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/RecordsUploadSmartImportRecordRequest"
}
}
}
}
POST /records/smart-import
/records/smart-import/{importId}
Upload a file to an existing import and create a record with smart import and predictions. Provide none of recordType, newRecordTypeId, or newRecordTypeDisplayName to default to Imported type.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| importId | path | required | string | The Import Id. You can upload a record to an existing import in the repository. |
{
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/RecordsUploadSmartImportRecordWithPredictionsRequest"
}
}
}
}
POST /records/smart-import/{importId}
/records/{id}
Delete an existing record
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID or Ironclad ID of the Record. |
DELETE /records/{id}
/records/{id}
View a specific record and its associated data
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID or Ironclad ID of the Record. |
GET /records/{id}
/records/{id}
Update specific fields on a record
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID or Ironclad ID of the Record. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RecordsUpdateMetadataRequest"
},
"examples": {
"Request Example": {
"value": {
"name": "Consulting Agreement with Jane Doe",
"type": "consultingAgreement",
"addLinks": [
{
"recordId": "df1c2805-f5a3-4a14-9386-c28d950dff49"
}
],
"removeLinks": [
{
"recordId": "df1c2805-f5a3-4a14-9386-c28d950dff49"
}
],
"addProperties": {
"agreementDate": {
"type": "date",
"value": "2018-05-08T00:00:00-07:00"
},
"counterpartyName": {
"type": "string",
"value": "Jane Doe"
}
},
"removeProperties": [
"counterpartySigner"
]
}
}
}
}
}
}
PATCH /records/{id}
/records/{id}
Update an existing record with a new set of metadata
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID or Ironclad ID of the Record. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RecordsReplaceMetadataRequest"
}
}
}
}
PUT /records/{id}
/records/{id}/attachments/{key}
Remove an attachment associated with a specific record
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID or Ironclad ID of the Record. |
| key | path | required | string | The attachment key. |
DELETE /records/{id}/attachments/{key}
/records/{id}/attachments/{key}
View an attachment associated with a specific record
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID or Ironclad ID of the Record. |
| key | path | required | string | The attachment key. |
GET /records/{id}/attachments/{key}
/records/{id}/attachments/{key}
Create an attachment on a specified record at the specified attachment key.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID or Ironclad ID of the Record. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api). |
| key | path | required | string | The attachment key. You can retrieve a list of available attachment keys with the [Retrieve Records Schema](https://developer.ironcladapp.com/reference/list-all-records-metadata) endpoint. |
{
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/RecordsCreateAttachmentRequest"
}
}
}
}
POST /records/{id}/attachments/{key}
/webhooks
View all webhooks associated with a specific company with filtering available via query parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| optional | ||||
| optional |
GET /webhooks
/webhooks
Creates a webhook for the specified events. Send separate requests if you need to create webhooks for multiple target URLs. Each target URL may only have one active registration.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebhooksCreateNewRequest"
}
}
}
}
POST /webhooks
/webhooks/verification-key
View the verification key for webhook security implementations
GET /webhooks/verification-key
/webhooks/{id}
Delete a specific webhook
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the webhook. |
DELETE /webhooks/{id}
/webhooks/{id}
View the data associated with a specific webhook
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the webhook. |
GET /webhooks/{id}
/webhooks/{id}
Update the data associated with a specific webhook
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the webhook. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebhooksUpdateWebhookDataRequest"
}
}
}
}
PATCH /webhooks/{id}
/workflow-schemas
Returns a list of workflow schemas. Each schema specifies the fields used in the workflow's launch form.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| form | query | required | string | The launch form is the only form supported at this time. |
| optional | ||||
| optional |
GET /workflow-schemas
/workflow-schemas/{id}
Returns the fields used in the workflow's launch form.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | 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. |
| form | query | optional | string | |
| optional | ||||
| optional |
GET /workflow-schemas/{id}
/workflows
List all workflows in your Ironclad account.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| optional | ||||
| optional | ||||
| status | query | optional | string | 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. |
| template | query | optional | string | Filter workflows to a specific Template ID. |
| lastUpdated | query | optional | string | Retrieve workflows that have been updated since a UTC date. |
| filter | query | optional | string | Filter workflows using a formula. The workflow attribute ID should be enclosed in brackets `[ ]` and the value should be enclosed in single quotes `' '`. Workflow 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. Supported formula operations include: <ul> <li><code>Equals</code></li> <li><code>Contains</code></li> <li><code>And</code></li> <li><code>Or</code></li> </ul> For more information on writing formulas, please refer to <a href="https://ironcladapp.com/formulas/#company%20display%20name">this article</a>. |
GET /workflows
/workflows
Launch a new Workflow synchronously.
{
"$ref": "#/components/requestBodies/WorkflowLaunch"
}
POST /workflows
/workflows/async
Launch a new Workflow asynchronously for non-blocking performance, which is helpful when/if you provide files to the Workflow.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowRequestModel"
}
}
}
}
POST /workflows/async
/workflows/async/{asyncJobId}
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| asyncJobId | path | required | string | The identifier provided in the response of creating a Workflow asynchronously. |
GET /workflows/async/{asyncJobId}
/workflows/{id}
View the data associated with a specific workflow
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
GET /workflows/{id}
/workflows/{id}/approval-requests
Returns a list of approval requests that have taken place on the workflow.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
| optional | ||||
| optional | ||||
| actorDetails | query | optional | boolean | An optional boolean parameter that adds additional information about the actor to each item in the response. Defaults to false. |
GET /workflows/{id}/approval-requests
/workflows/{id}/approvals
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).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
GET /workflows/{id}/approvals
/workflows/{id}/approvals/{roleId}
Updates an approval to the specified status. Approvals can only be updated during the Review step.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
| roleId | path | required | string | The unique identifier of the approver role whose status should be changed. This identifier can be retrieved using the `GET /workflows/{id}/approvals` endpoint. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowsUpdateApprovalStatusRequest"
}
}
}
}
PATCH /workflows/{id}/approvals/{roleId}
/workflows/{id}/attributes
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
| optional | ||||
| optional |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowsUpdateMetadataRequest"
}
}
}
}
PATCH /workflows/{id}/attributes
/workflows/{id}/comments
Creates a comment in the specified workflow's activity feed.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowsCreateCommentRequest1"
}
}
}
}
POST /workflows/{id}/comments
/workflows/{id}/document/{key}/download
Download a document associated with a specific workflow via a reference to its document key
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
| key | path | required | string | 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` |
GET /workflows/{id}/document/{key}/download
/workflows/{id}/emails
List all email threads in the specified workflow
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| optional | ||||
| optional | ||||
| optional |
GET /workflows/{id}/emails
/workflows/{id}/emails/{emailThreadId}
List a single email thread for a specified workflow
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| optional | ||||
| optional |
GET /workflows/{id}/emails/{emailThreadId}
/workflows/{id}/emails/{emailThreadId}/attachments/{attachmentId}
Retrieve an attachment from the specified email thread
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| optional | ||||
| optional | ||||
| attachmentId | path | required | string | 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}` |
GET /workflows/{id}/emails/{emailThreadId}/attachments/{attachmentId}
/workflows/{id}/participants
Returns a list of workflow participants.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
| optional | ||||
| optional | ||||
| query | optional | string | The Ironclad user's email address. |
GET /workflows/{id}/participants
/workflows/{id}/revert-to-review
Reverts a workflow to the Review step. Only workflows sourced from Workflow Designer and in the Sign step can be reverted.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
| optional | ||||
| optional |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowsRevertToReviewRequest"
}
}
}
}
PATCH /workflows/{id}/revert-to-review
/workflows/{id}/signatures
Returns a list of workflow signers and the status of their signature.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
GET /workflows/{id}/signatures
/workflows/{id}/turn-history
An array of objects for each turn on a workflow.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The unique identifier or Ironclad ID of a workflow. |
| optional | ||||
| optional |
GET /workflows/{id}/turn-history
ActivityAuthorModel
{
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/InternalUserModel"
},
{
"$ref": "#/components/schemas/ExternalUserModel"
},
{
"type": "object",
"properties": {
"type": {
"enum": [
"integration"
],
"type": "string",
"example": "integration"
},
"displayName": {
"type": "string",
"example": "Salesforce"
}
}
},
{
"type": "object",
"properties": {
"type": {
"enum": [
"system"
],
"type": "string",
"example": "system"
},
"displayName": {
"type": "string",
"example": "Ironclad"
}
}
}
]
}
ActivityMetadataModel
{
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/CommentMetadataModel"
}
],
"discriminator": {
"mapping": {
"comment": "#/components/schemas/CommentMetadataModel"
},
"propertyName": "objectType"
}
}
ActivityReactionModel
{
"type": "object",
"properties": {
"emojiId": {
"type": "string",
"example": "smile"
},
"reactors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserModel"
}
}
}
}
AttachmentNotFound
{
"type": "object",
"title": "Bad Request Error - attachmentId Not Found",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "attachmentId"
},
"message": {
"type": "string",
"example": "attachmentId does not exist"
}
},
"description": "attachmentId Not Found Request Error"
}
AttributeNumberModel
{
"type": "number",
"example": 5
}
AttributeStringModel
{
"type": "string",
"example": "Example Value"
}
AttributesModel
{
"type": "object",
"required": [
"counterpartyName"
],
"properties": {
"draft": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"example": "https://www.law.berkeley.edu/wp-content/uploads/2018/12/Resume-Samples-1.pdf",
"description": "URL of the file to be uploaded"
}
}
},
"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"
},
"paperSource": {
"enum": [
"Counterparty paper",
"Our paper"
],
"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"
},
"counterpartyName": {
"type": "string",
"example": "Example Company"
}
},
"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."
}
BadRequestErrorRecordAttachmentAlreadyExists
{
"type": "object",
"title": "Bad Request Error - Record Attachment Already Exists.",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "attachmentKey"
},
"message": {
"type": "string",
"example": "record attachment key 'signedCopy' already exists for record"
}
},
"description": "Bad request error. The specified attachment key has an existing file."
}
BadRequestErrorRecordAttachmentExtension
{
"type": "object",
"title": "Bad Request Error - Record Attachment Extension Not Supported",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "metadata.filename"
},
"message": {
"type": "string",
"example": "filename \"NDA - Acme LLC\" does not have an accepted extension. Only the following extensions are allowed: .adoc, .asice, .bdoc, .csv, .ddoc, .doc, .docx, .edoc, .eml, .gif, .htm, .jpeg, .jpg, .msg, .pdf, .png, .ppt, .pptx, .rtf, .tif, .tif, .txt, .xls, .xlsx, .xml"
}
},
"description": "Bad request error. The specified filename does not include a supported extension."
}
BadRequestErrorRecordAttachmentIDNotFound
{
"type": "object",
"title": "Bad Request Error - Record Attachment ID Not Found",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"message": {
"type": "string",
"example": "couldn't find an attachment matching the key [SOME_NONEXISTENT_ATTACHMENT_KEY] for record with id [RECORD_ID]"
}
},
"description": "Record Attachment ID Not Found Request Error"
}
BadRequestErrorRecordAttachmentMissingFormDataPart
{
"type": "object",
"title": "Bad Request Error - Missing Form-Data Part",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "metadata"
},
"message": {
"type": "string",
"example": "missing required form-data part 'metadata'"
}
},
"description": "Bad request error. Missing form-data part."
}
BadRequestErrorRecordAttachmentUnknownAttachmentKey
{
"type": "object",
"title": "Bad Request Error - Unknown Record Attachment Key",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "attachmentKey"
},
"message": {
"type": "string",
"example": "unknown record attachment key 'someRandomKey'"
}
},
"description": "Bad request error. Unknown record attachment key."
}
BadRequestErrorRecordAttachmentUnknownContentType
{
"type": "object",
"title": "Bad Request Error - Unknown Content Type",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "metadata.filename"
},
"message": {
"type": "string",
"example": "unknown content type 'filename or extension'"
}
},
"description": "Bad request error. Unknown content type."
}
BadRequestErrorRecordIDNotFound
{
"type": "object",
"title": "Bad Request Error - Record ID Not Found",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"message": {
"type": "string",
"example": "couldn't find a record matching the id [SOME_NONEXISTENT_RECORD_ID]"
}
},
"description": "Record ID Not Found Request Error"
}
BadRequestErrorRecordNotFound
{
"type": "object",
"title": "Bad Request Error - Record Does not Exist",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"message": {
"type": "string",
"example": "couldn't find a record matching the id workflow:6346f76fb8fc01d2b43e7c15a"
}
},
"description": "Bad request error. The specified record does not exist."
}
BadRequestErrorWorkflowLaunch
{
"type": "object",
"title": "Bad Request Error - Workflow Launch",
"readOnly": true,
"required": [
"code",
"message",
"param"
],
"properties": {
"code": {
"enum": [
"MISSING_PARAM",
"INVALID_PARAM",
"INVALID_STATE"
],
"type": "string",
"title": "",
"example": "MISSING_PARAM",
"readOnly": true,
"description": "A unique code to identify why the workflow cannot be launched."
},
"param": {
"type": "string",
"title": "",
"example": "counterpartySignerTitle",
"readOnly": true,
"description": "The required or expected parameter(s) that may be missing in order to launch the workflow."
},
"message": {
"type": "string",
"title": "",
"example": "missing required attribute",
"readOnly": true,
"description": "A message indicating why the workflow cannot be launched."
}
},
"description": ""
}
BaseActivityFeedItemModel
{
"type": "object",
"required": [
"id",
"type",
"metadata",
"author"
],
"properties": {
"id": {
"type": "string"
},
"type": {
"enum": [
"comment"
],
"type": "string"
},
"author": {
"$ref": "#/components/schemas/ActivityAuthorModel"
},
"metadata": {
"$ref": "#/components/schemas/ActivityMetadataModel"
},
"reactions": {
"$ref": "#/components/schemas/ActivityReactionModel"
},
"isExternal": {
"type": "boolean"
}
}
}
CommentMetadataModel
{
"type": "object",
"properties": {
"message": {
"type": "string",
"example": "This is a comment Jon Snow"
},
"repliedTo": {
"type": "object",
"properties": {
"author": {
"$ref": "#/components/schemas/ActivityAuthorModel"
},
"activityItem": {
"type": "string",
"example": "TODO: unsure this is the right place"
}
}
},
"markedUpMessage": {
"type": "string",
"example": "This is a comment @[Jon Snow](630d28059893be00e1ccc9e7)"
},
"addedParticipants": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserModel"
}
}
}
}
CreatorEmailModel
{
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "email",
"description": "The type of value used to identify the user."
},
"email": {
"type": "string",
"example": "example@example.com",
"description": "The email address of the Ironclad user."
}
},
"description": "The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's email address."
}
CreatorIdModel
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "abcd1234",
"description": "The user ID of the Ironclad user."
},
"type": {
"type": "string",
"default": "id",
"description": "The type of value used to identify the user."
}
},
"description": "The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's ID."
}
CreatorModel
{
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/CreatorEmailModel"
},
{
"$ref": "#/components/schemas/CreatorIdModel"
}
],
"title": "creator",
"description": "The Ironclad user (must be a user in your Ironclad account) to be used for launching the workflow."
}
EmailNotFound
{
"type": "object",
"title": "Bad Request Error - Email ID Not Found",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "emailThreadId"
},
"message": {
"type": "string",
"example": "emailThreadId does not exist"
}
},
"description": "Email ID Not Found Request Error"
}
EmailResponseModel
{
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/InboundEmailResponse"
},
{
"$ref": "#/components/schemas/OutboundEmailResponse"
}
]
}
ExternalUserModel
{
"type": "object",
"required": [
"type",
"email",
"companyName"
],
"properties": {
"type": {
"enum": [
"externalUser"
],
"type": "string",
"example": "externalUser"
},
"email": {
"type": "string",
"example": "boba@ironclad.boba"
},
"companyName": {
"type": "string",
"example": "ironclad"
},
"displayName": {
"type": "string",
"example": "Boba Fett"
}
}
}
InboundAttachmentModel
{
"type": "object",
"properties": {
"download": {
"type": "string",
"example": "/public/api/v1/workflows/6013609108b8f070cee94fc1/emails/z_1zgjgjq/attachments/attachmentIdc85d7e3be5d84bf28cebe4591e39c894"
},
"filename": {
"type": "string",
"example": "file.docx"
},
"content-type": {
"type": "string",
"example": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
}
}
}
InboundEmailResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "6372b491abd2adf22f6e13ff"
},
"body": {
"type": "string",
"example": "This is a body of an email.\\n"
},
"type": {
"enum": [
"inboundEmail"
],
"type": "string"
},
"author": {
"$ref": "#/components/schemas/ActivityAuthorModel"
},
"subject": {
"type": "string",
"example": "This is the subject of an email"
},
"timestamp": {
"type": "string",
"example": "2022-09-28T19:21:05.034Z"
},
"attachments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/InboundAttachmentModel"
}
},
"emailThreadId": {
"type": "string",
"example": "emailThread16ca903a0ec44ae09fc0b3fb3339ffa0"
}
}
}
InternalUserModel
{
"type": "object",
"required": [
"type",
"displayName",
"email",
"userId",
"companyName"
],
"properties": {
"type": {
"enum": [
"internalUser"
],
"type": "string",
"example": "internalUser"
},
"email": {
"type": "string",
"example": "boba@ironclad.boba"
},
"userId": {
"type": "string",
"example": "63d415e0dd0d828c3a878548"
},
"companyName": {
"type": "string",
"example": "Ironclad"
},
"displayName": {
"type": "string",
"example": "Boba Fett"
}
}
}
LaunchedWorkflowModel
{
"type": "object",
"required": [
"id",
"title",
"template",
"step",
"attributes",
"schema",
"isCancelled",
"isComplete",
"status",
"created",
"lastUpdated",
"roles",
"approvals",
"signatures",
"isRevertibleToReview"
],
"properties": {
"id": {
"type": "string",
"example": "6013609108b8f070cee94fc1",
"readOnly": true,
"description": "The ID of the launched workflow."
},
"step": {
"enum": [
"Review",
"Sign",
"Archive",
"Complete"
],
"type": "string",
"example": "Review",
"readOnly": true,
"description": "The step the workflow is currently on."
},
"roles": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkflowRoleModel"
},
"readOnly": true
},
"title": {
"type": "string",
"example": "Consulting Agreement with Jane Doe",
"readOnly": true,
"description": "The name used for the launched workflow."
},
"schema": {
"$ref": "#/components/schemas/AttributesModel"
},
"status": {
"enum": [
"active",
"paused",
"cancelled",
"completed"
],
"type": "string",
"example": "active",
"readOnly": true,
"description": "The current status of the launched workflow."
},
"created": {
"type": "string",
"example": "2016-11-17T00:37:22.318Z",
"readOnly": true,
"description": "The date (ISO8601 format) the workflow was launched"
},
"creator": {
"type": "object",
"title": "",
"readOnly": true,
"properties": {
"id": {
"type": "string",
"example": "63d415e0dd0d828c3a878548",
"readOnly": true,
"description": ""
},
"email": {
"type": "string",
"example": "fett@intergalactic.com",
"readOnly": true,
"description": ""
},
"displayName": {
"type": "string",
"example": "Boba Fett",
"readOnly": true,
"description": ""
}
},
"description": ""
},
"template": {
"$ref": "#/components/schemas/WorkflowTemplateIdModel"
},
"approvals": {
"type": "object",
"properties": {
"state": {
"enum": [
"not_started",
"in_progress",
"completed",
"not_applicable"
],
"type": "string",
"example": "in_progress",
"readOnly": true,
"description": "The state of the approvals."
}
}
},
"recordIds": {
"type": "array",
"items": {
"type": "string",
"example": "715f1e37-292f-4e6c-8b48-c07e1b68bccd",
"description": "Ids of records created by the workflow."
},
"readOnly": true
},
"ironcladId": {
"type": "string",
"example": "IC-1",
"readOnly": true,
"description": "The Ironclad ID of the launched workflow."
},
"isComplete": {
"type": "boolean",
"example": false,
"readOnly": true,
"deprecated": true,
"description": "Displays if the launched workflow has been completed."
},
"signatures": {
"type": "object",
"properties": {
"url": {
"type": "string",
"example": "https://ironcladapp.com/public/api/v1/workflows/6dac47a10b1242d1f7df688d/signatures",
"readOnly": true,
"description": "The url where signature information is located if it exists."
},
"state": {
"enum": [
"not_started",
"in_progress",
"complete",
"not_applicable"
],
"type": "string",
"example": "in_progress",
"readOnly": true,
"description": "The state of the signatures."
}
}
},
"isCancelled": {
"type": "boolean",
"example": false,
"readOnly": true,
"deprecated": true,
"description": "Displays if the launched workflow has been cancelled."
},
"lastUpdated": {
"type": "string",
"example": "2016-11-17T00:37:42.318Z",
"readOnly": true,
"description": "The date (ISO8601 format) the workflow was last updated"
},
"isRevertibleToReview": {
"type": "boolean",
"example": false,
"readOnly": true,
"description": "Displays if the launched workflow can be reverted back to the review step."
}
},
"description": "The response from a successful workflow launch."
}
OutboundAttachmentModel
{
"type": "object",
"properties": {
"download": {
"type": "string",
"example": "/public/api/v1/workflows/6013609108b8f070cee94fc1/document/XZ9j0cHGA/download"
},
"filename": {
"type": "string",
"example": "attachment.pdf"
},
"content-type": {
"type": "string",
"example": "application/pdf"
}
}
}
OutboundEmailResponse
{
"type": "object",
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string",
"example": "admiral@ironclad.boba"
}
},
"id": {
"type": "string",
"example": "6372b491abd2adf22f6e13ff"
},
"body": {
"type": "string",
"example": "This is a body of an email.\\n"
},
"type": {
"enum": [
"outboundEmail"
],
"type": "string"
},
"author": {
"$ref": "#/components/schemas/ActivityAuthorModel"
},
"subject": {
"type": "string",
"example": "This is the subject of an email"
},
"timestamp": {
"type": "string",
"example": "2022-09-28T19:21:05.034Z"
},
"recipients": {
"type": "array",
"items": {
"type": "string",
"example": "dopstop@ironclad.boba"
}
},
"attachments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OutboundAttachmentModel"
}
},
"emailOpenedTimestamps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "david@boba.com"
},
"opened": {
"type": "boolean"
}
}
}
}
}
}
RecordModel
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "22e2ff72-56a1-4711-a4ca-41328d311e9f"
},
"name": {
"type": "string",
"example": "Consulting Agreement with Jane Doe"
},
"type": {
"type": "string",
"example": "consultingAgreement"
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recordId": {
"type": "string",
"example": "df1c2805-f5a3-4a14-9386-c28d950dff49"
}
}
}
},
"source": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "workflow"
},
"workflowId": {
"type": "string",
"example": "abcd1234"
}
}
},
"childIds": {
"type": "array",
"items": {
"type": "string",
"example": "4a785686-d3d5-47bc-960e-3df0df871ea9"
}
},
"parentId": {
"type": "string",
"example": "d10b8c01-5c54-4a59-82cb-51e3825182e9"
},
"ironcladId": {
"type": "string",
"example": "IC-1"
},
"properties": {
"type": "object",
"properties": {
"hourlyRate": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "monetaryAmount"
},
"value": {
"type": "object",
"properties": {
"amount": {
"type": "integer",
"default": 0,
"example": 100
},
"currency": {
"type": "string",
"example": "USD"
}
}
}
}
},
"agreementDate": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "date"
},
"value": {
"type": "string",
"example": "2018-05-08T00:00:00-07:00"
}
}
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "string"
},
"value": {
"type": "string",
"example": "Jane Doe"
}
}
},
"counterpartyEmail": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "email"
},
"value": {
"type": "string",
"example": "jane.doe@test.com"
}
}
}
}
},
"attachments": {
"type": "object",
"properties": {
"signedCopy": {
"type": "object",
"properties": {
"href": {
"type": "string",
"example": "https://ironcladapp.com/public/api/v1/records/22e2ff72-56a1-4711-a4ca-41328d311e9f/attachments/signedCopy"
},
"filename": {
"type": "string",
"example": "2018-05-08 - Doe, Jane - Consulting Agreement.pdf"
},
"contentType": {
"type": "string",
"example": "application/json"
}
}
}
}
},
"lastUpdated": {
"type": "string",
"example": "2018-05-08T17:28:10Z"
}
}
}
RecordPropertyLinkModel
{
"type": "object",
"properties": {
"recordId": {
"type": "string",
"example": "17009e0d-z2e9-425d-a85b-1cf152773e49"
}
}
}
RecordsCreateAttachment400Response
{
"oneOf": [
{
"$ref": "#/components/schemas/BadRequestErrorRecordNotFound"
},
{
"$ref": "#/components/schemas/BadRequestErrorRecordAttachmentExtension"
},
{
"$ref": "#/components/schemas/BadRequestErrorRecordAttachmentAlreadyExists"
},
{
"$ref": "#/components/schemas/BadRequestErrorRecordAttachmentUnknownAttachmentKey"
},
{
"$ref": "#/components/schemas/BadRequestErrorRecordAttachmentUnknownContentType"
},
{
"$ref": "#/components/schemas/BadRequestErrorRecordAttachmentMissingFormDataPart"
}
]
}
RecordsCreateAttachmentRequest
{
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"filename": {
"type": "string",
"example": "NDA - Acme LLC.pdf",
"description": "The name of the file. Must have a supported file extension (.adoc, .asice, .bdoc, .csv, .ddoc, .doc, .docx, .edoc, .eml, .gif, .htm, .jpeg, .jpg, .msg, .pdf, .png, .ppt, .pptx, .rtf,.tif, .txt, .xls, .xlsx, .xml)."
}
},
"description": "The `metadata` property's value must be `{\"filename\": \"[YOUR_FILE_NAME]\"}`"
},
"attachment": {
"type": "string",
"format": "binary",
"description": "Must be a binary. Base64 is not accepted at this time."
}
}
}
RecordsCreateAttachmentResponse
{
"type": "object",
"properties": {}
}
RecordsCreateRecordRequest
{
"type": "object",
"required": [
"type",
"name",
"properties"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the record."
},
"type": {
"type": "string",
"description": "The type of record to be created. You can view available record types by retrieving records metadata."
},
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordPropertyLinkModel"
}
},
"parent": {
"type": "object",
"properties": {
"recordId": {
"type": "string",
"example": "17009e0d-z2e9-425d-a85b-1cf152773efg"
}
},
"description": "Object containing Record IDs or Ironclad IDs to be set as the parent of the current record."
},
"children": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordPropertyLinkModel"
},
"description": "List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record."
},
"properties": {
"type": "object",
"properties": {
"agreementDate": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "date"
},
"value": {
"type": "string",
"description": "UTC date (e.g. `2018-05-08T00:00:00-07:00`)"
}
},
"description": "The date of the agreement."
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "string"
},
"value": {
"type": "string",
"description": "The name of the counterparty."
}
},
"description": "The name of the counterparty."
}
},
"description": "Object containing key/value pairs of metadata attached to the record. The key you specify must have a value with a supported type as outlined in the Supported Property Types section."
}
}
}
RecordsCreateRecordResponse
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"param": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsDeleteRecord400Response
{
"type": "object",
"properties": {}
}
RecordsDeleteRecordResponse
{
"type": "object",
"properties": {}
}
RecordsGetAttachment400Response
{
"type": "object",
"properties": {}
}
RecordsGetAttachmentResponse
{
"type": "object",
"properties": {}
}
RecordsGetPredictions400Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsGetPredictions403Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsGetPredictions404Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsGetPredictionsResponse
{
"oneOf": [
{
"type": "object",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"ready",
"pending",
"errored"
],
"type": "string"
},
"recordId": {
"type": "string",
"example": "df1c2805-f5a3-4a14-9386-c28d950dff49"
}
}
},
"example": {
"status": "ready",
"recordId": "461aa9a3-5984-4553-b8ab-56a1786c2f44"
}
},
{
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"ready",
"pending",
"errored"
],
"type": "string"
},
"recordId": {
"type": "string",
"example": "df1c2805-f5a3-4a14-9386-c28d950dff49"
}
}
},
"example": [
{
"status": "ready",
"recordId": "461aa9a3-5984-4553-b8ab-56a1786c2f44"
},
{
"status": "pending",
"recordId": "6392dd09-814d-4def-97d9-8fe8badcf6ce"
}
]
}
]
}
RecordsGetRecordDataResponse
{
"type": "object",
"properties": {}
}
RecordsGetSchema400Response
{
"type": "object",
"properties": {}
}
RecordsGetSchemaResponse
{
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {}
},
"properties": {
"type": "object",
"properties": {
"workflowId": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "string"
},
"visible": {
"type": "boolean",
"default": true,
"example": true
},
"displayName": {
"type": "string",
"example": "Workflow ID"
}
}
},
"agreementDate": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "date"
},
"visible": {
"type": "boolean",
"default": true,
"example": true
},
"displayName": {
"type": "string",
"example": "Agreement Date"
}
}
},
"additionalNotes": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "string"
},
"visible": {
"type": "boolean",
"default": true,
"example": true
},
"displayName": {
"type": "string",
"example": "Additional Notes"
}
}
}
}
},
"attachments": {
"type": "object",
"properties": {
"signedCopy": {
"type": "object",
"properties": {
"displayName": {
"type": "string",
"example": "Signed PDF"
}
}
}
}
},
"recordTypes": {
"type": "object",
"properties": {
"contract": {
"type": "object",
"properties": {
"displayName": {
"type": "string",
"example": "Contract"
}
}
}
}
}
}
}
RecordsGetXlsxExportFile400Response
{
"type": "object",
"properties": {}
}
RecordsGetXlsxExportFileResponse
{
"type": "object",
"properties": {}
}
RecordsListAll400Response
{
"type": "object",
"properties": {}
}
RecordsListAllResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordModel"
}
},
"page": {
"type": "integer",
"default": 0,
"example": 0
},
"count": {
"type": "integer",
"default": 0,
"example": 1234
},
"pageSize": {
"type": "integer",
"default": 0,
"example": 20
}
}
}
RecordsRemoveAttachmentResponse
{
"oneOf": [
{
"$ref": "#/components/schemas/BadRequestErrorRecordIDNotFound"
},
{
"$ref": "#/components/schemas/BadRequestErrorRecordAttachmentIDNotFound"
}
]
}
RecordsReplaceMetadataRequest
{
"type": "object",
"required": [
"type",
"name",
"properties"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the record."
},
"type": {
"type": "string",
"description": "The type of record to be created. You can view available record types by retrieving records metadata."
},
"parent": {
"type": "object",
"properties": {
"recordId": {
"type": "string",
"example": "17009e0d-z2e9-425d-a85b-1cf152773efg"
}
},
"description": "Object containing Record IDs or Ironclad IDs to be set as the parent of the current record."
},
"children": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordPropertyLinkModel"
},
"description": "List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record."
},
"properties": {
"type": "object",
"properties": {
"agreementDate": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "date"
},
"value": {
"type": "string",
"description": "UTC date (e.g. `2018-05-08T00:00:00-07:00`)"
}
},
"description": "The date of the agreement."
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "string"
},
"value": {
"type": "string",
"description": "The name of the counterparty."
}
},
"description": "The name of the counterparty."
}
},
"description": "Object containing key/value pairs of metadata attached to the record. The key you specify must have a value with a supported type as outlined in the Supported Property Types section."
}
}
}
RecordsReplaceMetadataResponse
{
"type": "object",
"properties": {}
}
RecordsUpdateMetadata404Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "parameter identifier"
},
"message": {
"type": "string",
"example": "not found"
}
}
}
RecordsUpdateMetadataRequest
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Record."
},
"type": {
"type": "string",
"description": "The type of Record."
},
"addLinks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordPropertyLinkModel"
},
"description": "List of objects containing the Record IDs or Ironclad IDs of the records to link. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api)."
},
"setParent": {
"type": "object",
"properties": {
"recordId": {
"type": "string",
"example": "17009e0d-z2e9-425d-a85b-1cf152773efg"
}
},
"description": "Object containing Record IDs or Ironclad IDs to be set as the parent of the current record."
},
"addChildren": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordPropertyLinkModel"
},
"description": "List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record."
},
"removeLinks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordPropertyLinkModel"
},
"description": "List of objects containing the Record IDs or Ironclad IDs of the record links to remove. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api)."
},
"removeParent": {
"type": "boolean",
"example": false,
"description": "Boolean flag to indicate if the parent id should be removed for the current record."
},
"addProperties": {
"type": "object",
"properties": {
"agreementDate": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "date",
"example": "date"
},
"value": {
"type": "string",
"example": "2018-05-08T00:00:00-07:00"
}
}
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "string"
},
"value": {
"type": "string",
"example": "Jane Doe"
}
}
}
},
"description": "A key:value map of properties to add. The two below are examples."
},
"removeChildren": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecordPropertyLinkModel"
},
"description": "List of objects containing the Record IDs or Ironclad IDs of the child records to be removed from the current record."
},
"removeProperties": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of record property ids to be removed (e.g., ['counterpartyAddress', 'agreementExpirationDate'])"
}
}
}
RecordsUpdateMetadataResponse
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "MISSING_PARAM"
},
"param": {
"type": "string",
"example": "parameter identifier"
},
"message": {
"type": "string",
"example": "reason why something has gone wrong"
}
}
}
RecordsUploadSmartImportRecord400Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"param": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsUploadSmartImportRecord403Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsUploadSmartImportRecord404Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsUploadSmartImportRecordRequest
{
"type": "object",
"required": [
"attachment"
],
"properties": {
"attachment": {
"type": "string",
"format": "binary",
"description": "Must be a binary. Base64 is not accepted at this time."
},
"recordType": {
"type": "string",
"format": "string",
"default": "imported",
"description": "Upload a smart import record as an existing record type. Cannot provide alongside newRecordTypeId and newRecordTypeDisplayName. Defaults to Imported."
},
"newRecordTypeId": {
"type": "string",
"description": "The record type ID for a not-yet-existing record type. Must be provided along with a newRecordTypeDisplayName"
},
"newRecordTypeDisplayName": {
"type": "string",
"format": "string",
"description": "The display name of the new record type to create."
}
}
}
RecordsUploadSmartImportRecordResponse
{
"type": "object",
"properties": {
"importId": {
"type": "string",
"example": "55ez635d-f2g9-5419-gs34-8h1jx4s733q9"
},
"recordId": {
"type": "string",
"example": "17fe582d-e1e0-4000-bf65-3d2ec2c500a4",
"description": "Record ID of the new created record"
},
"remainingCredits": {
"type": "number",
"example": 50
}
}
}
RecordsUploadSmartImportRecordWithPredictions400Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"param": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsUploadSmartImportRecordWithPredictions403Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsUploadSmartImportRecordWithPredictions404Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
RecordsUploadSmartImportRecordWithPredictionsRequest
{
"type": "object",
"required": [
"attachment",
"recordType"
],
"properties": {
"attachment": {
"type": "string",
"format": "binary",
"description": "Must be a binary. Base64 is not accepted at this time."
},
"recordType": {
"type": "string",
"format": "string",
"default": "imported",
"description": "Upload a smart import record as an existing record type. Cannot provide alongside newRecordTypeId and newRecordTypeDisplayName. Defaults to Imported."
},
"newRecordTypeId": {
"type": "string",
"description": "The record type ID for a not-yet-existing record type. Must be provided along with a newRecordTypeDisplayName"
},
"newRecordTypeDisplayName": {
"type": "string",
"format": "string",
"description": "The display name of the new record type to create."
}
}
}
RecordsUploadSmartImportRecordWithPredictionsResponse
{
"type": "object",
"properties": {
"importId": {
"type": "string",
"example": "55ez635d-f2g9-5419-gs34-8h1jx4s733q9"
},
"recordId": {
"type": "string",
"example": "17fe582d-e1e0-4000-bf65-3d2ec2c500a4",
"description": "Record ID of the new created record"
},
"remainingCredits": {
"type": "number",
"example": 50
}
}
}
UserModel
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"displayName": {
"type": "string"
}
}
}
WebhooksCreateNew400Response
{
"oneOf": [
{
"$ref": "#/components/schemas/webhookInvalidEventTypeBadRequestResponse"
},
{
"$ref": "#/components/schemas/webhookTargetURLExistsBadRequestResponse"
}
]
}
WebhooksCreateNewRequest
{
"type": "object",
"required": [
"events",
"targetURL"
],
"properties": {
"events": {
"type": "array",
"items": {
"$ref": "#/components/schemas/webhookEventTypeValue"
},
"minItems": 1,
"description": "The event type(s) to trigger the webhook. Note: you can use `*` to receive events for all events, although we don't recommend this path, especially for environments with higher volume."
},
"targetURL": {
"type": "string",
"description": "The URL to send the webhook event payload to."
}
}
}
WebhooksCreateNewResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"events": {
"type": "array",
"items": {
"type": "string",
"example": "workflow_launched"
}
},
"company": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"targetURL": {
"type": "string",
"example": "https://requestb.in/18m34b"
}
}
}
WebhooksDeleteSpecific400Response
{
"type": "object",
"properties": {}
}
WebhooksDeleteSpecificResponse
{
"type": "object",
"properties": {}
}
WebhooksGetData400Response
{
"type": "object",
"properties": {}
}
WebhooksGetDataResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"events": {
"type": "array",
"items": {
"type": "string",
"example": "workflow_launched"
}
},
"company": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"targetURL": {
"type": "string",
"example": "https://requestb.in/18m34b"
}
}
}
WebhooksGetVerificationKeyResponse
{
"type": "object",
"properties": {}
}
WebhooksListAll400Response
{
"type": "object",
"properties": {}
}
WebhooksListAllResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"events": {
"type": "array",
"items": {
"type": "string",
"example": "workflow_launched"
}
},
"company": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"targetURL": {
"type": "string",
"example": "https://requestb.in/18m34bs1"
}
}
}
},
"page": {
"type": "integer",
"default": 0,
"example": 0
},
"pageSize": {
"type": "integer",
"default": 0,
"example": 20
}
}
}
WebhooksUpdateWebhookData400Response
{
"type": "object",
"properties": {}
}
WebhooksUpdateWebhookDataRequest
{
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "string"
},
"description": "The type of events that will trigger a notification to the target URL."
},
"targetURL": {
"type": "string",
"description": "The URL of where the notification gets sent."
}
}
}
WebhooksUpdateWebhookDataResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"events": {
"type": "array",
"items": {
"type": "string",
"example": "workflow_launched"
}
},
"company": {
"type": "string",
"example": "5928719b30182d3700364a74"
},
"targetURL": {
"type": "string",
"example": "https://requestb.in/18m34b"
}
}
}
WorkflowAsyncInProgressResponse
{
"type": "object",
"title": "Workflow Launch In Progress",
"readOnly": true,
"required": [
"status",
"requestPayload"
],
"properties": {
"status": {
"type": "string",
"title": "",
"default": "in_progress",
"readOnly": true,
"description": ""
},
"requestPayload": {
"$ref": "#/components/schemas/WorkflowRequestModel"
}
},
"description": ""
}
WorkflowAsyncLaunchFailedResponse
{
"type": "object",
"title": "Workflow Launch Failed",
"readOnly": true,
"required": [
"status",
"requestPayload",
"error"
],
"properties": {
"error": {
"type": "string",
"title": "",
"readOnly": true,
"description": "An error message indicating why the workflow failed to launch."
},
"status": {
"type": "string",
"title": "",
"default": "failed",
"readOnly": true,
"description": ""
},
"requestPayload": {
"$ref": "#/components/schemas/WorkflowRequestModel"
}
},
"description": ""
}
WorkflowAsyncLaunchSuccessResponse
{
"type": "object",
"readOnly": true,
"required": [
"status",
"requestPayload",
"workflowUrls",
"workflow"
],
"properties": {
"status": {
"type": "string",
"title": "",
"default": "success",
"readOnly": true,
"description": ""
},
"workflow": {
"$ref": "#/components/schemas/LaunchedWorkflowModel"
},
"workflowUrls": {
"type": "object",
"title": "",
"readOnly": true,
"properties": {
"apiUrl": {
"type": "string",
"title": "",
"example": "http://ironcladapp.com/public/api/v1/workflows/6013609108b8f070cee94fc1",
"readOnly": true,
"description": "The URL for accessing workflow data via the REST API."
},
"browserUrl": {
"type": "string",
"title": "",
"example": "http://ironcladapp.com/workflows/6013609108b8f070cee94fc1",
"readOnly": true,
"description": "The URL for accessing the workflow in a browser."
}
},
"description": ""
},
"requestPayload": {
"$ref": "#/components/schemas/WorkflowRequestModel"
}
},
"description": "Response for a successfully asynchronously launched workflow."
}
WorkflowLastModifiedAuthorModel
{
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/InternalUserModel"
},
{
"$ref": "#/components/schemas/ExternalUserModel"
},
{
"type": "object",
"required": [
"type",
"displayName"
],
"properties": {
"type": {
"enum": [
"counterparty"
],
"type": "string",
"example": "counterparty"
},
"displayName": {
"type": "string",
"example": "Boba Fett"
}
}
}
],
"title": "author"
}
WorkflowNotFound
{
"type": "object",
"title": "Bad Request Error - Workflow ID Not Found",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "workflowId"
},
"message": {
"type": "string",
"example": "workflow does not exist"
}
},
"description": "Workflow ID Not Found Request Error"
}
WorkflowRequestModel
{
"type": "object",
"required": [
"attributes",
"creator",
"template"
],
"properties": {
"creator": {
"$ref": "#/components/schemas/CreatorEmailModel"
},
"template": {
"$ref": "#/components/schemas/WorkflowTemplateIdModel"
},
"attributes": {
"$ref": "#/components/schemas/AttributesModel"
}
}
}
WorkflowResponseModel
{
"type": "object",
"required": [
"id",
"title",
"template",
"step",
"attributes",
"schema",
"isCancelled",
"isComplete",
"status",
"created",
"lastUpdated",
"roles",
"approvals",
"signatures",
"isRevertibleToReview"
],
"properties": {
"id": {
"type": "string",
"example": "6013609108b8f070cee94fc1"
},
"step": {
"type": "string",
"example": "Review"
},
"roles": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"displayName",
"assignees"
],
"properties": {
"id": {
"type": "string",
"example": "legal"
},
"assignees": {
"type": "array",
"items": {
"type": "object",
"required": [
"userName",
"userId",
"email"
],
"properties": {
"email": {
"type": "string",
"example": "bobafett@gmail.com"
},
"userId": {
"type": "string",
"example": "63d415e0dd0d828c3a878548"
},
"userName": {
"type": "string",
"example": "Boba Fett"
}
}
}
},
"displayName": {
"type": "string",
"example": "Legal"
}
}
}
},
"title": {
"type": "string",
"example": "Consulting Agreement with Jane Doe"
},
"schema": {
"type": "object",
"properties": {
"fee": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "monetaryAmount"
},
"displayName": {
"type": "string",
"example": "Example Monetary Amount Attribute"
}
}
},
"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"
}
}
}
}
},
"amount": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "number"
},
"displayName": {
"type": "string",
"example": "Example Number Attribute"
}
}
},
"lineItems": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "array"
},
"elementType": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "object"
},
"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"
}
}
}
}
},
"displayName": {
"type": "string",
"example": "Example Object Attribute"
}
}
}
}
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "string"
},
"displayName": {
"type": "string",
"example": "Example String Attribute"
}
}
}
}
},
"status": {
"enum": [
"active",
"completed",
"cancelled",
"paused"
],
"type": "string",
"example": "active"
},
"created": {
"type": "string",
"example": "2016-11-17T00:37:22.318Z"
},
"creator": {
"type": "object",
"required": [
"id",
"displayName",
"email",
"title",
"username",
"metadata"
],
"properties": {
"id": {
"type": "string",
"example": "63d415e0dd0d828c3a878548"
},
"email": {
"type": "string",
"example": "fett@intergalactic.com"
},
"title": {
"type": "string",
"example": "Director"
},
"metadata": {
"type": "object",
"example": {}
},
"username": {
"type": "string",
"example": "fett@intergalactic.com"
},
"displayName": {
"type": "string",
"example": "Boba Fett"
}
}
},
"template": {
"type": "string",
"example": "600b296c3e15a234ab88f884"
},
"approvals": {
"$ref": "#/components/schemas/WorkflowStateModel"
},
"recordIds": {
"type": "array",
"items": {
"type": "string",
"example": "715f1e37-292f-4e6c-8b48-c07e1b68bccd"
}
},
"attributes": {
"type": "object",
"properties": {
"fee": {
"type": "object",
"properties": {
"amount": {
"type": "integer",
"default": 0,
"example": 50000
},
"currency": {
"type": "string",
"example": "USD"
}
}
},
"draft": {
"type": "array",
"items": {
"type": "object",
"properties": {
"version": {
"type": "string",
"example": "B1QePArXb"
},
"download": {
"type": "string",
"example": "/public/api/v1/workflows/594356b9fbcd7f74006fdf8a/document/rJklwCHQ/download"
},
"filename": {
"type": "string",
"example": "file.pdf"
},
"lastModified": {
"type": "object",
"properties": {
"author": {
"$ref": "#/components/schemas/WorkflowLastModifiedAuthorModel"
},
"timestamp": {
"type": "string",
"example": "2016-11-17T00:37:22.318Z"
}
}
},
"versionNumber": {
"type": "number",
"example": 2
}
}
}
},
"amount": {
"type": "integer",
"default": 0,
"example": 123
},
"counterpartyName": {
"type": "string",
"example": "Boba Fett"
}
}
},
"ironcladId": {
"type": "string",
"example": "IC-1"
},
"isComplete": {
"type": "boolean",
"default": true,
"example": false
},
"signatures": {
"$ref": "#/components/schemas/WorkflowStateModel"
},
"isCancelled": {
"type": "boolean",
"default": true,
"example": false
},
"lastUpdated": {
"type": "string",
"example": "2016-11-17T00:37:22.318Z"
},
"isRevertibleToReview": {
"type": "boolean",
"example": false
}
},
"description": "The response from a successful workflow retrieval."
}
WorkflowRoleAssigneeModel
{
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bobafett@gmail.com"
},
"userId": {
"type": "string",
"example": "63d415e0dd0d828c3a878548"
},
"userName": {
"type": "string",
"example": "Boba Fett"
}
},
"description": ""
}
WorkflowRoleModel
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "legal"
},
"assignees": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkflowRoleAssigneeModel"
}
},
"displayName": {
"type": "string",
"example": "Legal"
}
},
"description": ""
}
WorkflowStateModel
{
"type": "object",
"oneOf": [
{
"required": [
"state"
],
"properties": {
"state": {
"enum": [
"not_started"
],
"type": "string",
"example": "not_started"
}
}
},
{
"required": [
"state"
],
"properties": {
"state": {
"enum": [
"completed"
],
"type": "string",
"example": "completed"
}
}
},
{
"required": [
"state",
"url"
],
"properties": {
"url": {
"type": "string",
"example": "https://ironcladapp.com/public/api/v1/workflows/22e2ff72-56a1-4711-a4ca-41328d311e9f/approvals"
},
"state": {
"enum": [
"in_progress"
],
"type": "string",
"example": "in_progress"
}
}
},
{
"required": [
"state",
"message"
],
"properties": {
"state": {
"enum": [
"not_applicable"
],
"type": "string",
"example": "not_applicable"
},
"message": {
"type": "string",
"example": "This workflow has been cancelled"
}
}
}
]
}
WorkflowTemplateIdModel
{
"type": "string",
"example": "600b296c3e15a234ab88f884",
"description": "The identifier of the workflow template"
}
WorkflowsCreateComment400Response
{
"type": "object",
"properties": {}
}
WorkflowsCreateCommentRequest
{
"type": "object",
"required": [
"creator",
"comment"
],
"properties": {
"comment": {
"type": "string",
"description": "The comment text to add, accepts user mentions in the form of <@user_id_or_email>."
},
"creator": {
"$ref": "#/components/schemas/CreatorEmailModel"
},
"addUsersToWorkflow": {
"type": "boolean",
"description": "Must be set to true if mentioning users who are not participants on the workflow."
},
"repliedToActivityFeedMessageId": {
"type": "string",
"description": "Use to specify the comment to reply to"
}
}
}
WorkflowsCreateCommentRequest1
{
"type": "object",
"required": [
"creator",
"comment"
],
"properties": {
"comment": {
"type": "string",
"description": "The comment text to add, accepts user mentions in the form of <@user_id_or_email>."
},
"creator": {
"$ref": "#/components/schemas/CreatorEmailModel"
},
"addUsersToWorkflow": {
"type": "boolean",
"description": "Must be set to true if mentioning users who are not participants on the workflow."
},
"repliedToActivityFeedMessageId": {
"type": "string",
"description": "Use to specify the comment to reply to"
}
}
}
WorkflowsCreateCommentResponse
{
"type": "object",
"properties": {}
}
WorkflowsGetApprovalRequests403Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "FORBIDDEN"
},
"message": {
"type": "string",
"example": "access forbidden"
}
}
}
WorkflowsGetApprovalRequests404Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "workflowId"
},
"message": {
"type": "string",
"example": "workflow does not exist"
}
}
}
WorkflowsGetApprovalRequestsResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string",
"example": "approver58348a760b354ab3a986f56a74656c86"
},
"status": {
"type": "string",
"example": "approved"
},
"actorId": {
"type": "string",
"example": "6334b636b9fb1eb6e76ada97"
},
"endTime": {
"type": "string",
"example": "2022-09-28T19:21:05.034Z"
},
"roleName": {
"type": "string",
"example": "CEO"
},
"actorType": {
"type": "string",
"example": "User"
},
"startTime": {
"type": "string",
"example": "2022-09-20T15:51:54.156Z"
},
"actorDetails": {
"type": "object",
"example": {
"userName": {
"type": "string",
"example": "Cave Johnson"
},
"userEmail": {
"type": "string",
"example": "cave@aperturescience.com"
}
}
},
"approvalType": {
"type": "string",
"example": "Workflow"
}
}
}
},
"page": {
"type": "integer",
"default": 0,
"example": 0
},
"count": {
"type": "integer",
"example": 42
},
"pageSize": {
"type": "integer",
"default": 20,
"example": 20
}
}
}
WorkflowsGetAsyncJobStatus404Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "parameter identifier"
},
"message": {
"type": "string",
"example": "not found"
}
}
}
WorkflowsGetAsyncJobStatusResponse
{
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/WorkflowAsyncLaunchSuccessResponse"
},
{
"$ref": "#/components/schemas/WorkflowAsyncLaunchFailedResponse"
},
{
"$ref": "#/components/schemas/WorkflowAsyncInProgressResponse"
}
],
"title": "Workflow Launch Status",
"readOnly": true,
"description": "The current status of the launch workflow job."
}
WorkflowsGetAttachmentFromEmailThread404Response
{
"oneOf": [
{
"$ref": "#/components/schemas/WorkflowNotFound"
},
{
"$ref": "#/components/schemas/EmailNotFound"
},
{
"$ref": "#/components/schemas/AttachmentNotFound"
}
]
}
WorkflowsGetAttachmentFromEmailThreadResponse
{
"type": "object",
"properties": {}
}
WorkflowsGetDocumentByKey400Response
{
"type": "object",
"properties": {}
}
WorkflowsGetDocumentByKeyResponse
{
"type": "object",
"properties": {}
}
WorkflowsGetEmailThreadResponse
{
"oneOf": [
{
"$ref": "#/components/schemas/WorkflowNotFound"
},
{
"$ref": "#/components/schemas/EmailNotFound"
}
]
}
WorkflowsGetEmailThreadsResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EmailResponseModel"
}
},
"page": {
"type": "integer",
"default": 0,
"example": 0
},
"count": {
"type": "integer",
"example": 1
},
"pageSize": {
"type": "integer",
"default": 20,
"example": 20
}
}
}
WorkflowsGetTurnHistory403Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "FORBIDDEN"
},
"message": {
"type": "string",
"example": "access forbidden"
}
}
}
WorkflowsGetTurnHistory404Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "workflowId"
},
"message": {
"type": "string",
"example": "workflow does not exist"
}
}
}
WorkflowsGetTurnHistoryResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"turnParty": {
"type": "string",
"example": "internal"
},
"turnNumber": {
"type": "integer",
"example": 1
},
"turnUserId": {
"type": "string",
"example": "5f89b6a5eed2cc6e0b2735d4"
},
"turnEndTime": {
"type": "string",
"example": "2022-09-28T19:21:05.034Z"
},
"turnLocation": {
"type": "string",
"example": "manual change"
},
"turnStartTime": {
"type": "string",
"example": "2022-09-20T15:51:54.156Z"
},
"turnUserEmail": {
"type": "string",
"example": "baldwin@ironcladhq.com"
}
}
}
},
"page": {
"type": "integer",
"default": 0,
"example": 0
},
"count": {
"type": "integer",
"example": 42
},
"pageSize": {
"type": "integer",
"default": 20,
"example": 20
}
}
}
WorkflowsGetWorkflowResponse
{
"type": "object",
"properties": {}
}
WorkflowsGetWorkflowSchema400Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"param": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
WorkflowsGetWorkflowSchemaResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "6013609108b8f070cee94fc1"
},
"name": {
"type": "string",
"example": "MNDA"
},
"schema": {
"type": "object",
"properties": {
"fee": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "monetaryAmount"
},
"displayName": {
"type": "string",
"example": "Example Monetary Amount Attribute"
}
}
},
"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"
}
}
}
}
},
"amount": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "number"
},
"displayName": {
"type": "string",
"example": "Example Number Attribute"
}
}
},
"lineItems": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "array"
},
"elementType": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "object"
},
"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"
}
}
}
}
},
"displayName": {
"type": "string",
"example": "Example Object Attribute"
}
}
}
}
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "string"
},
"displayName": {
"type": "string",
"example": "Example String Attribute"
}
}
}
}
},
"permissions": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"launch",
"view"
]
}
}
}
WorkflowsLaunchAsynchronously400Response
{
"type": "object",
"properties": {}
}
WorkflowsLaunchAsynchronouslyResponse
{
"type": "object",
"title": "",
"required": [
"asyncJobId",
"asyncJobStatusUrl"
],
"properties": {
"asyncJobId": {
"type": "string",
"title": "",
"example": "jobIda89474a8ba364f79bb510517d7bd3fea",
"readOnly": true,
"description": ""
},
"asyncJobStatusUrl": {
"type": "string",
"title": "",
"example": "http://ironcladapp.com/public/api/v1/workflows/async/jobIda89474a8ba364f79bb510517d7bd3fea",
"readOnly": true,
"description": ""
}
},
"description": ""
}
WorkflowsListAllParticipants403Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "FORBIDDEN"
},
"message": {
"type": "string",
"example": "access forbidden"
}
}
}
WorkflowsListAllParticipants404Response
{
"oneOf": [
{
"$ref": "#/components/schemas/WorkflowNotFound"
}
]
}
WorkflowsListAllParticipantsResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "boba@intergalactic.com"
},
"userId": {
"type": "string",
"example": "61968ae4945dcecf4a78cc83"
}
}
}
},
"page": {
"type": "integer",
"default": 0,
"example": 0
},
"count": {
"type": "integer",
"example": 1
},
"pageSize": {
"type": "integer",
"default": 20,
"example": 20
}
}
}
WorkflowsListAllResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkflowResponseModel"
}
},
"page": {
"type": "integer",
"default": 0,
"example": 0
},
"count": {
"type": "integer",
"default": 0,
"example": 1234
},
"pageSize": {
"type": "integer",
"default": 0,
"example": 20
}
}
}
WorkflowsListAllWorkflowSchemas400Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "MISSING_PARAM"
},
"param": {
"type": "string",
"example": "parameter identifier"
},
"message": {
"type": "string",
"example": "reason why something has gone wrong"
}
}
}
WorkflowsListAllWorkflowSchemasResponse
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "a1b2c3d4"
},
"name": {
"type": "string",
"example": "MNDA"
},
"schema": {
"type": "object",
"properties": {
"fee": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "monetaryAmount"
},
"displayName": {
"type": "string",
"example": "Example Monetary Amount Attribute"
}
}
},
"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"
}
}
}
}
},
"amount": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "number"
},
"displayName": {
"type": "string",
"example": "Example Number Attribute"
}
}
},
"lineItems": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "array"
},
"elementType": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "object"
},
"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"
}
}
}
}
},
"displayName": {
"type": "string",
"example": "Example Object Attribute"
}
}
}
}
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "string"
},
"displayName": {
"type": "string",
"example": "Example String Attribute"
}
}
}
}
},
"permissions": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"launch",
"view"
]
}
}
}
}
}
}
WorkflowsListApprovals400Response
{
"type": "object",
"properties": {}
}
WorkflowsListApprovalsResponse
{
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "legal"
},
"assignees": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bobafett@gmail.com"
},
"userId": {
"type": "string",
"example": "63d415e0dd0d828c3a878548"
},
"userName": {
"type": "string",
"example": "Boba Fett"
}
}
}
},
"displayName": {
"type": "string",
"example": "Legal"
}
}
}
},
"title": {
"type": "string",
"example": "Consulting Agreement with Michael Scott Paper Company"
},
"workflowId": {
"type": "string",
"example": "5f595f76c4fc9b3571413c3ac"
},
"approvalGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reviewers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string",
"example": "finance"
},
"status": {
"type": "string",
"example": "pending"
},
"displayName": {
"type": "string",
"example": "Finance"
},
"reviewerType": {
"type": "string",
"example": "role"
}
}
}
}
}
}
}
}
}
WorkflowsListSignatures400Response
{
"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"
}
}
}
WorkflowsListSignatures403Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "FORBIDDEN"
},
"message": {
"type": "string",
"example": "access forbidden"
}
}
}
WorkflowsListSignaturesResponse
{
"type": "object",
"properties": {
"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@gmail.com"
},
"roleName": {
"type": "string",
"example": "Counterparty Signer"
},
"delegates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Kim Lam"
},
"email": {
"type": "string",
"example": "kimlam@gmail.com"
}
}
}
},
"signatureStatus": {
"type": "string",
"example": "sent"
}
}
}
},
"workflowId": {
"type": "string",
"example": "6dac47a10b1242d1f7df688d"
}
}
}
WorkflowsRevertToReview403Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "FORBIDDEN"
},
"param": {
"type": "string",
"example": "user"
},
"message": {
"type": "string",
"example": "user is not a participant on the workflow"
}
}
}
WorkflowsRevertToReview404Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "workflowId"
},
"message": {
"type": "string",
"example": "workflow does not exist"
}
}
}
WorkflowsRevertToReviewRequest
{
"type": "object",
"required": [
"user",
"status"
],
"properties": {
"user": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "email",
"description": "The mechanism of identifying the Ironclad user's account."
},
"email": {
"type": "string",
"example": "jango@intergalactic.com",
"description": "The Ironclad user's email address."
}
},
"description": "The Ironclad user reverting the workflow to the Review step. The user must be a participant on the workflow."
}
}
}
WorkflowsRevertToReviewResponse
{
"type": "object",
"properties": {
"code": {
"enum": [
"INVALID_PARAM",
"INVALID_STATE"
],
"type": "string",
"example": "INVALID_STATE"
},
"param": {
"type": "string",
"example": "user"
},
"message": {
"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"
],
"type": "string",
"example": "workflow cannot be reverted to review as it is not in the sign stage"
}
}
}
WorkflowsUpdateApprovalStatus400Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "approval"
},
"message": {
"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"
],
"type": "string",
"example": "This role does not exist in this workflow"
}
}
}
WorkflowsUpdateApprovalStatusRequest
{
"type": "object",
"required": [
"user",
"status"
],
"properties": {
"user": {
"type": "object",
"properties": {
"type": {
"type": "string",
"default": "email",
"description": "The mechanism of identifying the Ironclad user's account."
},
"email": {
"type": "string",
"example": "fett@intergalactic.com",
"description": "The Ironclad user's email address."
}
},
"description": "The Ironclad user approving the workflow. The user must be currently assigned as the approver."
},
"status": {
"enum": [
"approved",
"pending"
],
"type": "string",
"description": "The new approval status."
}
}
}
WorkflowsUpdateApprovalStatusResponse
{
"type": "boolean",
"example": true
}
WorkflowsUpdateMetadata400Response
{
"type": "object",
"properties": {
"code": {
"type": "string"
},
"param": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
WorkflowsUpdateMetadata403Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "FORBIDDEN"
},
"message": {
"type": "string",
"example": "access forbidden"
}
}
}
WorkflowsUpdateMetadata404Response
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "NOT_FOUND"
},
"param": {
"type": "string",
"example": "parameter identifier"
},
"message": {
"type": "string",
"example": "not found"
}
}
}
WorkflowsUpdateMetadataRequest
{
"type": "object",
"required": [
"updates"
],
"properties": {
"comment": {
"type": "string",
"example": "Changing attribute on a Workflow.",
"description": "A comment that explains the updates you are making to the workflow."
},
"updates": {
"type": "array",
"items": {
"type": "object",
"required": [
"action",
"path"
],
"properties": {
"path": {
"type": "string",
"example": "counterpartyName",
"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."
},
"value": {
"type": "string",
"example": "Example Company",
"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."
},
"action": {
"enum": [
"set",
"remove"
],
"type": "string",
"default": "set",
"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."
}
}
}
}
}
}
WorkflowsUpdateMetadataResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "6013609108b8f070cee94fc1"
},
"step": {
"type": "string",
"example": "Review"
},
"roles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "legal"
},
"assignees": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bobafett@gmail.com"
},
"userId": {
"type": "string",
"example": "63d415e0dd0d828c3a878548"
},
"userName": {
"type": "string",
"example": "Boba Fett"
}
}
}
},
"displayName": {
"type": "string",
"example": "Legal"
}
}
}
},
"title": {
"type": "string",
"example": "Consulting Agreement with Jane Doe"
},
"schema": {
"type": "object",
"properties": {
"fee": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "monetaryAmount"
},
"displayName": {
"type": "string",
"example": "Example Monetary Amount Attribute"
}
}
},
"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"
}
}
}
}
},
"amount": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "number"
},
"displayName": {
"type": "string",
"example": "Example Number Attribute"
}
}
},
"lineItems": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "array"
},
"elementType": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "object"
},
"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"
}
}
}
}
},
"displayName": {
"type": "string",
"example": "Example Object Attribute"
}
}
}
}
},
"counterpartyName": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "string"
},
"displayName": {
"type": "string",
"example": "Example String Attribute"
}
}
}
}
},
"status": {
"type": "string",
"example": "active"
},
"created": {
"type": "string",
"example": "2016-11-17T00:37:22.318Z"
},
"creator": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "63d415e0dd0d828c3a878548"
},
"email": {
"type": "string",
"example": "fett@intergalactic.com"
},
"displayName": {
"type": "string",
"example": "Boba Fett"
}
}
},
"template": {
"type": "string",
"example": "600b296c3e15a234ab88f884"
},
"approvals": {
"type": "object",
"properties": {
"url": {
"type": "string",
"example": "https://ironcladapp.com/public/api/v1/workflows/22e2ff72-56a1-4711-a4ca-41328d311e9f/approvals"
},
"state": {
"type": "string",
"example": "in_progess"
}
}
},
"recordIds": {
"type": "array",
"items": {
"type": "string",
"example": "715f1e37-292f-4e6c-8b48-c07e1b68bccd"
}
},
"attributes": {
"type": "object",
"properties": {
"fee": {
"type": "object",
"properties": {
"amount": {
"type": "integer",
"default": 0,
"example": 50000
},
"currency": {
"type": "string",
"example": "USD"
}
}
},
"draft": {
"type": "array",
"items": {
"type": "object",
"properties": {
"version": {
"type": "string",
"example": "B1QePArXb"
},
"download": {
"type": "string",
"example": "/public/api/v1/workflows/594356b9fbcd7f74006fdf8a/document/rJklwCHQ/download"
},
"filename": {
"type": "string",
"example": "file.pdf"
}
}
}
},
"amount": {
"type": "integer",
"default": 0,
"example": 123
},
"counterpartyName": {
"type": "string",
"example": "Boba Fett"
}
}
},
"ironcladId": {
"type": "string",
"example": "IC-1"
},
"isComplete": {
"type": "boolean",
"default": true,
"example": false
},
"signatures": {
"type": "object",
"properties": {
"url": {
"type": "string",
"example": "https://ironcladapp.com/public/api/v1/workflows/6dac47a10b1242d1f7df688d/signatures"
},
"state": {
"type": "string",
"example": "in_progess"
}
}
},
"isCancelled": {
"type": "boolean",
"default": true,
"example": false
},
"lastUpdated": {
"type": "string",
"example": "2016-11-17T00:37:22.318Z"
},
"isRevertibleToReview": {
"type": "boolean",
"example": false
}
}
}
webhookEventTypeValue
{
"enum": [
"*",
"workflow_launched",
"workflow_updated",
"workflow_cancelled",
"workflow_completed",
"workflow_approval_status_changed",
"workflow_attribute_updated",
"workflow_comment_added",
"workflow_comment_removed",
"workflow_comment_updated",
"workflow_comment_reaction_added",
"workflow_comment_reaction_removed",
"workflow_counterparty_invite_sent",
"workflow_counterparty_invite_revoked",
"workflow_documents_added",
"workflow_documents_removed",
"workflow_documents_updated",
"workflow_documents_renamed",
"workflow_document_edited",
"workflow_changed_turn",
"workflow_paused",
"workflow_resumed",
"workflow_signature_packet_sent",
"workflow_signature_packet_uploaded",
"workflow_signature_packet_cancelled",
"workflow_signer_added",
"workflow_signer_removed",
"workflow_signer_reassigned",
"workflow_step_updated"
],
"type": "string",
"example": "workflow_launched"
}
webhookInvalidEventTypeBadRequestResponse
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "events"
},
"message": {
"type": "string",
"example": "invalid event type; *, workflow_launched, workflow_updated, workflow_cancelled, workflow_completed, workflow_approval_status_changed, workflow_attribute_updated, workflow_changed_turn, workflow_comment_reaction_added, workflow_comment_reaction_removed, workflow_comment_added, workflow_comment_removed, workflow_comment_updated, workflow_counterparty_invite_sent, workflow_counterparty_invite_revoked, workflow_documents_added, workflow_documents_removed, workflow_documents_updated, workflow_documents_renamed, workflow_document_edited, workflow_paused, workflow_resumed, workflow_signature_packet_sent, workflow_signature_packet_uploaded, or workflow_signature_packet_cancelled, workflow_signer_added, workflow_signer_removed, workflow_signer_reassigned are acceptable event types"
}
}
}
webhookTargetURLExistsBadRequestResponse
{
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "INVALID_PARAM"
},
"param": {
"type": "string",
"example": "tagetURL"
},
"message": {
"type": "string",
"example": "webhook already exists for event workflow_completed and target [SOME_EXISTING_TARGET_URL]"
}
}
}