Documents

Document Download

GET
/documents/document/{documentId}/download

Downloads a previously stored document by its storage id and returns the raw file as an octet-stream. The caller must own the file (ownership is verified against the stored subscription-user metadata). Use the id returned by an upload or by document generation delivered to Storage.

Authorization

AuthorizationBearer <token>

JWT token to authenticate the request.

In: header

X-Api-Key<token>

API key, sent as a request header.

In: header

Path Parameters

documentId*string

Storage id (GUID) of the document to download, as returned by an upload or generation response.

Formatuuid

Header Parameters

X-Service-Authorization?string

Service-to-service auth token, used as an alternative to Authorization for service-principal callers.

X-Client-Authorization?string

Client auth token, used as an alternative to Authorization for client-application callers.

X-Email?string

Caller email, used for identity resolution when authenticating via a service or client auth token.

X-OAuth-Flow?string

Indicates which OAuth flow variant issued the Authorization token.

X-Storage-Type*string

Container-type key used to look up the blob. Must match whichever container the file was originally uploaded to: document-data, document-template, or document-input. Not strictly enforced as a closed enum; an unrecognized value surfaces as a generic FILE_DOWNLOAD_FAILED.

Response Body

application/octet-stream

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/documents/document/497f6eca-6276-4993-bfeb-53cbbbba6f08/download" \  -H "X-Storage-Type: document-data"
Empty
{  "error": {    "statusCode": 401,    "message": "The request could not be authenticated.",    "innerErrors": [      {        "code": "UNAUTHORIZED",        "message": "The request could not be authenticated.",        "userMessage": "Your session has expired or is invalid. Please sign in again."      }    ]  },  "origin": "https://app.mavenmule.com",  "dateTime": "2026-07-14T09:32:15.0000000+00:00",  "operationId": "3a4b5c6d7e8f90112233445566778899"}
{  "error": {    "statusCode": 403,    "message": "The requested file does not belong to the authenticated user.",    "innerErrors": [      {        "code": "FILE_ACCESS_DENIED",        "message": "The requested file does not belong to the authenticated user.",        "userMessage": "You don't have access to this file."      }    ]  },  "origin": "https://app.mavenmule.com",  "dateTime": "2026-07-14T09:32:15.0000000+00:00",  "operationId": "3a4b5c6d7e8f90112233445566778899"}
{  "error": {    "statusCode": 404,    "message": "No file was found for the supplied id.",    "innerErrors": [      {        "code": "NOT_FOUND_BY_ID",        "message": "No file was found for the supplied id.",        "userMessage": "We couldn't find that file. Check the id and try again."      }    ]  },  "origin": "https://app.mavenmule.com",  "dateTime": "2026-07-14T09:32:15.0000000+00:00",  "operationId": "3a4b5c6d7e8f90112233445566778899"}
{  "error": {    "statusCode": 500,    "message": "Failed to read the requested file from storage.",    "innerErrors": [      {        "code": "FILE_DOWNLOAD_FAILED",        "message": "Failed to read the requested file from storage.",        "userMessage": "Something went wrong while downloading. Please try again or contact support."      }    ]  },  "origin": "https://app.mavenmule.com",  "dateTime": "2026-07-14T09:32:15.0000000+00:00",  "operationId": "3a4b5c6d7e8f90112233445566778899"}