Skip to content

Create an import

View as Markdown
post /api/imports

Creates a Import resource.

Uploads a CSV, TSV or XLSX file and creates an import job for it. The body is multipart/form-data with the file, the target type, and optional metadata (such as the locale, the XLSX sheetName, or reset). The upload is synchronous, but processing is asynchronous: the job is returned with its status, and its report stays null until processing ends. Requires the imports:write and imports:read scopes.

Request body

PropertyTypeRequiredDescription
filestringrequiredCSV, TSV or XLSX file
metadataobject-Per-import options (e.g. locale, sheetName for XLSX)
Show metadata fields
PropertyTypeRequiredDescription
localestring-
optionCountinteger-Number of option columns (product import only, 1-3).
resetboolean-When true, delete all existing data of this type before importing (atomic).
sheetNamestring-
type"collections" | "categories" | "attributes" | "suppliers" | "attribute_options" | "purchase_offer" | "sale_offer" | "metafield_value" | "product"requiredThe resource type to import

Response

201 - Import resource created

Content-Type: application/ld+json

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
createdAtstring | null-
format"csv" | "tsv" | "xlsx" | null-
idstring-
metadataobject-
reportobject | null-Per-row processing report. Null until the import has been processed.
Show report fields
PropertyTypeRequiredDescription
errorstring-Present only when the import failed systemically.
errorsobject[]required
Show errors fields
PropertyTypeRequiredDescription
lineintegerrequired
messagesstring[]required
failedintegerrequired
importedintegerrequired
resetobject-Records deleted per table, present only when metadata[reset]=true.
totalRowsintegerrequired
status"pending" | "processing" | "completed" | "failed" | null-
type"collections" | "categories" | "attributes" | "suppliers" | "attribute_options" | "purchase_offer" | "sale_offer" | "metafield_value" | "product" | nullrequired
updatedAtstring | null-

Errors

400 - Invalid input

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
codestring-Stable identifier of the error in the error code catalogue (see /api/error-codes). Present on catalogued errors only.
descriptionstring | null-
detailstring | null-A human-readable explanation specific to this occurrence of the problem.
instancestring | null-A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
messagestring-End-user message localized in the request locale, with this occurrence's values substituted. Present on catalogued errors only.
slugstring-Stable, readable key of the error in the error code catalogue. Present on catalogued errors only.
statusinteger | null-
titlestring | null-A short, human-readable summary of the problem. For a catalogued error it repeats the slug.
typestring-A URI reference that identifies the problem type. For a catalogued error it is the error code resource, /api/error-codes/{code}.

403 - Access denied. The caller is missing one or more permissions required for this operation.

Content-Type: application/problem+json

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
detailstring-
missingPermissionsstring[]-Permissions that the caller is missing for this operation. Present only when the 403 is caused by a denied permission.
statusinteger-
titlestring-
typestring-

422 - An error occurred

PropertyTypeRequiredDescription
@contextstring | object-
@idstringrequired
@typestringrequired
descriptionstring-
detailstring-
instancestring | null-
statusinteger-
titlestring | null-
typestring-
violationsobject[]-
Show violations fields
PropertyTypeRequiredDescription
codestring-The code of the violation
hintstring-An extra hint to understand the violation
messagestringrequiredThe message associated with the violation
parametersobject-Dynamic placeholder values for the violation message template (substitute into the code catalogue message).
payloadobject-The serialized payload of the violation
propertyPathstringrequiredThe property path of the violation
slugstring-Stable centralized error-code slug for this violation (see /api/error-codes).