---
updatedAt: 2026-04-23T19:29:54.000Z
agentTools:
  projectIndex: https://developer.ironcladapp.com/llms.txt
---

# Retrieve Documents from a Workflow

Retrieve all documents from a workflow that are included and excluded from the signature packet. 

**OAuth Scope required:** `public.workflows.readDocuments`

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Ironclad Public API",
    "description": "Documentation for Ironclad's REST API.\n\n## Pagination\n\nList endpoints (for example `/obligations`, `/records`, `/entities`, and `/workflows`) return results one page at a time. Request pages with the `page` (zero-based) and `pageSize` query parameters; see the `pageSize` parameter on each endpoint for its default and maximum. Each response echoes `page` and `pageSize` and includes `count` (the total number of items matching the query across ALL pages) and `list` (the items on the current page). When `count` is greater than the number of items you have retrieved so far, request the next page by incrementing `page` until you have collected everything you need.",
    "contact": {
      "name": "Ironclad Support",
      "email": "support@ironcladapp.com"
    },
    "version": "1"
  },
  "servers": [
    {
      "url": "https://ironcladapp.com/public/api/v1",
      "description": "Production server"
    },
    {
      "url": "https://eu1.ironcladapp.com/public/api/v1",
      "description": "EU Production server"
    },
    {
      "url": "https://demo.ironcladapp.com/public/api/v1",
      "description": "Demo server"
    }
  ],
  "paths": {
    "/workflows/{id}/documents": {
      "get": {
        "summary": "Retrieve Documents from a Workflow",
        "description": "Retrieve all documents from a workflow that are included and excluded from the signature packet. \n\n**OAuth Scope required:** `public.workflows.readDocuments`",
        "operationId": "retrieve-workflow-documents",
        "parameters": [
          {
            "$ref": "#/components/parameters/XAsUserEmail"
          },
          {
            "$ref": "#/components/parameters/XAsUserId"
          },
          {
            "$ref": "#/components/parameters/WorkflowOrIroncladId"
          }
        ],
        "security": [
          {
            "sec0": [],
            "OAuth2": [
              "public.workflows.readDocuments"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "signaturePacketDocuments": {
                      "description": "The signature packet documents in the order they are displayed on the packet.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WorkflowDocumentModel"
                      }
                    },
                    "excludedFromSignaturePacketDocuments": {
                      "description": "The documents that are excluded from the signature packet.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WorkflowDocumentModel"
                      }
                    }
                  },
                  "required": [
                    "signaturePacketDocuments",
                    "excludedFromSignaturePacketDocuments"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError401"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenError403"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError404"
          }
        },
        "tags": [
          "Workflows"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "WorkflowDocumentModel": {
        "type": "object",
        "required": [
          "version",
          "versionNumber",
          "filename",
          "key",
          "download"
        ],
        "properties": {
          "version": {
            "description": "The version ID of the document's latest version",
            "type": "string",
            "example": "B1QePArXb"
          },
          "versionNumber": {
            "description": "The latest version number of the document",
            "type": "number",
            "example": 2
          },
          "filename": {
            "description": "The name of the document with the extension",
            "type": "string",
            "example": "file.pdf"
          },
          "key": {
            "description": "The unique key associated with the document",
            "type": "string",
            "example": "rJklwCHQ"
          },
          "download": {
            "description": "The URL to download the document omitting the base URL",
            "type": "string",
            "example": "/public/api/v1/workflows/594356b9fbcd7f74006fdf8a/document/rJklwCHQ/download"
          },
          "lastModified": {
            "description": "The timestamp and author of the last modification to the document",
            "type": "object",
            "required": [
              "timestamp"
            ],
            "properties": {
              "timestamp": {
                "description": "The timestamp of the last modification to the document (ISO 8601 format)",
                "type": "string",
                "example": "2016-11-17T00:37:22.318Z"
              },
              "author": {
                "description": "The author of the last modification to the document",
                "example": {
                  "type": "internal",
                  "companyName": "Stark Industries",
                  "displayName": "Tony Stark",
                  "email": "tony.stark@starkindustries.com",
                  "userId": "5f0375c4cdc1927a3c5edcd3"
                },
                "$ref": "#/components/schemas/ActivityFeedAuthor"
              }
            }
          },
          "fileHash": {
            "description": "A change-detection token for this document version. Compare it against the value you stored on your last sync of the same document to tell whether the contents changed. This is NOT a checksum of the bytes served by `download`: for zip-based formats (.docx, .xlsx) the hash covers the sorted archive entries excluding `word/settings.xml`, so re-hashing a downloaded file will not reproduce it, and it is not comparable to the `fileHash` returned for record attachments. Omitted for documents created before content hashing was introduced.",
            "type": "string",
            "example": "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"
          },
          "hashAlgorithm": {
            "description": "The algorithm used to compute `fileHash`.",
            "type": "string",
            "enum": [
              "sha1"
            ],
            "example": "sha1"
          }
        }
      },
      "ActivityFeedAuthor": {
        "title": "Activity Feed Author",
        "description": "The author of an activity feed item",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/InternalActivityFeedAuthor"
          },
          {
            "$ref": "#/components/schemas/ExternalActivityFeedAuthor"
          },
          {
            "$ref": "#/components/schemas/IntegrationActivityFeedAuthor"
          },
          {
            "$ref": "#/components/schemas/SystemActivityFeedAuthor"
          }
        ]
      },
      "InternalActivityFeedAuthor": {
        "title": "Internal Activity Feed Author",
        "description": "An internal author of an activity feed item",
        "type": "object",
        "required": [
          "type",
          "companyName"
        ],
        "properties": {
          "type": {
            "description": "The type of author",
            "type": "string",
            "enum": [
              "internalUser"
            ],
            "example": "internalUser"
          },
          "companyName": {
            "description": "The company name of the author",
            "type": "string",
            "example": "Jabba the Hutt Industries"
          },
          "displayName": {
            "description": "The display name of the author",
            "type": "string",
            "example": "Boba Fett"
          },
          "email": {
            "description": "The email of the author",
            "type": "string",
            "example": "boba@example.com"
          },
          "userId": {
            "description": "The user ID of the author",
            "type": "string",
            "example": "63d415e0dd0d828c3a878548"
          }
        }
      },
      "ExternalActivityFeedAuthor": {
        "title": "External Activity Feed Author",
        "description": "An external author of an activity feed item (typically a counterparty)",
        "type": "object",
        "required": [
          "type",
          "companyName"
        ],
        "properties": {
          "type": {
            "description": "The type of author",
            "type": "string",
            "enum": [
              "externalUser"
            ],
            "example": "externalUser"
          },
          "companyName": {
            "description": "The company name of the author",
            "type": "string",
            "example": "Jedi Order"
          },
          "displayName": {
            "description": "The display name of the author",
            "type": "string",
            "example": "Luke Skywalker"
          },
          "email": {
            "description": "The email of the author",
            "type": "string",
            "example": "luke@example.com"
          }
        }
      },
      "IntegrationActivityFeedAuthor": {
        "title": "Integration Activity Feed Author",
        "description": "An integration author of an activity feed item",
        "type": "object",
        "required": [
          "type",
          "displayName"
        ],
        "properties": {
          "type": {
            "description": "The type of author",
            "type": "string",
            "enum": [
              "integration"
            ],
            "example": "integration"
          },
          "displayName": {
            "description": "The display name of the integration",
            "type": "string",
            "example": "Salesforce"
          }
        }
      },
      "SystemActivityFeedAuthor": {
        "title": "System Activity Feed Author",
        "description": "A system author of an activity feed item",
        "type": "object",
        "required": [
          "type",
          "displayName"
        ],
        "properties": {
          "type": {
            "description": "The type of author",
            "type": "string",
            "enum": [
              "system"
            ],
            "example": "system"
          },
          "displayName": {
            "description": "The display name of the system",
            "type": "string",
            "enum": [
              "Ironclad"
            ],
            "example": "Ironclad"
          }
        }
      }
    },
    "responses": {
      "UnauthorizedError401": {
        "description": "401",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "enum": [
                    "UNAUTHORIZED"
                  ],
                  "example": "UNAUTHORIZED"
                },
                "message": {
                  "type": "string",
                  "example": "invalid authentication token"
                }
              }
            },
            "examples": {
              "invalidToken": {
                "value": {
                  "code": "UNAUTHORIZED",
                  "message": "invalid authentication token"
                }
              },
              "revokedToken": {
                "value": {
                  "code": "UNAUTHORIZED",
                  "message": "token has been revoked"
                }
              },
              "expiredToken": {
                "value": {
                  "code": "UNAUTHORIZED",
                  "message": "token has expired"
                }
              }
            }
          }
        }
      },
      "ForbiddenError403": {
        "description": "403",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "example": "FORBIDDEN"
                },
                "message": {
                  "type": "string",
                  "example": "access forbidden"
                }
              }
            }
          }
        }
      },
      "NotFoundError404": {
        "description": "404",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "example": "NOT_FOUND"
                },
                "message": {
                  "type": "string",
                  "example": "not found"
                }
              }
            }
          }
        }
      }
    },
    "parameters": {
      "WorkflowOrIroncladId": {
        "name": "id",
        "in": "path",
        "description": "The unique identifier or Ironclad ID of a workflow.",
        "schema": {
          "type": "string"
        },
        "required": true
      },
      "XAsUserEmail": {
        "name": "x-as-user-email",
        "in": "header",
        "description": "Denotes the actor of the request. When used, the API will take into account this user's permissions and access. This or `x-as-user-id` is required when the associated token was produced from the Client Credentials grant or with legacy bearer tokens on select endpoints. A token produced from the Authorization Code grant (which is already scoped to a user) may also use this header to act as a different user in the same company, provided the token carries the `identity.users.impersonate` scope and the token's own user has been granted the API User Impersonation permission. A request that sends this header without both never acts as the named user; depending on the company's configuration it either proceeds as the token's own user or is rejected with a 403. More information about [permissions](https://support.ironcladapp.com/hc/en-us/articles/23063233934999-Ironclad-Permissions-Overview).",
        "required": false,
        "schema": {
          "type": "string",
          "example": "jane.doe@test.com"
        }
      },
      "XAsUserId": {
        "name": "x-as-user-id",
        "in": "header",
        "description": "Denotes the actor of the request. When used, the API will take into account this user's permissions and access. This or `x-as-user-email` is required when the associated token was produced from the Client Credentials grant or with legacy bearer tokens on select endpoints. A token produced from the Authorization Code grant (which is already scoped to a user) may also use this header to act as a different user in the same company, provided the token carries the `identity.users.impersonate` scope and the token's own user has been granted the API User Impersonation permission. A request that sends this header without both never acts as the named user; depending on the company's configuration it either proceeds as the token's own user or is rejected with a 403. More information about [permissions](https://support.ironcladapp.com/hc/en-us/articles/23063233934999-Ironclad-Permissions-Overview).",
        "required": false,
        "schema": {
          "type": "string",
          "example": "5f0375c4cdc1927a3c5edcd3"
        }
      }
    },
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "x-bearer-format": "bearer"
      },
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://ironcladapp.com/oauth/authorize",
            "tokenUrl": "https://ironcladapp.com/oauth/token",
            "scopes": {
              "public.records.createRecords": "Create Records",
              "public.records.readRecords": "Read Records",
              "public.records.updateRecords": "Update Records",
              "public.records.deleteRecords": "Delete Records",
              "public.records.readSchemas": "Read Record Schemas",
              "public.records.createAttachments": "Create Record Attachments",
              "public.records.readAttachments": "Read Record Attachments",
              "public.records.deleteAttachments": "Delete Record Attachments",
              "public.records.createSmartImportRecords": "Create Records via Smart Import",
              "public.records.readSmartImportRecords": "Read Record Import Details from Smart Import",
              "public.records.applyContractAction": "Apply Contract Actions",
              "public.webhooks.createWebhooks": "Create Webhooks",
              "public.webhooks.readWebhooks": "Read Webhooks",
              "public.webhooks.updateWebhooks": "Update Webhooks",
              "public.webhooks.deleteWebhooks": "Delete Webhooks",
              "public.workflows.createWorkflows": "Create Workflows",
              "public.workflows.readWorkflows": "Read Workflows",
              "public.workflows.updateWorkflows": "Update Workflows",
              "public.workflows.createFromSource": "Launch Workflow from Attribute Source",
              "public.workflows.updateFromSource": "Refresh Workflow from Attribute Source",
              "public.workflows.readApprovals": "Read Workflow Approvals",
              "public.workflows.updateApprovals": "Update Workflow Approvals",
              "public.workflows.readSignatures": "Read Workflow Signatures",
              "public.workflows.uploadSignedDocuments": "Upload Signed Workflow Documents",
              "public.workflows.readParticipants": "Read Workflow Participants",
              "public.workflows.readRoleAssignees": "Read Workflow Role Eligible Assignees",
              "public.workflows.updateRoleAssignment": "Update Workflow Role Assignment",
              "public.workflows.revertToReview": "Revert Workflows to Review",
              "public.workflows.cancel": "Cancel Workflows",
              "public.workflows.pauseAndResume": "Resume and Pause Workflows",
              "public.workflows.createComments": "Create Workflow Comments",
              "public.workflows.readComments": "Read Workflow Comments",
              "public.workflows.createDocuments": "Create Workflow Documents",
              "public.workflows.readDocuments": "Read Workflow Documents",
              "public.workflows.updateSignaturePacket": "Update Signature Packet",
              "public.workflows.readSchemas": "Read Workflow Schemas",
              "public.workflows.readTurnHistory": "Read Workflow Turn History",
              "public.workflows.readEmailCommunications": "Read Workflow Email Communications",
              "public.workflows.readSignStatus": "Read Sign Status",
              "public.records.createComments": "Create Workflow Comments",
              "public.export.createReports": "Create Reports",
              "public.export.readReports": "Read Reports",
              "public.workflows.createSignatureRecipientUrls": "Create Signature Request Recipient URLs",
              "public.workflows.createEmbeddableSignerUrls": "Create Embeddable Signature Request Recipient URLs",
              "public.workflows.sendSignatureRequests": "Send Signature Requests",
              "public.workflows.cancelSignatureRequests": "Cancel Signature Requests",
              "public.workflows.deleteSigners": "Delete Signers",
              "public.workflows.remindSigners": "Remind Signers",
              "public.workflows.updateSigners": "Update Signers",
              "public.entities.readRelationshipTypes": "Read Relationship Types",
              "public.entities.updateEntities": "Update Entities",
              "public.entities.deleteEntities": "Delete Entities",
              "public.entities.createEntities": "Create Entities",
              "public.entities.readEntities": "Read Entities",
              "public.obligations.readObligations": "Read Obligations",
              "public.obligations.createObligations": "Create Obligations",
              "public.obligations.updateObligations": "Update Obligations",
              "public.obligations.deleteObligations": "Delete Obligations",
              "public.workflows.scheduleSendSignatureRequest": "Schedule Send Signature Request",
              "public.workflows.updateScheduledSignatureRequest": "Update Scheduled Signature Request",
              "public.workflows.deleteScheduledSignatureRequest": "Delete Scheduled Signature Request",
              "public.signatureRequests.updateRequest": "Update Custom Signature Request Status",
              "public.search.conversational": "Run Conversational agent Search",
              "public.adapters.triggerFlow": "Trigger Adapter Flows"
            }
          },
          "clientCredentials": {
            "tokenUrl": "https://ironcladapp.com/oauth/token",
            "scopes": {
              "public.records.createRecords": "Create Records",
              "public.records.readRecords": "Read Records",
              "public.records.updateRecords": "Update Records",
              "public.records.deleteRecords": "Delete Records",
              "public.records.readSchemas": "Read Record Schemas",
              "public.records.createAttachments": "Create Record Attachments",
              "public.records.readAttachments": "Read Record Attachments",
              "public.records.deleteAttachments": "Delete Record Attachments",
              "public.records.createSmartImportRecords": "Create Records via Smart Import",
              "public.records.readSmartImportRecords": "Read Record Import Details from Smart Import",
              "public.records.applyContractAction": "Apply Contract Actions",
              "public.webhooks.createWebhooks": "Create Webhooks",
              "public.webhooks.readWebhooks": "Read Webhooks",
              "public.webhooks.updateWebhooks": "Update Webhooks",
              "public.webhooks.deleteWebhooks": "Delete Webhooks",
              "public.workflows.createWorkflows": "Create Workflows",
              "public.workflows.readWorkflows": "Read Workflows",
              "public.workflows.updateWorkflows": "Update Workflows",
              "public.workflows.createFromSource": "Launch Workflow from Attribute Source",
              "public.workflows.updateFromSource": "Refresh Workflow from Attribute Source",
              "public.workflows.readApprovals": "Read Workflow Approvals",
              "public.workflows.updateApprovals": "Update Workflow Approvals",
              "public.workflows.readSignatures": "Read Workflow Signatures",
              "public.workflows.uploadSignedDocuments": "Upload Signed Workflow Documents",
              "public.workflows.readParticipants": "Read Workflow Participants",
              "public.workflows.readRoleAssignees": "Read Workflow Role Eligible Assignees",
              "public.workflows.updateRoleAssignment": "Update Workflow Role Assignment",
              "public.workflows.revertToReview": "Revert Workflows to Review",
              "public.workflows.cancel": "Cancel Workflows",
              "public.workflows.pauseAndResume": "Resume and Pause Workflows",
              "public.workflows.createComments": "Create Workflow Comments",
              "public.workflows.readComments": "Read Workflow Comments",
              "public.workflows.createDocuments": "Create Workflow Documents",
              "public.workflows.readDocuments": "Read Workflow Documents",
              "public.workflows.updateSignaturePacket": "Update Signature Packet",
              "public.workflows.readSchemas": "Read Workflow Schemas",
              "public.workflows.readTurnHistory": "Read Workflow Turn History",
              "public.workflows.readEmailCommunications": "Read Workflow Email Communications",
              "public.records.createComments": "Create Workflow Comments",
              "public.export.createReports": "Create Reports",
              "public.export.readReports": "Read Reports",
              "public.workflows.createSignatureRecipientUrls": "Create Signature Request Recipient URLs",
              "public.workflows.createEmbeddableSignerUrls": "Create Embeddable Signature Request Recipient URLs",
              "public.workflows.sendSignatureRequests": "Send Signature Requests",
              "public.workflows.cancelSignatureRequests": "Cancel Signature Requests",
              "public.workflows.deleteSigners": "Delete Signers",
              "public.workflows.remindSigners": "Remind Signers",
              "public.workflows.updateSigners": "Update Signers",
              "public.entities.readRelationshipTypes": "Read Relationship Types",
              "public.entities.updateEntities": "Update Entities",
              "public.entities.deleteEntities": "Delete Entities",
              "public.entities.createEntities": "Create Entities",
              "public.entities.readEntities": "Read Entities",
              "public.obligations.readObligations": "Read Obligations",
              "public.obligations.createObligations": "Create Obligations",
              "public.obligations.updateObligations": "Update Obligations",
              "public.obligations.deleteObligations": "Delete Obligations",
              "public.workflows.scheduleSendSignatureRequest": "Schedule Send Signature Request",
              "public.workflows.updateScheduledSignatureRequest": "Update Scheduled Signature Request",
              "public.workflows.deleteScheduledSignatureRequest": "Delete Scheduled Signature Request",
              "public.signatureRequests.updateRequest": "Update Custom Signature Request Status",
              "public.adapters.triggerFlow": "Trigger Adapter Flows"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Workflows",
      "description": "Documentation on Ironclad Workflows."
    }
  ],
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true,
    "samples-languages": [
      "curl",
      "node",
      "ruby",
      "javascript",
      "python"
    ]
  }
}
```