openapi: 3.0.1 info: title: HubSpot CRM Imports description: Basepom for all HubSpot Projects version: 2026-09 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: Advanced - name: Basic paths: /crm/imports/2026-09: get: tags: - Basic operationId: get-/crm/imports/2026-09_/crm/imports/v3 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: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponsePublicImportResponseForwardPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.import post: tags: - Advanced operationId: post-/crm/imports/2026-09_/crm/imports/v3 parameters: [] requestBody: content: multipart/form-data: schema: type: object properties: files: type: string format: binary importRequest: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicImportResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.import /crm/imports/2026-09/{importId}: get: tags: - Basic summary: Get the information on any import description: A complete summary of an import record, including any updates. operationId: get-/crm/imports/2026-09/{importId}_/crm/imports/v3/{importId} parameters: - name: importId in: path description: '' required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicImportResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.import /crm/imports/2026-09/{importId}/cancel: post: tags: - Advanced summary: Cancel an active import description: This allows a developer to cancel an active import. operationId: post-/crm/imports/2026-09/{importId}/cancel_/crm/imports/v3/{importId}/cancel parameters: - name: importId in: path description: '' required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ActionResponse' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.import /crm/imports/2026-09/{importId}/errors: get: tags: - Basic summary: Retrieve errors for a specific import description: Retrieves detailed error records for a specific import operation, enabling you to identify and troubleshoot records that failed during processing. operationId: get-/crm/imports/2026-09/{importId}/errors_/crm/imports/v3/{importId}/errors parameters: - name: importId in: path description: '' required: true style: simple explode: false schema: type: integer format: int64 - 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: includeErrorMessage in: query description: '' required: false style: form explode: true schema: type: boolean - name: includeRowData 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 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponsePublicImportErrorForwardPaging' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - crm.import components: schemas: ActionResponse: required: - completedAt - startedAt - status type: object properties: completedAt: type: string description: The timestamp when the action was completed, in ISO 8601 format. format: date-time links: type: object additionalProperties: type: string description: A map of link names to associated URIs containing documentation about the error or recommended remediation steps requestedAt: type: string description: The timestamp when the export request was made, in ISO 8601 format. format: date-time startedAt: type: string description: The timestamp when the action was started, in ISO 8601 format. format: date-time status: type: string description: An enum representing the lifecycle state of the action. enum: - CANCELED - COMPLETE - PENDING - PROCESSING CollectionResponsePublicImportErrorForwardPaging: required: - results type: object properties: paging: $ref: '#/components/schemas/ForwardPaging' results: type: array items: $ref: '#/components/schemas/PublicImportError' CollectionResponsePublicImportResponseForwardPaging: required: - results type: object properties: paging: $ref: '#/components/schemas/ForwardPaging' results: type: array items: $ref: '#/components/schemas/PublicImportResponse' 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. ForwardPaging: type: object properties: next: $ref: '#/components/schemas/NextPage' description: Paging information for forward-only pagination. Contains the next page reference when more results are available; omitted or empty on the last page. ImportRowCore: required: - additionalRowData - containsEncryptedProperties - fileId - lineNumber - rowData type: object properties: additionalRowData: type: array items: type: string containsEncryptedProperties: type: boolean description: Indicates whether this row contains values that were encrypted. fileId: type: integer description: The unique identifier of the uploaded file containing this row. format: int64 lineNumber: type: integer description: The 1-indexed line number of this row in the source file. Line number 0 is reserved for file-wide errors that don't correspond to a specific row. format: int32 pageName: type: string description: The name of the spreadsheet sheet/page containing this row. rowData: type: array items: type: string ImportTemplate: required: - templateId - templateType type: object properties: templateId: type: integer description: The unique identifier for the specific saved template or previous import being referenced. format: int64 templateType: type: string description: The classification of what type of template this represents, and what is its origin or purpose. enum: - admin_defined - previous_import - user_file MaskedSubstring: required: - end - start type: object properties: end: type: integer format: int32 start: type: integer format: int32 MaskedSubstrings: required: - substrings type: object properties: substrings: type: array items: $ref: '#/components/schemas/MaskedSubstring' 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 PropertyValue: required: - dataSensitivity - isEncrypted - isLargeValue - maskedSubstrings - name - persistenceTimestamp - requestId - selectedByUser - selectedByUserTimestamp - source - sourceId - sourceLabel - sourceMetadata - sourceUpstreamDeployable - sourceVid - timestamp - unit - updatedByUserId - useTimestampAsPersistenceTimestamp - value type: object properties: dataSensitivity: type: string description: The sensitivity level of the property, such as "non_sensitive", "sensitive", and "highly_sensitive". enum: - high - none - standard isEncrypted: type: boolean description: Whether the property value is encrypted. isLargeValue: type: boolean description: Indicates if the value exceeds normal size limits. maskedSubstrings: $ref: '#/components/schemas/MaskedSubstrings' name: type: string description: The unique property name. persistenceTimestamp: type: integer description: When the value was persisted to database, in epoch milliseconds. format: int64 requestId: type: string description: A unique ID associated with this request. selectedByUser: type: boolean description: Whether the value was selected by a user. selectedByUserTimestamp: type: integer description: The timestamp when the value was selected by a user, if applicable. format: int64 source: type: string description: The origin of the property value, such as "IMPORT" or "API". enum: - ACADEMY - ACCEPTANCE_TEST - ACTIVITY_AUTO_ASSOCIATE - ACTIVITY_LOG_REVERT - ADS - AI_GROUP - ANALYTICS - API - APPROVALS - ASSISTS - ASSOCIATIONS - AUTO_ASSOCIATE_BY_DOMAIN - AUTOMATION_JOURNEY - AUTOMATION_PLATFORM - AVATARS_SERVICE - BATCH_UPDATE - BCC_TO_CRM - BEHAVIORAL_EVENTS - BET_ASSIGNMENT - BET_CRM_CONNECTOR - BIDEN - BILLING - BOT - BREEZE_AGENT - CALCULATED - CENTRAL_EXCHANGE_RATES - CHATSPOT - CLONE_OBJECTS - COMMUNICATOR - COMPANIES - COMPANY_FAMILIES - COMPANY_INSIGHTS - CONNECTED_ACCOUNT - CONTACTS - CONTACTS_WEB - CONTENT_MEMBERSHIP - CONVERSATIONAL_ENRICHMENT - CONVERSATIONS - CRM_PROCESSES_PLATFORM - CRM_UI - CRM_UI_BULK_ACTION - CUSTOMER_AGENT - CUSTOMER_PORTAL - DATA_ENRICHMENT - DATA_QUALITY - DATASET - DEALS - DEFAULT - DELETE_OBJECTS - DI_WRITE_TO_CRM - EMAIL - EMAIL_INBOX_IMPORT - EMAIL_INTEGRATION - ENGAGEMENTS - EXTENSION - FILE_MANAGER - FLYWHEEL_PRODUCT_DATA_SYNC - FORECASTING - FORM - FORWARD_TO_CRM - GMAIL_INTEGRATION - GOALS - HEISENBERG - HELP_DESK - HELP_DESK_AI - IMPORT - INTEGRATION - INTEGRATIONS_PLATFORM - INTEGRATIONS_SYNC - INTENT - INTERNAL_PROCESSING - LEADIN - LEGAL_BASIS_REMEDIATION - MARKET_SOURCING - MARKETPLACE - MARKETS - MEETINGS - MERGE_COMPANIES - MERGE_CONTACTS - MERGE_OBJECTS - MERGE_REVERT_OBJECTS - MICROAPPS - MIGRATION - MOBILE_ANDROID - MOBILE_IOS - PAYMENTS - PIPELINE_SETTINGS - PLAYBOOKS - PORTAL_OBJECT_SYNC - PORTAL_USER_ASSOCIATOR - PRESENTATIONS - PRIMARY_AUTOMATION - PROPERTY_DEFAULT_VALUE - PROPERTY_RESTORE - PROPERTY_SETTINGS - PROSPECTING_AGENT - QUOTAS - QUOTES - RECYCLING_BIN - RESTORE_OBJECTS - REVENUE_PLATFORM - SALES - SALES_MESSAGES - SALESFORCE - SEQUENCES - SETTINGS - SIDEKICK - SIGNALS - SLACK_INTEGRATION - SMART_DATA_CAPTURE - SOCIAL - SUCCESS - TALLY - TASK - UNKNOWN - WAL_INCREMENTAL - WORK_UI - WORKFLOW_CONTACT_DELETE_ACTION - WORKFLOWS sourceId: type: string description: The ID of the property source indicating where it was created. sourceLabel: type: string description: A human-readable label. sourceMetadata: type: string description: Metadata providing additional context about the source. sourceUpstreamDeployable: type: string sourceVid: type: array description: The unique identifier associated with the source. items: type: integer format: int64 timestamp: type: integer description: When the value was set, as a 64-bit integer. format: int64 unit: type: string description: The unit of measurement or context for the value. updatedByUserId: type: integer description: The ID of the user who updated the property. format: int32 useTimestampAsPersistenceTimestamp: type: boolean description: Flag indicating whether to use the timestamp field as the persistence timestamp. value: type: string description: The property value. description: Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes. PublicImportError: required: - createdAt - errorType - id - sourceData type: object properties: createdAt: type: integer description: The epoch millisecond timestamp when this error was recorded. format: int64 errorMessage: type: string description: A human-readable error message. errorType: type: string description: The classification of what went wrong during import processing. enum: - AMBIGUOUS_ENUMERATION_OPTION - ASSOCIATION_LABEL_NOT_FOUND - ASSOCIATION_LIMIT_EXCEEDED - ASSOCIATION_RECORD_NOT_FOUND - COLUMN_TOO_LARGE - COULD_NOT_FIND_BUSINESS_UNIT - COULD_NOT_FIND_OWNER - COULD_NOT_PARSE_DATE - COULD_NOT_PARSE_NUMBER - COULD_NOT_PARSE_ROW - COULD_NOT_PARSE_TERM - CREATE_ONLY_IMPORT - DUPLICATE_ALTERNATE_ID - DUPLICATE_ASSOCIATION_ID - DUPLICATE_EVENT - DUPLICATE_OBJECT_ID - DUPLICATE_RECORD_ID - DUPLICATE_ROW_CONTENT - DUPLICATE_UNIQUE_CREATION_KEY - DUPLICATE_UNIQUE_PROPERTY_VALUE - FAILED_TO_CREATE_ASSOCIATION - FAILED_TO_FIND_RECORD_FOR_ASSOCIATIONS - FAILED_TO_OPT_OUT_CONTACT - FAILED_TO_PROCESS_OBJECT_WITH_EMPTY_PROPERTY_VALUES - FAILED_VALIDATION - FILE_NOT_FOUND - GDPR_BLACKLISTED_EMAIL - INCORRECT_NUMBER_OF_COLUMNS - INVALID_ALTERNATE_ID - INVALID_ASSOCIATION_IDENTIFIER - INVALID_ASSOCIATION_KEY - INVALID_COLUMN_CONFIGURATION - INVALID_CUSTOM_PROPERTY_VALIDATION - INVALID_DOMAIN - INVALID_EMAIL - INVALID_ENUM_FILE_ID_OR_URL - INVALID_ENUMERATION_OPTION - INVALID_EVENT - INVALID_EVENT_TIMESTAMP - INVALID_FILE_TYPE - INVALID_NUMBER_SIZE - INVALID_OBJECT_ID - INVALID_PROPERTY_VALUE_FORMAT - INVALID_RECORD_ID - INVALID_REQUIRED_PROPERTY - INVALID_SHEET_COUNT - INVALID_SPREADSHEET - LIMIT_EXCEEDED - LINE_ITEM_MULTIPLE_PARENTS_IN_ROW - MANY_ERRORS_IN_ROW - MISSING_EVENT_DEFINITION - MISSING_EVENT_TIMESTAMP - MISSING_OBJECT_DEFINITION - MISSING_REQUIRED_PROPERTY - MULTIPLE_COMPANIES_WITH_THIS_DOMAIN - MULTIPLE_OWNERS_FOUND - NO_OBJECT_ID_FROM_ASSOCIATION_IDENTIFIER - OUTSIDE_VALID_TERM_RANGE - OUTSIDE_VALID_TIME_RANGE - PORTAL_WIDE_CUSTOM_OBJECT_LIMIT_EXCEEDED - PROPERTY_DEFINITION_NOT_FOUND - PROPERTY_VALUE_NOT_FOUND - ROW_DATA_TOO_LARGE - SECONDARY_EMAIL_WRITE_FAILURE - UNKNOWN_ASSOCIATION_RECORD_ID - UNKNOWN_BAD_REQUEST - UNKNOWN_ERROR - UPDATE_ONLY_IMPORT extraContext: type: string description: Additional human-readable context about the error. id: type: string description: A unique, stable identifier for this specific error. invalidPropertyValue: $ref: '#/components/schemas/PropertyValue' invalidValue: type: string description: The raw string value from the import file that caused the validation failure. invalidValueToDisplay: type: string description: A convenience accessor that returns either the value from `invalidPropertyValue` or `invalidValue`, whichever is present (preferring the property value). knownColumnNumber: type: integer description: The zero-based column index in the import file where the error occurred format: int32 objectType: type: string description: The CRM object type affected by this error. enum: - ABANDONED_CART - ACCEPTANCE_TEST - AD - AD_ACCOUNT - AD_CAMPAIGN - AD_GROUP - AI_FORECAST - ALL_PAGES - APPROVAL - APPROVAL_STEP - ATTRIBUTION - AUDIENCE - AUTOMATION_JOURNEY - AUTOMATION_PLATFORM_FLOW - AUTOMATION_PLATFORM_FLOW_ACTION - BET_ALERT - BET_DELIVERABLE_SERVICE - BLOG_LISTING_PAGE - BLOG_POST - CALL - CAMPAIGN - CAMPAIGN_BUDGET_ITEM - CAMPAIGN_SPEND_ITEM - CAMPAIGN_STEP - CAMPAIGN_TEMPLATE - CAMPAIGN_TEMPLATE_STEP - CART - CASE_STUDY - CHATFLOW - CLIP - CMS_URL - COMBO_EVENT_CONFIGURATION - COMMERCE_PAYMENT - COMMUNICATION - COMPANY - CONTACT - CONTACT_CREATE_ATTRIBUTION - CONTENT - CONTENT_AUDIT - CONTENT_AUDIT_PAGE - CONVERSATION - CONVERSATION_INBOX - CONVERSATION_SESSION - CRM_OBJECTS_DUMMY_TYPE - CRM_PIPELINES_DUMMY_TYPE - CTA - CTA_VARIANT - DATA_PRIVACY_CONSENT - DATA_SYNC_STATE - DEAL - DEAL_CREATE_ATTRIBUTION - DEAL_REGISTRATION - DEAL_SPLIT - DISCOUNT - DISCOUNT_CODE - DISCOUNT_TEMPLATE - EMAIL - ENGAGEMENT - EXPORT - EXTERNAL_WEB_URL - FEE - FEEDBACK_SUBMISSION - FEEDBACK_SURVEY - FILE_MANAGER_FILE - FILE_MANAGER_FOLDER - FOLDER - FORECAST - FORM - FORM_SUBMISSION_INBOUNDDB - GOAL_TARGET - GOAL_TARGET_GROUP - GOAL_TEMPLATE - GSC_PROPERTY - HUB - IMPORT - INVOICE - KEYWORD - KNOWLEDGE_ARTICLE - LANDING_PAGE - LEAD - LINE_ITEM - MARKETING_CALENDAR - MARKETING_CAMPAIGN_UTM - MARKETING_EMAIL - MARKETING_EVENT - MARKETING_EVENT_ATTENDANCE - MARKETING_SMS - MEDIA_BRIDGE - MEETING_EVENT - MIC - NOTE - OBJECT_LIST - ORDER - OWNER - PARTNER_ACCOUNT - PARTNER_CLIENT - PARTNER_CLIENT_REVENUE - PARTNER_SERVICE - PAYMENT_LINK - PAYMENT_SCHEDULE - PAYMENT_SCHEDULE_INSTALLMENT - PERMISSIONS_TESTING - PLAYBOOK - PLAYBOOK_QUESTION - PLAYBOOK_SUBMISSION - PLAYBOOK_SUBMISSION_ANSWER - PLAYLIST - PLAYLIST_FOLDER - PODCAST_EPISODE - PORTAL - PORTAL_OBJECT_SYNC_MESSAGE - POSTAL_MAIL - PRIVACY_SCANNER_COOKIE - PRODUCT - PRODUCT_OR_FOLDER - PROPERTY_INFO - PROSPECTING_AGENT_CONTACT_ASSIGNMENT - PUBLISHING_TASK - QUARANTINED_SUBMISSION - QUOTA - QUOTE - QUOTE_FIELD - QUOTE_MODULE - QUOTE_MODULE_FIELD - QUOTE_TEMPLATE - RESTORABLE_CRM_OBJECT - ROSTER - ROSTER_MEMBER - SALES_DOCUMENT - SALES_TASK - SALES_WORKLOAD - SALESFORCE_SYNC_ERROR - SCHEDULING_PAGE - SCHEMAS_BACKEND_TEST - SCORE_CONFIGURATION - SEQUENCE - SEQUENCE_ENROLLMENT - SEQUENCE_STEP - SEQUENCE_STEP_ENROLLMENT - SERVICE - SITE_PAGE - SNIPPET - SOCIAL_BROADCAST - SOCIAL_CHANNEL - SOCIAL_POST - SOCIAL_PROFILE - SOX_PROTECTED_DUMMY_TYPE - SOX_PROTECTED_TEST_TYPE - SUBMISSION_TAG - SUBSCRIPTION - TASK - TASK_TEMPLATE - TAX - TEMPLATE - TICKET - UNKNOWN - UNSUBSCRIBE - USER - VIEW - VIEW_BLOCK - WEB_INTERACTIVE objectTypeId: type: string description: The modern object type identifier for the CRM object affected by this error. sourceData: $ref: '#/components/schemas/ImportRowCore' PublicImportMetadata: required: - counters - fileIds - objectLists type: object properties: counters: type: object additionalProperties: type: integer format: int32 description: Summarized outcomes of each row a developer attempted to import into HubSpot. fileIds: type: array description: The IDs of files uploaded in the File Manager API. items: type: string objectLists: type: array description: The lists containing the imported objects. items: $ref: '#/components/schemas/PublicObjectListRecord' PublicImportResponse: required: - createdAt - id - mappedObjectTypeIds - metadata - optOutImport - state - updatedAt type: object properties: createdAt: type: string description: The timestamp when the object was created, in ISO 8601 format. format: date-time id: type: string description: The unique identifier for this import. importName: type: string description: The user-provided name for this import. importRequestJson: type: object properties: {} description: The complete import request configuration as a JSON object. importSource: type: string description: Indicates where/how the import was initiated. enum: - API - CRM_UI - IMPORT - MOBILE_ANDROID - MOBILE_IOS - SALESFORCE importTemplate: $ref: '#/components/schemas/ImportTemplate' mappedObjectTypeIds: type: array items: type: string metadata: $ref: '#/components/schemas/PublicImportMetadata' optOutImport: type: boolean description: Whether or not the import is a list of people disqualified from receiving emails. state: type: string description: The status of the import. enum: - CANCELED - DEFERRED - DONE - FAILED - PROCESSING - REVERTED - STARTED updatedAt: type: string description: The timestamp when the import record was last updated, formatted as an ISO 8601 instant. format: date-time PublicObjectListRecord: required: - listId - objectType type: object properties: listId: type: string description: The ID of the list containing the imported objects. objectType: type: string description: The type of object contained in the list. 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: crm.import: '' 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