openapi: 3.0.1 info: title: HubSpot Files description: Basepom for all HubSpot Projects version: 2026-03 x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE servers: - url: https://api.hubapi.com tags: - name: Files - name: Folders paths: /files/2026-03/files: post: tags: - Files summary: Upload file description: Upload a single file with content specified in request body. operationId: post-/files/2026-03/files_upload parameters: [] requestBody: content: multipart/form-data: schema: type: object properties: charsetHunch: type: string file: type: string format: binary fileName: type: string folderId: type: string folderPath: type: string options: type: string responses: '201': description: successful operation headers: Location: description: URL of the newly created resource style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/File' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write /files/2026-03/files/import-from-url/async: post: tags: - Files summary: Import file from URL description: Asynchronously imports the file at the given URL into the file manager. operationId: post-/files/2026-03/files/import-from-url/async_importFromUrl parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/ImportFromUrlInput' required: true responses: '202': description: accepted content: application/json: schema: $ref: '#/components/schemas/ImportFromUrlTaskLocator' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write /files/2026-03/files/import-from-url/async/tasks/{taskId}/status: get: tags: - Files summary: Check import status description: Check the status of requested import. operationId: get-/files/2026-03/files/import-from-url/async/tasks/{taskId}/status_checkImport parameters: - name: taskId in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/FileActionResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read /files/2026-03/files/search: get: tags: - Files summary: Search files description: Search through files in the file manager. Does not display hidden or archived files. operationId: get-/files/2026-03/files/search_doSearch parameters: - name: after in: query description: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. required: false style: form explode: true schema: type: string - name: allowsAnonymousAccess in: query description: '' required: false style: form explode: true schema: type: boolean - name: before in: query description: '' required: false style: form explode: true schema: type: string - name: createdAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: createdAtGte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: createdAtLte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: encoding in: query description: '' required: false style: form explode: true schema: type: string - name: expiresAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: expiresAtGte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: expiresAtLte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: extension in: query description: '' required: false style: form explode: true schema: type: string - name: fileMd5 in: query description: '' required: false style: form explode: true schema: type: string - name: height in: query description: '' required: false style: form explode: true schema: type: integer format: int32 - name: heightGte in: query description: '' required: false style: form explode: true schema: type: integer format: int32 - name: heightLte in: query description: '' required: false style: form explode: true schema: type: integer format: int32 - name: idGte in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: idLte in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: ids in: query description: '' required: false style: form explode: true schema: type: array items: type: integer format: int64 - name: isUsableInContent in: query description: '' required: false style: form explode: true schema: type: boolean - name: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 - name: name in: query description: '' required: false style: form explode: true schema: type: string - name: parentFolderIds in: query description: '' required: false style: form explode: true schema: type: array items: type: integer format: int64 - name: path in: query description: '' required: false style: form explode: true schema: type: string - name: properties in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: size in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: sizeGte in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: sizeLte in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: sort in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: type in: query description: '' required: false style: form explode: true schema: type: string - name: updatedAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: updatedAtGte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: updatedAtLte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: url in: query description: '' required: false style: form explode: true schema: type: string - name: width in: query description: '' required: false style: form explode: true schema: type: integer format: int32 - name: widthGte in: query description: '' required: false style: form explode: true schema: type: integer format: int32 - name: widthLte in: query description: '' required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseFile' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read /files/2026-03/files/stat/{path}: get: tags: - Files summary: Retrieve file by path description: Retrieve a file by its path. operationId: get-/files/2026-03/files/stat/{path}_getMetadata parameters: - name: path in: path description: '' required: true style: simple explode: false schema: pattern: .+ type: string - name: properties in: query description: '' required: false style: form explode: true schema: type: array items: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/FileStat' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read /files/2026-03/files/{fileId}: get: tags: - Files summary: Retrieve file by ID description: Retrieve a file by its ID. operationId: get-/files/2026-03/files/{fileId}_getById parameters: - name: fileId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string - name: properties in: query description: '' required: false style: form explode: true schema: type: array items: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/File' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read put: tags: - Files summary: Replace file description: Replace existing file data with new file data. Can be used to change image content without having to upload a new file and update all references. operationId: put-/files/2026-03/files/{fileId}_replace parameters: - name: fileId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string requestBody: content: multipart/form-data: schema: type: object properties: charsetHunch: type: string file: type: string format: binary options: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/File' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write delete: tags: - Files summary: Delete file by ID description: Delete a file by ID operationId: delete-/files/2026-03/files/{fileId}_archive parameters: - name: fileId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.delete patch: tags: - Files summary: Update file properties description: Update properties of file by ID. operationId: patch-/files/2026-03/files/{fileId}_updateProperties parameters: - name: fileId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FileUpdateInput' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/File' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write /files/2026-03/files/{fileId}/gdpr-delete: delete: tags: - Files summary: GDPR-delete file description: Delete a file in accordance with GDPR regulations. operationId: delete-/files/2026-03/files/{fileId}/gdpr-delete_delete parameters: - name: fileId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.delete /files/2026-03/files/{fileId}/signed-url: get: tags: - Files summary: Get signed URL to access private file description: Generates signed URL that allows temporary access to a private file. operationId: get-/files/2026-03/files/{fileId}/signed-url_getSignedUrl parameters: - name: fileId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string - name: expirationSeconds in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: size in: query description: '' required: false style: form explode: true schema: type: string enum: - icon - medium - preview - thumb - name: upscale in: query description: '' required: false style: form explode: true schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SignedUrl' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read /files/2026-03/folders: post: tags: - Files summary: Create folder description: Creates a folder. operationId: post-/files/2026-03/folders_create parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/FolderInput' required: true responses: '201': description: successful operation headers: Location: description: URL of the newly created resource style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/Folder' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write /files/2026-03/folders/search: get: tags: - Folders summary: Search folders description: Search for folders. Does not contain hidden or archived folders. operationId: get-/files/2026-03/folders/search_doSearch parameters: - name: after in: query description: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. required: false style: form explode: true schema: type: string - name: before in: query description: '' required: false style: form explode: true schema: type: string - name: createdAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: createdAtGte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: createdAtLte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: idGte in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: idLte in: query description: '' required: false style: form explode: true schema: type: integer format: int64 - name: ids in: query description: '' required: false style: form explode: true schema: type: array items: type: integer format: int64 - name: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 - name: name in: query description: '' required: false style: form explode: true schema: type: string - name: parentFolderIds in: query description: '' required: false style: form explode: true schema: type: array items: type: integer format: int64 - name: path in: query description: '' required: false style: form explode: true schema: type: string - name: properties in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: sort in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: updatedAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: updatedAtGte in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: updatedAtLte in: query description: '' required: false style: form explode: true schema: type: string format: date-time responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseFolder' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read /files/2026-03/folders/update/async: post: tags: - Folders summary: Update folder properties description: Update properties of folder by given ID. This action happens asynchronously and will update all of the folder's children as well. operationId: post-/files/2026-03/folders/update/async_updatePropertiesRecursively parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/FolderUpdateInputWithId' required: true responses: '202': description: accepted content: application/json: schema: $ref: '#/components/schemas/FolderUpdateTaskLocator' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write /files/2026-03/folders/update/async/tasks/{taskId}/status: get: tags: - Folders summary: Check folder update status description: Check status of folder update. Folder updates happen asynchronously. operationId: get-/files/2026-03/folders/update/async/tasks/{taskId}/status_checkUpdateStatus parameters: - name: taskId in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/FolderActionResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write /files/2026-03/folders/{folderId}: get: tags: - Folders summary: Retrieve folder by ID description: Retrieve a folder by its ID. operationId: get-/files/2026-03/folders/{folderId}_getById parameters: - name: folderId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string - name: properties in: query description: '' required: false style: form explode: true schema: type: array items: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Folder' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read delete: tags: - Folders summary: Delete folder by ID description: Delete folder by ID. operationId: delete-/files/2026-03/folders/{folderId}_archive parameters: - name: folderId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.delete patch: tags: - Folders summary: Update folder properties by folder ID description: Update a folder's properties, identified by folder ID. operationId: patch-/files/2026-03/folders/{folderId}_updateProperties parameters: - name: folderId in: path description: '' required: true style: simple explode: false schema: pattern: \d+ type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FolderUpdateInput' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Folder' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.write /files/2026-03/folders/{folderPath}: get: tags: - Folders summary: Retrieve folder by path description: Retrieve a folder, identified by its path. operationId: get-/files/2026-03/folders/{folderPath}_getByPath parameters: - name: folderPath in: path description: '' required: true style: simple explode: false schema: pattern: .+ type: string - name: properties in: query description: '' required: false style: form explode: true schema: type: array items: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Folder' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files - oauth2: - files.read - oauth2: - files.ui_hidden.read delete: tags: - Folders summary: Delete folder by path description: Delete a folder, identified by its path. operationId: delete-/files/2026-03/folders/{folderPath}_archiveByPath parameters: - name: folderPath in: path description: '' required: true style: simple explode: false schema: pattern: .+ type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - files.ui_hidden.write - oauth2: - files - oauth2: - files.delete components: schemas: CollectionResponseFile: required: - results type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array items: $ref: '#/components/schemas/File' CollectionResponseFolder: required: - results type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array items: $ref: '#/components/schemas/Folder' Error: required: - category - correlationId - message type: object properties: category: type: string description: The error category context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}' correlationId: type: string description: A unique identifier for the request. Include this value with any error reports or support tickets format: uuid example: aeb5f871-7f07-4993-9211-075dc63e7cbf errors: type: array description: further information about the error items: $ref: '#/components/schemas/ErrorDetail' links: type: object additionalProperties: type: string description: A map of link names to associated URIs containing documentation about the error or recommended remediation steps message: type: string description: A human readable message describing the error along with remediation steps where appropriate example: An error occurred subCategory: type: string description: A specific category that contains more specific detail about the error description: Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the error encountered. example: message: Invalid input (details will vary based on the error) correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf category: VALIDATION_ERROR links: knowledge-base: https://www.hubspot.com/products/service/knowledge-base ErrorDetail: required: - message type: object properties: code: type: string description: The status code associated with the error detail context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{missingScopes=[scope1, scope2]}' in: type: string description: The name of the field or parameter in which the error was found. message: type: string description: A human readable message describing the error along with remediation steps where appropriate subCategory: type: string description: A specific category that contains more specific detail about the error description: Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response. File: required: - archived - createdAt - id - updatedAt type: object properties: access: type: string description: File access. Can be PUBLIC_INDEXABLE, PUBLIC_NOT_INDEXABLE, PRIVATE. enum: - HIDDEN_INDEXABLE - HIDDEN_NOT_INDEXABLE - HIDDEN_PRIVATE - HIDDEN_SENSITIVE - PRIVATE - PUBLIC_INDEXABLE - PUBLIC_NOT_INDEXABLE - SENSITIVE archived: type: boolean description: If the file is deleted. archivedAt: type: string description: Deletion time of the file object. format: date-time createdAt: type: string description: Creation time of the file object. format: date-time defaultHostingUrl: type: string description: Default hosting URL of the file. This will use one of HubSpot's provided URLs to serve the file. encoding: type: string description: Encoding of the file. expiresAt: type: integer format: int64 extension: type: string description: 'Extension of the file. ex: .jpg, .png, .gif, .pdf, etc.' fileMd5: type: string description: The MD5 hash of the file. height: type: integer description: For image and video files, the height of the content. format: int32 id: type: string description: File ID. isUsableInContent: type: boolean description: Previously "archied". Indicates if the file should be used when creating new content like web pages. name: type: string description: Name of the file. parentFolderId: type: string description: ID of the folder the file is in. path: type: string description: Path of the file in the file manager. size: type: integer description: Size of the file in bytes. format: int64 sourceGroup: type: string enum: - CONTENT - CONVERSATIONS - FORMS - UI_EXTENSIONS - UNKNOWN type: type: string description: Type of the file. Can be IMG, DOCUMENT, AUDIO, MOVIE, or OTHER. updatedAt: type: string description: Timestamp of the latest update to the file. format: date-time url: type: string description: URL of the given file. This URL can change depending on the domain settings of the account. Will use the select file hosting domain. width: type: integer description: For image and video files, the width of the content. format: int32 FileActionResponse: required: - completedAt - startedAt - status - taskId type: object properties: completedAt: type: string description: Time of completion of task. format: date-time errors: type: array description: Descriptive error messages. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: Link to check the status of the requested task. numErrors: type: integer description: Number of errors resulting from the task. format: int32 requestedAt: type: string description: Timestamp of when the task was requested. format: date-time result: $ref: '#/components/schemas/File' startedAt: type: string description: Timestamp of when the task was started. format: date-time status: type: string description: Current status of the task. enum: - CANCELED - COMPLETE - PENDING - PROCESSING taskId: type: string description: ID of the requested task. FileStat: type: object properties: file: $ref: '#/components/schemas/File' folder: $ref: '#/components/schemas/Folder' FileUpdateInput: required: - clearExpires type: object properties: access: type: string description: 'NONE: Do not run any duplicate validation. REJECT: Reject the upload if a duplicate is found. RETURN_EXISTING: If a duplicate file is found, do not upload a new file and return the found duplicate instead.' enum: - HIDDEN_INDEXABLE - HIDDEN_NOT_INDEXABLE - HIDDEN_PRIVATE - HIDDEN_SENSITIVE - PRIVATE - PUBLIC_INDEXABLE - PUBLIC_NOT_INDEXABLE - SENSITIVE clearExpires: type: boolean expiresAt: type: string format: date-time isUsableInContent: type: boolean description: Mark whether the file should be used in new content or not. name: type: string description: New name for the file. parentFolderId: type: string description: FolderId where the file should be moved to. folderId and folderPath parameters cannot be set at the same time. parentFolderPath: type: string description: Folder path where the file should be moved to. folderId and folderPath parameters cannot be set at the same time. Folder: required: - archived - createdAt - id - updatedAt type: object properties: archived: type: boolean description: Marks whether the folder is deleted or not. archivedAt: type: string description: Timestamp of folder deletion. format: date-time createdAt: type: string description: Timestamp of folder creation. format: date-time id: type: string description: ID of the folder. name: type: string description: Name of the folder. parentFolderId: type: string description: ID of the parent folder. path: type: string description: Path of the folder in the file manager. updatedAt: type: string description: Timestamp of the latest update to the folder. format: date-time FolderActionResponse: required: - completedAt - startedAt - status - taskId type: object properties: completedAt: type: string description: When the requested changes have been completed. format: date-time errors: type: array description: Detailed errors resulting from the task. items: $ref: '#/components/schemas/StandardError' links: type: object additionalProperties: type: string description: Link to check the status of the task. numErrors: type: integer description: Number of errors resulting from the requested changes. format: int32 requestedAt: type: string description: Timestamp representing when the task was requested. format: date-time result: $ref: '#/components/schemas/Folder' startedAt: type: string description: Timestamp representing when the task was started at. format: date-time status: type: string description: Current status of the task. enum: - CANCELED - COMPLETE - PENDING - PROCESSING taskId: type: string description: ID of the task. FolderInput: required: - name type: object properties: name: type: string description: Desired name for the folder. parentFolderId: type: string description: FolderId of the parent of the created folder. If not specified, the folder will be created at the root level. parentFolderId and parentFolderPath cannot be set at the same time. parentPath: type: string description: Path of the parent of the created folder. If not specified the folder will be created at the root level. parentFolderPath and parentFolderId cannot be set at the same time. FolderUpdateInput: type: object properties: name: type: string description: New name. If specified the folder's name and fullPath will change. All children of the folder will be updated accordingly. parentFolderId: type: integer description: New parent folderId. If changed, the folder and all it's children will be moved into the specified folder. parentFolderId and parentFolderPath cannot be specified at the same time. format: int64 FolderUpdateInputWithId: required: - id type: object properties: id: type: string description: The unique identifier of the folder to be updated. name: type: string description: New name. If specified the folder's name and fullPath will change. All children of the folder will be updated accordingly. parentFolderId: type: integer description: New parent folderId. If changed, the folder and all it's children will be moved into the specified folder. parentFolderId and parentFolderPath cannot be specified at the same time. format: int64 FolderUpdateTaskLocator: required: - id type: object properties: id: type: string description: ID of the task links: type: object additionalProperties: type: string description: Links for where to check information related to the task. The `status` link gives the URL for where to check the status of the task. ImportFromUrlInput: required: - access - duplicateValidationScope - duplicateValidationStrategy - overwrite type: object properties: access: type: string description: 'PUBLIC_INDEXABLE: File is publicly accessible by anyone who has the URL. Search engines can index the file. PUBLIC_NOT_INDEXABLE: File is publicly accessible by anyone who has the URL. Search engines *can''t* index the file. PRIVATE: File is NOT publicly accessible. Requires a signed URL to see content. Search engines *can''t* index the file.' enum: - HIDDEN_INDEXABLE - HIDDEN_NOT_INDEXABLE - HIDDEN_PRIVATE - HIDDEN_SENSITIVE - PRIVATE - PUBLIC_INDEXABLE - PUBLIC_NOT_INDEXABLE - SENSITIVE duplicateValidationScope: type: string description: 'ENTIRE_PORTAL: Look for a duplicate file in the entire account. EXACT_FOLDER: Look for a duplicate file in the provided folder.' enum: - ENTIRE_PORTAL - EXACT_FOLDER duplicateValidationStrategy: type: string description: 'NONE: Do not run any duplicate validation. REJECT: Reject the upload if a duplicate is found. RETURN_EXISTING: If a duplicate file is found, do not upload a new file and return the found duplicate instead.' enum: - NONE - REJECT - RETURN_EXISTING expiresAt: type: string description: Specifies the date and time when the file will expire. format: date-time folderId: type: string description: One of folderId or folderPath is required. Destination folderId for the uploaded file. folderPath: type: string description: One of folderPath or folderId is required. Destination folder path for the uploaded file. If the folder path does not exist, there will be an attempt to create the folder path. name: type: string description: Name to give the resulting file in the file manager. overwrite: type: boolean description: If true, will overwrite existing file if one with the same name and extension exists in the given folder. The overwritten file will be deleted and the uploaded file will take its place with a new ID. If unset or set as false, the new file's name will be updated to prevent colliding with existing file if one exists with the same path, name, and extension ttl: type: string description: Time to live. If specified the file will be deleted after the given time frame. If left unset, the file will exist indefinitely url: type: string description: URL to download the new file from. ImportFromUrlTaskLocator: required: - id type: object properties: id: type: string description: ID of the task links: type: object additionalProperties: type: string description: Links for where to check information related to the task. The `status` link gives the URL for where to check the status of the task. NextPage: required: - after type: object properties: after: type: string description: A paging cursor token for retrieving subsequent pages. link: type: string description: A URL that can be used to retrieve the next page results. description: Specifies the paging information needed to retrieve the next set of results in a paginated API response Paging: type: object properties: next: $ref: '#/components/schemas/NextPage' prev: $ref: '#/components/schemas/PreviousPage' PreviousPage: required: - before type: object properties: before: type: string description: A paging cursor token for retrieving previous pages. link: type: string description: A URL that can be used to retrieve the previous pages' results. description: specifies the paging information needed to retrieve the previous set of results in a paginated API response SignedUrl: required: - expiresAt - url type: object properties: expiresAt: type: string description: Timestamp of when the URL will no longer grant access to the file. format: date-time extension: type: string description: Extension of the requested file. height: type: integer description: For image and video files. The height of the file. format: int32 name: type: string description: Name of the requested file. size: type: integer description: Size in bytes of the requested file. format: int64 type: type: string description: Type of the file. Can be IMG, DOCUMENT, AUDIO, MOVIE, or OTHER. url: type: string description: Signed URL with access to the specified file. Anyone with this URL will be able to access the file until it expires. width: type: integer description: For image and video files. The width of the file. format: int32 StandardError: required: - category - context - errors - links - message - status type: object properties: category: type: string description: The main category of the error. context: type: object additionalProperties: type: array items: type: string description: Additional context-specific information related to the error. errors: type: array description: The detailed error objects. items: $ref: '#/components/schemas/ErrorDetail' id: type: string description: A unique ID for the error instance. links: type: object additionalProperties: type: string description: URLs linking to documentation or resources associated with the error. message: type: string description: A human-readable string describing the error and possible remediation steps. status: type: string description: The HTTP status code associated with the error. subCategory: type: object properties: {} description: A more specific error category within each main category. description: Ye olde error responses: Error: description: An error occurred. content: '*/*': schema: $ref: '#/components/schemas/Error' securitySchemes: developer_hapikey: type: apiKey name: hapikey in: query oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://app.hubspot.com/oauth/authorize tokenUrl: https://api.hubapi.com/oauth/v1/token scopes: files: '' files.delete: '' private_apps: type: apiKey name: private-app in: header private_apps_legacy: type: apiKey name: private-app-legacy in: header x-hubspot-available-client-libraries: - Node - Python - Ruby - PHP x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE