Skip to main content
Import rebuilds documents from one external export and writes them into a collection through the same BYO write core as upsert, so imported documents arrive with their vectors and their lineage intact. Three calls. The first two write nothing.
1

Infer a mapping from a sample

POST /v1/collections/import/infer reads a sample of your export and returns the source fields it found with a suggested source-to-target mapping.
Returns fields and warnings. It runs on the sample alone, so nothing is written and nothing is reserved.
2

Validate the finished mapping

POST /v1/collections/import/validate-mapping checks the mapping you settled on. mapping is required.
Returns ok plus errors. It flags four things: a missing root-identity mapping, source and target types that disagree, a vector dimension that does not match a known index, and source fields it does not recognise.
3

Import

POST /v1/collections/{collection_identifier}/import reconstructs the documents and writes them. mapping is required.
Returns reconstructed, imported, skipped, errors, warnings and dry_run.

Reading the result

A bad row does not stop the batch. skipped counts rows that failed reconstruction while imported counts the ones that were written, so a partially-bad export gives you both, not an all-or-nothing outcome.Compare reconstructed against imported and skipped rather than checking for an error status. A response with errors in it can still have written most of the batch.
Run the third call with "dry_run": true first. It reconstructs and validates the full export, not a sample, and writes nothing — imported comes back 0 while reconstructed and skipped tell you what the real run would do.Step 2 validates the mapping. A dry run validates the mapping against every row of the actual export, which is a different and stronger check.

Options