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 |
|---|---|---|---|---|
| page | query | optional | integer | The page number used when paginating through a list of results. |
| pageSize | query | optional | integer | A limit of the number of results to return. |
| types | query | optional | string | Comma separated (no spaces) record types to export. Use the Retrieve Records Schema endpoint to retrieve a list of types. |
| lastUpdated | query | optional | string | Get records updated since (UTC) |
| filter | query | optional | string | Filter records for those that contain (1) the specified property with (2) the specified value. The record property ID should be enclosed in brackets |
| 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 |
200
400
GET /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: |
| properties | query | optional | string | IDs of properties to export, comma separated. Example: |
200
400
GET /records/export
/records/metadata
View the schema associated with contract records, including available record types and metadata properties.
200
400
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. |
200
400
403
404
GET /records/smart-import
/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. |
200
400
GET /records/{id}
/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. |
200
400
GET /records/{id}/attachments/{key}
/webhooks
View all webhooks associated with a specific company with filtering available via query parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page number used when paginating through a list of results. |
| pageSize | query | optional | integer | A limit of the number of results to return. |
200
400
GET /webhooks
/webhooks/verification-key
View the verification key for webhook security implementations
200
400
GET /webhooks/verification-key
/webhooks/{id}
View the data associated with a specific webhook
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the webhook. |
200
400
GET /webhooks/{id}
/workflows
List all workflows in your Ironclad account.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | integer | The page number used when paginating through a list of results. |
| pageSize | query | optional | integer | A limit of the number of results to return. |
| status | query | optional | string | Filter the workflows that are listed based on their status. If this parameter is omitted, |
| 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 Workflow attributes for a specific workflow design can be identified using the List All Workflow Schemas endpoint. Supported formula operations include:
For more information on writing formulas, please refer to |
200
GET /workflows
/workflows/async/{asyncJobId}
Check the status of a Workflow you created while using the Create a Workflow Async route.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| asyncJobId | path | required | string | The identifier provided in the response of creating a Workflow asynchronously. |
The status of the workflow launch.
404
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. |
200
400
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. |
| page | query | optional | integer | The page number used when paginating through a list of results. |
| pageSize | query | optional | integer | A limit of the number of results to return. |
| actorDetails | query | optional | boolean | An optional boolean parameter that adds additional information about the actor to each item in the response. Defaults to false. |
200
403
404
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. |
200
400
GET /workflows/{id}/approvals
/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 endpoint. In the response, locate the file attribute (e.g., |
200
400
GET /workflows/{id}/document/{key}/download
/workflows/{id}/emails
List all email threads in the specified workflow
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | optional | string | The unique identifier of a workflow |
| page | query | optional | integer | The page number used when paginating through a list of results. |
| pageSize | query | optional | integer | A limit of the number of results to return. |
GET Emails Response.
404 not found
GET /workflows/{id}/emails
/workflows/{id}/emails/{emailThreadId}
List a single email thread for a specified workflow
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | optional | string | The unique identifier of a workflow |
| emailThreadId | path | optional | string | The unique identifier of an email thread |
GET Email Response
404 not found
GET /workflows/{id}/emails/{emailThreadId}
/workflows/{id}/emails/{emailThreadId}/attachments/{attachmentId}
Retrieve an attachment from the specified email thread
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | optional | string | The unique identifier of a workflow |
| emailThreadId | path | optional | string | The unique identifier of an email thread |
| attachmentId | path | required | string | The unique identifier for the attachment. This key can be located using the Retrieve email threads from workflow endpoint. In the response, locate the file attribute (e.g., |
200
404 not found
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. |
| page | query | optional | integer | The page number used when paginating through a list of results. |
| pageSize | query | optional | integer | A limit of the number of results to return. |
| query | optional | string | The Ironclad user’s email address. |
200
403
404 not found
GET /workflows/{id}/participants
/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. |
200
400
403
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. |
| page | query | optional | integer | The page number used when paginating through a list of results. |
| pageSize | query | optional | integer | A limit of the number of results to return. |
200
403
404
GET /workflows/{id}/turn-history
/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. |
| x-as-user-email | header | optional | string | Filters the list of workflow schemas based on the permissions of a user associated with the specified user email. Permissions can be launch, view, or both. Corresponds to the permissions here: https://support.ironcladapp.com/s/article/Understanding-and-Managing-Permissions |
| x-as-user-id | header | optional | string | Filters the list of workflow schemas based on the permissions of a user associated with the specified user id. Permissions can be launch, view, or both. Corresponds to the permissions here: https://support.ironcladapp.com/s/article/Understanding-and-Managing-Permissions |
200
400
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). A list of identifiers can be retrieved using the |
| form | query | optional | string | — |
| x-as-user-email | header | optional | string | Filters the list of workflow schemas based on the permissions of a user associated with the specified user email. Permissions can be launch, view, or both. Corresponds to the permissions here: https://support.ironcladapp.com/s/article/Understanding-and-Managing-Permissions |
| x-as-user-id | header | optional | string | Filters the list of workflow schemas based on the permissions of a user associated with the specified user id. Permissions can be launch, view, or both. Corresponds to the permissions here: https://support.ironcladapp.com/s/article/Understanding-and-Managing-Permissions |
200
400
GET /workflow-schemas/{id}
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": {}
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1 | 41 | 142 | 2026-05-11 | current |
| 1 | 41 | 142 | 2026-04-16 |