Ingest
Bulk ingest. Upload a full dataset to mint a new index version. Single-record updates use the Records endpoints; this group is for whole-index uploads.
POST /v1/uploads/start
Begin a bulk upload
Returns a 15-minute upload URL the client PUTs bytes to, plus the version id the upload will produce. Multi-GB files are supported.
The new version becomes a candidate once ingest completes; earlier versions remain queryable subject to retention.
Three-call flow:
POST /v1/uploads/start— get the upload URL + assigned version.PUT <uploadUrl>— upload bytes.POST /v1/uploads/complete— kick off ingest.
Version ids are sequential per index (e.g. 1, 2, 3, ...).
Request body
{
"indexName": "doctors"
}Example request
curl -X POST \
'https://api.eztype.io/v1/uploads/start' \
-H 'Content-Type: application/json' \
-d '{
"indexName": "doctors"
}'Responses
200 — Upload URL + assigned version id.
{
"uploadUrl": "https://uploads.eztype.io/indexes/1/doctors/3?signature=...",
"indexVersion": "3"
}400 — Index not found.
POST /v1/uploads/complete
Trigger ingest after the upload completes
Signals that the bytes are in place. EZType parses the file (CSV / JSON Lines / JSON Array auto-detected), assigns ids (using the record's id if present, else a UUID), and bulk-loads. Returns immediately; ingest runs asynchronously and the new version goes live once it's complete.
Uploaded data should be one of:
- CSV with header row. Columns map to record fields by name.
- JSON Lines (one JSON object per line).
- JSON Array (single top-level array).
Request body
{
"indexName": "doctors",
"indexVersion": "3"
}Example request
curl -X POST \
'https://api.eztype.io/v1/uploads/complete' \
-H 'Content-Type: application/json' \
-d '{
"indexName": "doctors",
"indexVersion": "3"
}'Responses
200 — Ingest queued.
{
"resultCode": "SUCCESS",
"message": "OK"
}