# Data download endpoint for outbound files **GET /api/v3.0/{engagementSid}/files/{outboundFileCategory}/{uniqueFileName}** Download a file from Integration Hub. This endpoint allows you to retrieve files that have been created by Adra. ### Response Format - Returns file as binary stream - Content-Type matches the original file format - Headers include: - `Content-Length`: File size in bytes - `Content-Type`: File MIME type - `Last-Modified`: Timestamp of last modification - `ETag`: File version identifier ### Common Use Cases 1. Downloading created reports 2. Retrieving journal entries ### Error Handling - 404: File not found or deleted - 403: Insufficient permissions - 401: Invalid or expired token ### Best Practices - Cache files using ETag header - Implement retry logic with exponential backoff - Handle large files with streaming ## Servers - Production server: https://integrationhub.adra.com (Production server) - Stage server: https://integrationhub.adrastage.com (Stage server) - Test server: https://integrationhub.adratest.com (Test server) - Dev server: https://integrationhub.adradev.com (Dev server) ## Authentication methods - Adra personal access token & Adra oauth code pkce & Adra oauth client cred ## Parameters ### Headers - **X-Gw-Stloc-Hint** (string) Optional HTTP header to optimize request routing and reduce latency. Possible values: EUWE-01 (West Europe), AUEA-01 (Australia East), USEA-01 (East US), NO01 (Norway East). - **If-Modified-Since** (string(date-time)) Browser cache instruction (optional) - **If-None-Match** (string) Browser cache instruction (optional). - **If-Unmodified-Since** (string(date-time)) Browser cache instruction (optional). - **If-Match** (string) Browser cache instruction (optional). ### Path parameters - **engagementSid** (string) Short identifier for engagement (as in URLs) - **outboundFileCategory** (string) - **uniqueFileName** (string) The name of the file ## Responses ### 200 Success #### Headers - **ETag** (string) The file's ETag (hash) - **Last-Modified** (string(date-time)) The file's modified date #### Body: */* (string(binary)) string(binary) ### 304 Not modified #### Headers - **ETag** (string) The file's ETag (hash) - **Last-Modified** (string(date-time)) The file's modified date ### 400 Bad Request: see problem details for more information #### Body: application/problem+json (object) - **type** (string | null) - **title** (string | null) - **status** (integer(int32) | null) - **detail** (string | null) - **instance** (string | null) ### 401 Unauthorized: Missing an authorization header or token, or the token has expired #### Body: application/problem+json (object) - **type** (string | null) - **title** (string | null) - **status** (integer(int32) | null) - **detail** (string | null) - **instance** (string | null) ### 403 Forbidden: You don't have access to the engagement, the engagement doesn't have IH or you don't have IH access on the engagement, or the client is trying to access an unauthorized tenant resource #### Body: application/problem+json (object) - **type** (string | null) - **title** (string | null) - **status** (integer(int32) | null) - **detail** (string | null) - **instance** (string | null) ### 404 Not found #### Body: application/problem+json (object) - **type** (string | null) - **title** (string | null) - **status** (integer(int32) | null) - **detail** (string | null) - **instance** (string | null) ### 412 Precondition Failed: Access control list (ACL) validation failed #### Body: application/problem+json (object) - **type** (string | null) - **title** (string | null) - **status** (integer(int32) | null) - **detail** (string | null) - **instance** (string | null) ### 500 Internal Server Error #### Body: application/problem+json (object) - **type** (string | null) - **title** (string | null) - **status** (integer(int32) | null) - **detail** (string | null) - **instance** (string | null) ### default Error #### Body: application/problem+json (object) - **type** (string | null) - **title** (string | null) - **status** (integer(int32) | null) - **detail** (string | null) - **instance** (string | null) [Powered by Bump.sh](https://bump.sh)