Import / Export API
Bring data in from CSV files and take it out again.
Bulk CSV in and out. An import is a conversation, not a request: upload the file (streamed into a staging table, never held in memory), preview it, map its columns onto a target's fields, then commit. Committing queues the work and returns 202 — a large file is minutes of work — and progress arrives as events on the organization's normal stream rather than by polling. The service owns the job lifecycle as its own journal but owns no domain state: every row it applies becomes an ordinary command to the service that owns that entity, so inventory stays the source of truth for quantities and every invariant is enforced exactly where it always was. Rows are marked complete as they land, so a retried job resumes rather than double-applying.
- Base URL
https://import.getmanifold.io- Auth
- A bearer token on every call. See the quickstart.
- OpenAPI
- import-export.openapi.json
targets
What can be imported, and the fields each target accepts.
imports
Upload, preview, map, and run CSV imports.
- GET
/importsA page of the organization's import jobs, newest first - POST
/importsUpload a CSV - GET
/imports/{jobId}One import job, including its live progress counters - POST
/imports/rowsSubmit rows as JSON rather than as a file - GET
/imports/{jobId}/previewThe first limit staged rows plus a suggested mapping - PUT
/imports/{jobId}/targetPoint a staged or mapped job at another import target - PUT
/imports/{jobId}/mappingSet which CSV column feeds which target field - POST
/imports/{jobId}/commitQueue the import - GET
/imports/{jobId}/failuresEvery row this job rejected
mappings
Reusable column mappings.
- GET
/mappingsThe organization's saved CSV column mappings - POST
/mappingsSave a column mapping for reuse on the next file of the same shape - DELETE
/mappings/{mappingId}Forget a saved mapping
exports
Streaming CSV export, and its preview.
- POST
/exportsAsk for the organization's rows for a target as CSV - GET
/exports/{exportId}/downloadStream an export's rows as CSV - GET
/exports/{target}/previewA page of the rows an export with these options would write
events
Import journal replay.