Waiting for engine...
Skip to main content

Boomi MFT - AFT Content API Reference (v1) - Upload

Toggle Pane

Download OpenAPI Specification: Download

Run In Postman

For more information about Postman collections, forking, and making your first API call, refer to the Working with Boomi APIs on Postman page.

Upload

Delivery of file content into a flow endpoint. Small files go in a single request; larger files use a chunked upload session that can be resumed after an interruption. Call the pre-flight (OPTIONS) operation first to learn the maximum chunk size and pick the right path.

Pre-flight an upload and discover upload limits and URLs

Validates the target endpoint path and file attributes before any bytes are sent, and returns the maximum chunk size along with the URLs for the single-file and chunked (resumable) upload flows. Clients call this first to decide which upload path to use.

Required privilege: none beyond a valid credential.

Authorizations:
ApiKeyOAuth2BearerAuth
header Parameters
X-Thru-Tracking-ThruNodeId
string
Default:

Optional. Identifier of the MFT node that originated the request, recorded for tracing. Sent as the X-Thru-Tracking-ThruNodeId header.

Request Body schema: application/json

Target endpoint path and file attributes to validate.

endpointPath
string or null

Flow endpoint path the file is being uploaded to, in /{customerCode}/{flow}/{flowEndpoint} form.

object (MetaInfo)

Attributes describing a single file in an upload.

Responses

Response Schema: application/json
uploadMaxChunkSize
integer <int64>

Largest number of bytes that may be sent in one request. Files at or below this size can go through the single-file upload; larger files must use a chunked upload session.

uploadSingleFileUrl
string or null

Relative URL of the single-file upload endpoint.

uploadChunkedFileUrl
string or null

Relative URL used to start a chunked upload session.

Request samples

Content type
application/json
{
  • "endpointPath": "/acme/invoices-inbound/partner-drop",
  • "attributes": {
    • "fileTime": "2026-08-21T09:14:37Z",
    • "fileName": "invoices-2026-08-21.csv",
    • "path": "/2026/08",
    • "sourceFullPath": "/var/exports/2026/08/invoices-2026-08-21.csv",
    • "size": 10485760,
    • "fileId": "66c5a1f0e3b94a7d2c4f8b13",
    • "actionId": "48219",
    • "processingId": "7c1f2a44-08d5-4d1e-9a3b-51f0c2e9de77",
    • "customerCode": "acme"
    }
}

Response samples

Content type
application/json
{
  • "uploadMaxChunkSize": 52428800,
  • "uploadSingleFileUrl": "api/Files/1.0/Content/",
  • "uploadChunkedFileUrl": "api/Files/1.0/Upload_Sessions/"
}

Upload a whole file in a single request

Streams one complete file to its target flow endpoint in a single multipart request. Use this for files at or below the maximum chunk size reported by the pre-flight (OPTIONS) call; larger files should use the chunked upload-session flow. On success the response headers carry the transfer/activity tracking identifiers.

Required privilege: File Upload.

Authorizations:
ApiKeyOAuth2BearerAuth
header Parameters
X-Thru-Tracking-RequestId
integer <int64>
Default: 0

Optional. Caller-supplied identifier used to correlate this upload with the caller's own records. Sent as the X-Thru-Tracking-RequestId header.

X-Thru-Tracking-ThruNodeId
string
Default:

Optional. Identifier of the MFT node that originated the request, recorded for tracing. Sent as the X-Thru-Tracking-ThruNodeId header.

ThruApplication
string
Default:

Optional. Name of the calling application, recorded for tracing. Sent as the ThruApplication header.

Request Body schema: multipart/form-data
required

Two-part multipart/form-data body. Send the JSON metadata part first, then the file bytes.

required
object

JSON metadata for the upload, sent as a text part.

Model_1
required
string <binary>

The complete file to upload.

Responses

Response Headers
X-Thru-Tracking-ActivityId
string
Example: "66c5a1f0e3b94a7d2c4f8b13"

MFT-generated identifier for the file this upload created. Use it to correlate with transfer tracking and audit records.

Response samples

Content type
application/json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "string",
  • "property1": null,
  • "property2": null
}

Start a chunked (resumable) upload session

Opens an upload session for a large file, returning the session identifier in the response headers. Chunks are then sent with PUT to the session, finalised with Commit, or discarded with Abort. Use this flow when a file exceeds the single-request maximum chunk size.

Required privilege: File Upload.

Authorizations:
ApiKeyOAuth2BearerAuth
header Parameters
X-Thru-Tracking-RequestId
integer <int64>
Default: 0

Optional. Caller-supplied identifier used to correlate this upload with the caller's own records. Sent as the X-Thru-Tracking-RequestId header.

X-Thru-Tracking-ThruNodeId
string
Default:

Optional. Identifier of the MFT node that originated the request, recorded for tracing. Sent as the X-Thru-Tracking-ThruNodeId header.

ThruApplication
string
Default:

Optional. Name of the calling application, recorded for tracing. Sent as the ThruApplication header.

Request Body schema: application/json

Target endpoint path and file attributes for the session.

endpointPath
string or null

Flow endpoint path the file is being uploaded to, in /{customerCode}/{flow}/{flowEndpoint} form.

object (MetaInfo)

Attributes describing a single file in an upload.

Responses

Request samples

Content type
application/json
{
  • "endpointPath": "/acme/invoices-inbound/partner-drop",
  • "attributes": {
    • "fileTime": "2026-08-21T09:14:37Z",
    • "fileName": "invoices-2026-08-21.csv",
    • "path": "/2026/08",
    • "sourceFullPath": "/var/exports/2026/08/invoices-2026-08-21.csv",
    • "size": 10485760,
    • "fileId": "66c5a1f0e3b94a7d2c4f8b13",
    • "actionId": "48219",
    • "processingId": "7c1f2a44-08d5-4d1e-9a3b-51f0c2e9de77",
    • "customerCode": "acme"
    }
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "string",
  • "property1": null,
  • "property2": null
}

Set or update the file details on an open upload session

Updates the target endpoint path and file attributes for an in-progress chunked upload session before it is committed. The destination endpoint is re-validated against the caller's authorization on every call.

Required privilege: none beyond a valid credential.

Authorizations:
ApiKeyOAuth2BearerAuth
path Parameters
uploadSession
required
string

Identifier of the open upload session.

header Parameters
X-Thru-Tracking-ThruNodeId
string
Default:

Optional. Identifier of the MFT node that originated the request, recorded for tracing. Sent as the X-Thru-Tracking-ThruNodeId header.

Request Body schema: application/json

Updated target endpoint path and file attributes.

endpointPath
string or null

Flow endpoint path the file is being uploaded to, in /{customerCode}/{flow}/{flowEndpoint} form.

object (MetaInfo)

Attributes describing a single file in an upload.

Responses

Request samples

Content type
application/json
{
  • "endpointPath": "/acme/invoices-inbound/partner-drop",
  • "attributes": {
    • "fileTime": "2026-08-21T09:14:37Z",
    • "fileName": "invoices-2026-08-21.csv",
    • "path": "/2026/08",
    • "sourceFullPath": "/var/exports/2026/08/invoices-2026-08-21.csv",
    • "size": 10485760,
    • "fileId": "66c5a1f0e3b94a7d2c4f8b13",
    • "actionId": "48219",
    • "processingId": "7c1f2a44-08d5-4d1e-9a3b-51f0c2e9de77",
    • "customerCode": "acme"
    }
}

Response samples

Content type
application/json
{
  • "type": "string",
  • "title": "string",
  • "status": 0,
  • "detail": "string",
  • "instance": "string",
  • "property1": null,
  • "property2": null
}

Upload the next chunk of an open upload session

Appends a chunk of bytes to an in-progress chunked upload session. The chunk's position and size are taken from the Content-Range of the request. Call repeatedly until every chunk has been sent, then finalise with Commit.

Required privilege: none beyond a valid credential.

Authorizations:
ApiKeyOAuth2BearerAuth
path Parameters
uploadSession
required
string

Identifier of the open upload session.

header Parameters
X-Thru-Tracking-ThruNodeId
string
Default:

Optional. Identifier of the MFT node that originated the request, recorded for tracing. Sent as the X-Thru-Tracking-ThruNodeId header.

Request Body schema: multipart/form-data
required

Two-part multipart/form-data body. Send the JSON metadata part first, then the file bytes.

required
object

JSON metadata for the upload, sent as a text part.

Model_1
required
string <binary>

The bytes of this chunk.

Responses

Commit an upload session and assemble the final file

Finalises a chunked upload: the uploaded chunks are assembled into the complete file at its destination. Assembly is asynchronous — the endpoint returns 202 (with a Retry-After header) while assembly is in progress and 201 once the file is fully assembled, so clients poll Commit until it reports completion.

Required privilege: File Upload.

Authorizations:
ApiKeyOAuth2BearerAuth
path Parameters
uploadSession
required
string

Identifier of the upload session to commit.

header Parameters
X-Thru-Tracking-ThruNodeId
string
Default:

Optional. Identifier of the MFT node that originated the request, recorded for tracing. Sent as the X-Thru-Tracking-ThruNodeId header.

Responses

Abort an open upload session and discard its chunks

Cancels an in-progress chunked upload, releasing the staged chunks and marking the transfer as cancelled. Use this when a client abandons an upload it will not commit.

Required privilege: File Upload.

Authorizations:
ApiKeyOAuth2BearerAuth
path Parameters
uploadSession
required
string

Identifier of the upload session to abort.

header Parameters
X-Thru-Tracking-ThruNodeId
string
Default:

Optional. Identifier of the MFT node that originated the request, recorded for tracing. Sent as the X-Thru-Tracking-ThruNodeId header.

Request Body schema: application/json

Optional reason/context for the cancellation.

status
integer <int32> (CancellationStatus)
Enum: 0 1

Outcome recorded when an upload session is aborted.

message
string or null

Free-text explanation recorded against the aborted session.

Responses

Request samples

Content type
application/json
{
  • "status": 0,
  • "message": "Cancelled by the user before the final chunk was sent."
}

Get the status of an upload session

Returns the current state of a chunked upload session — file name, uploaded size, the byte ranges received so far, and start/complete timestamps — so a client can resume an interrupted upload by sending only the missing chunks.

Required privilege: none beyond a valid credential.

Authorizations:
ApiKeyOAuth2BearerAuth
path Parameters
upload_session
required
string

Identifier of the upload session to inspect.

Responses

Response Schema: application/json
transferId
string or null

Identifier of the upload session this status describes.

fileName
string or null

Name of the file being uploaded.

fileSizeBytes
integer <int64>

Total declared size of the file in bytes.

Array of objects or null (RangeInfo)

The chunks committed so far, in sequence order. Resume an interrupted upload by sending the first chunk not listed here.

lastChunkSizeBytes
integer <int64>

Size in bytes of the most recently committed chunk.

dateStartedUTC
string <date-time>

UTC time the upload session was created.

dateCompletedUTC
string or null <date-time>

UTC time the session was committed. Null while the upload is still open.

Response samples

Content type
application/json
{
  • "transferId": "7c1f2a44-08d5-4d1e-9a3b-51f0c2e9de77",
  • "fileName": "invoices-2026-08-21.csv",
  • "fileSizeBytes": 10485760,
  • "committedRangeInfos": [
    • {
      }
    ],
  • "lastChunkSizeBytes": 5242880,
  • "dateStartedUTC": "2026-08-21T09:14:30Z",
  • "dateCompletedUTC": "2026-08-21T09:16:02Z"
}