What It Does
The Import API provides RPCs for the full product import lifecycle: creating a job, submitting rows, mapping columns, validating data, and committing the import.Who It’s For
Developers building automated data pipelines that feed product data into MintID from external systems.create_import_job
What it does
Creates a new import job for the specified brand. The job starts in a draft state and accepts rows and mappings before validation and commit.Request
Response (example)
Errors (examples)
- Not authenticated — request has no valid JWT or the token has expired.
- Forbidden — caller does not have admin access to the specified brand.
- Invalid input — missing required fields or duplicate idempotency key.
bulk_upsert_import_rows
What it does
Submits parsed rows to an existing import job. Rows are upserted by row number within the job — resubmitting the same row number replaces the previous data.Request
Response (example)
Errors (examples)
- Not authenticated — request has no valid JWT or the token has expired.
- Forbidden — caller does not have access to the specified job.
- Invalid input — rows are malformed or missing required fields (row_number, raw_row).
set_import_mapping
What it does
Defines how source CSV columns map to MintID product fields. Must be called before validation.Request
Response (example)
Errors (examples)
- Not authenticated — request has no valid JWT or the token has expired.
- Forbidden — caller does not have access to the specified job.
- Invalid input — column mapping is not a valid JSON object.
validate_import_job
What it does
Runs server-side validation on all rows in the job. Each row is checked for required fields, data types, value-set compliance, and identifier format. Must be called before commit.Request
Response (example)
Errors (examples)
- Not authenticated — request has no valid JWT or the token has expired.
- Forbidden — caller does not have access to the specified job.
- Invalid input — job has no rows or no column mapping set.
commit_import_job
What it does
Commits the import, creating or updating products for all valid (non-excluded) rows. Each row is processed independently — a failure on one row does not affect others. The job must be validated before committing.Request
Response (example)
Errors (examples)
- Not authenticated — request has no valid JWT.
- Forbidden — caller does not have sufficient access for this operation.
- Invalid input — request is malformed or cannot be processed.
Typical Workflow
- Call
create_import_jobwith the brand ID and file name. - Call
bulk_upsert_import_rowswith parsed row data. - Call
set_import_mappingto define column-to-field mappings. - Call
validate_import_jobto check all rows. - Call
commit_import_jobto apply the import.
Limits & Notes
- All import RPCs require authentication with admin role.
- Each row is processed independently during commit.
- Idempotency keys prevent duplicate job creation.
- Validation must complete before commit is allowed.
FAQ
Can I update an existing row after submission? Yes. Callbulk_upsert_import_rows again with the same row numbers — rows are upserted by row number.
What file formats are supported?
The API accepts pre-parsed JSON row data. CSV parsing is handled client-side before calling the API.