Skip to content

Import

Bring records in from a CSV: upload, map, run and resume.

19 endpoints. Every request needs an X-Api-Key header.

List uploaded files

GET/api/v1/import/file/

curl "https://api.vivrecrm.com/api/v1/import/file/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
null

Upload import file (multipart)

POST/api/v1/import/file/

Response fields 9
idstring (uuid)
original_namestring
row_countinteger
Rows an import job will process.
total_rows_in_fileinteger
True data rows in the file; 0 on older rows and on files created by reuse.
headersarray of string
wizard_stepenum
uploaded_atstring (date-time)
file_analysisobject
previous_importobject

Can also return 400.

curl -X POST "https://api.vivrecrm.com/api/v1/import/file/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 201
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "original_name": "",
  "row_count": 1,
  "total_rows_in_file": 1,
  "headers": [
    ""
  ],
  "wizard_step": "uploaded",
  "uploaded_at": "2026-10-17T09:30:00+05:30",
  "file_analysis": null,
  "previous_import": null
}

Preview rows

GET/api/v1/import/file/{file_id}/preview/

Parameters

file_idpath, string (uuid)Required
Response fields 5
idstring (uuid)
original_namestring
headersarray of string
row_countinteger
sample_rowsarray of object
Up to rows (max 100) data rows, each keyed by header.
curl "https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/preview/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "original_name": "",
  "headers": [
    ""
  ],
  "row_count": 1,
  "sample_rows": [
    {}
  ]
}

Auto-detect mapping

GET/api/v1/import/file/{file_id}/auto-detect/

Parameters

file_idpath, string (uuid)Required
Response fields 3
suggested_mappingsobject
Map of every file header to the matched CRM field key, or null.
available_fieldsarray of object
empty_columnsarray of string
Headers with no non-empty value anywhere in the file (empty if the file could not be read).
curl "https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/auto-detect/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
{
  "suggested_mappings": {},
  "available_fields": [
    {
      "key": "",
      "label": "",
      "type": "text",
      "required": true,
      "is_custom": true,
      "is_member": true,
      "choices": []
    }
  ],
  "empty_columns": [
    ""
  ]
}

List mappings

GET/api/v1/import/mapping/

curl "https://api.vivrecrm.com/api/v1/import/mapping/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
[
  {
    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "name": "Kaveri Foods",
    "entity_type": "Lead",
    "column_mappings": {},
    "field_defaults": {},
    "field_policies": {},
    "auto_created": true,
    "created_at": "2026-10-17T09:30:00+05:30",
    "updated_at": "2026-10-17T09:30:00+05:30"
  }
]

Create mapping

POST/api/v1/import/mapping/

Body

namestringRequired
entity_typeenumRequired
One of Lead, Contact, Company, Deal.
column_mappingsobject
Map of file header to CRM field key (null to ignore). Defaults to {}.
field_defaultsobject, can be null
Field key to constant. Keys must be fields of entity_type; select values must be a choice, number/date values must parse, member fields must be an active member's email.
field_policiesobject, can be null
Field key to policy; leave_empty is refused on required fields.
auto_createdboolean
Response fields 9
idstring (uuid)
namestring
entity_typeenum
column_mappingsobject
Map of file header to CRM field key (null to ignore).
field_defaultsobject
Map of field key to a constant applied when the column is absent or blank. Validated per field type.
field_policiesobject
Map of field key to a per-field policy.
auto_createdboolean
True for single-use mappings created by the wizard.
created_atstring (date-time)
updated_atstring (date-time)
curl -X POST "https://api.vivrecrm.com/api/v1/import/mapping/" \
  -H "X-Api-Key: $VIVRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Kaveri Foods", "entity_type": "Lead"}'
Response 201
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "name": "Kaveri Foods",
  "entity_type": "Lead",
  "column_mappings": {},
  "field_defaults": {},
  "field_policies": {},
  "auto_created": true,
  "created_at": "2026-10-17T09:30:00+05:30",
  "updated_at": "2026-10-17T09:30:00+05:30"
}

List jobs

GET/api/v1/import/job/

curl "https://api.vivrecrm.com/api/v1/import/job/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
[
  {
    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "status": "pending",
    "file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "file_name": "",
    "entity_type": "",
    "mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "total_rows": 1,
    "success_rows": 1,
    "skipped_rows": 1,
    "last_committed_row": 1,
    "progress_rows": 1,
    "error_message": "",
    "created_at": "2026-10-17T09:30:00+05:30",
    "started_at": "2026-10-17T09:30:00+05:30",
    "completed_at": "2026-10-17T09:30:00+05:30"
  }
]

Create job

POST/api/v1/import/job/

Body

file_idstring (uuid)Required
mapping_idstring (uuid)Required
value_resolutionsobject
Field key to a map of raw file value to the value to store, e.g. {"source": {"web form": "web_form"}}.
Response fields 15
idstring (uuid)
statusenum
file_idstring (uuid)
file_namestring
entity_typestring
The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)
total_rowsinteger
success_rowsinteger
skipped_rowsinteger
last_committed_rowinteger
progress_rowsinteger
error_messagestring
created_atstring (date-time)
started_atstring (date-time)
completed_atstring (date-time)

Can also return 409.

curl -X POST "https://api.vivrecrm.com/api/v1/import/job/" \
  -H "X-Api-Key: $VIVRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"}'
Response 201
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "pending",
  "file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "file_name": "",
  "entity_type": "",
  "mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "total_rows": 1,
  "success_rows": 1,
  "skipped_rows": 1,
  "last_committed_row": 1,
  "progress_rows": 1,
  "error_message": "",
  "created_at": "2026-10-17T09:30:00+05:30",
  "started_at": "2026-10-17T09:30:00+05:30",
  "completed_at": "2026-10-17T09:30:00+05:30"
}

Job detail

GET/api/v1/import/job/{job_id}/

Parameters

job_idpath, string (uuid)Required
Response fields 15
idstring (uuid)
statusenum
file_idstring (uuid)
file_namestring
entity_typestring
The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)
total_rowsinteger
success_rowsinteger
skipped_rowsinteger
last_committed_rowinteger
progress_rowsinteger
error_messagestring
created_atstring (date-time)
started_atstring (date-time)
completed_atstring (date-time)
curl "https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "pending",
  "file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "file_name": "",
  "entity_type": "",
  "mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "total_rows": 1,
  "success_rows": 1,
  "skipped_rows": 1,
  "last_committed_row": 1,
  "progress_rows": 1,
  "error_message": "",
  "created_at": "2026-10-17T09:30:00+05:30",
  "started_at": "2026-10-17T09:30:00+05:30",
  "completed_at": "2026-10-17T09:30:00+05:30"
}

Skip report

GET/api/v1/import/job/{job_id}/skip-report/

Parameters

job_idpath, string (uuid)Required
curl "https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/skip-report/" \
  -H "X-Api-Key: $VIVRE_API_KEY"

Re-run job

POST/api/v1/import/job/{job_id}/rerun/

Parameters

job_idpath, string (uuid)Required
Response fields 15
idstring (uuid)
statusenum
file_idstring (uuid)
file_namestring
entity_typestring
The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)
total_rowsinteger
success_rowsinteger
skipped_rowsinteger
last_committed_rowinteger
progress_rowsinteger
error_messagestring
created_atstring (date-time)
started_atstring (date-time)
completed_atstring (date-time)
curl -X POST "https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/rerun/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 201
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "pending",
  "file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "file_name": "",
  "entity_type": "",
  "mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "total_rows": 1,
  "success_rows": 1,
  "skipped_rows": 1,
  "last_committed_row": 1,
  "progress_rows": 1,
  "error_message": "",
  "created_at": "2026-10-17T09:30:00+05:30",
  "started_at": "2026-10-17T09:30:00+05:30",
  "completed_at": "2026-10-17T09:30:00+05:30"
}

Resume job

POST/api/v1/import/job/{job_id}/resume/

Parameters

job_idpath, string (uuid)Required
Response fields 15
idstring (uuid)
statusenum
file_idstring (uuid)
file_namestring
entity_typestring
The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)
total_rowsinteger
success_rowsinteger
skipped_rowsinteger
last_committed_rowinteger
progress_rowsinteger
error_messagestring
created_atstring (date-time)
started_atstring (date-time)
completed_atstring (date-time)

Can also return 400.

curl -X POST "https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/resume/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "pending",
  "file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "file_name": "",
  "entity_type": "",
  "mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "total_rows": 1,
  "success_rows": 1,
  "skipped_rows": 1,
  "last_committed_row": 1,
  "progress_rows": 1,
  "error_message": "",
  "created_at": "2026-10-17T09:30:00+05:30",
  "started_at": "2026-10-17T09:30:00+05:30",
  "completed_at": "2026-10-17T09:30:00+05:30"
}

Start a new import from a file already uploaded

POST/api/v1/import/file/{file_id}/reuse/

Parameters

file_idpath, stringRequired
Response fields 8
idstring (uuid)
original_namestring
row_countinteger
Rows an import job will process.
total_rows_in_fileinteger
True data rows in the file; 0 on older rows and on files created by reuse.
headersarray of string
wizard_stepenum
uploaded_atstring (date-time)
file_analysisobject
curl -X POST "https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/reuse/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 201
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "original_name": "",
  "row_count": 1,
  "total_rows_in_file": 1,
  "headers": [
    ""
  ],
  "wizard_step": "uploaded",
  "uploaded_at": "2026-10-17T09:30:00+05:30",
  "file_analysis": null
}

Distinct values in the file's mapped select columns

POST/api/v1/import/file/{file_id}/scan-values/

Parameters

file_idpath, stringRequired

Body

entity_typestringRequired
Field registry entity, e.g. Lead, Contact, Company, Deal.
column_mappingsobjectRequired
Map of file header to CRM field key (null or empty to ignore the column).
Response fields 4
selectobject
Field key to the sorted distinct values found; recognised values are folded to the choice's casing.
booleanobject
dateobject
choicesobject
Field key to the sorted values each select field accepts.
curl -X POST "https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/scan-values/" \
  -H "X-Api-Key: $VIVRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"entity_type": "", "column_mappings": {}}'
Response 200
{
  "select": {},
  "boolean": {},
  "date": {},
  "choices": {}
}

Import the rows beyond one job's cap, as a follow-up job

POST/api/v1/import/job/{job_id}/import-remaining/

Parameters

job_idpath, stringRequired
Response fields 15
idstring (uuid)
statusenum
file_idstring (uuid)
file_namestring
entity_typestring
The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)
total_rowsinteger
success_rowsinteger
skipped_rowsinteger
last_committed_rowinteger
progress_rowsinteger
error_messagestring
created_atstring (date-time)
started_atstring (date-time)
completed_atstring (date-time)
curl -X POST "https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/import-remaining/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 201
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "pending",
  "file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "file_name": "",
  "entity_type": "",
  "mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "total_rows": 1,
  "success_rows": 1,
  "skipped_rows": 1,
  "last_committed_row": 1,
  "progress_rows": 1,
  "error_message": "",
  "created_at": "2026-10-17T09:30:00+05:30",
  "started_at": "2026-10-17T09:30:00+05:30",
  "completed_at": "2026-10-17T09:30:00+05:30"
}

An import's rows and what happened to each

GET/api/v1/import/job/{job_id}/rows/

Parameters

job_idpath, stringRequired
Response fields 3
rowinteger
File-relative row number (header is row 1).
outcomeenum
reasonstring
Skip reason; null unless skipped.
curl "https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/rows/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
{
  "count": 1,
  "page": 1,
  "page_size": 1,
  "summary": {
    "added": 1,
    "skipped": 1,
    "pending": 1
  },
  "results": [
    {
      "row": 1,
      "outcome": "added",
      "reason": ""
    }
  ]
}

Retrieve a saved column mapping

GET/api/v1/import/mapping/{mapping_id}/

Parameters

mapping_idpath, stringRequired
Response fields 9
idstring (uuid)
namestring
entity_typeenum
column_mappingsobject
Map of file header to CRM field key (null to ignore).
field_defaultsobject
Map of field key to a constant applied when the column is absent or blank. Validated per field type.
field_policiesobject
Map of field key to a per-field policy.
auto_createdboolean
True for single-use mappings created by the wizard.
created_atstring (date-time)
updated_atstring (date-time)
curl "https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
  -H "X-Api-Key: $VIVRE_API_KEY"
Response 200
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "name": "Kaveri Foods",
  "entity_type": "Lead",
  "column_mappings": {},
  "field_defaults": {},
  "field_policies": {},
  "auto_created": true,
  "created_at": "2026-10-17T09:30:00+05:30",
  "updated_at": "2026-10-17T09:30:00+05:30"
}

Replace a saved column mapping

PUT/api/v1/import/mapping/{mapping_id}/

Parameters

mapping_idpath, stringRequired

Body

namestringRequired
entity_typeenumRequired
One of Lead, Contact, Company, Deal.
column_mappingsobject
Map of file header to CRM field key (null to ignore). Defaults to {}.
field_defaultsobject, can be null
Field key to constant. Keys must be fields of entity_type; select values must be a choice, number/date values must parse, member fields must be an active member's email.
field_policiesobject, can be null
Field key to policy; leave_empty is refused on required fields.
auto_createdboolean
Response fields 9
idstring (uuid)
namestring
entity_typeenum
column_mappingsobject
Map of file header to CRM field key (null to ignore).
field_defaultsobject
Map of field key to a constant applied when the column is absent or blank. Validated per field type.
field_policiesobject
Map of field key to a per-field policy.
auto_createdboolean
True for single-use mappings created by the wizard.
created_atstring (date-time)
updated_atstring (date-time)
curl -X PUT "https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
  -H "X-Api-Key: $VIVRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Kaveri Foods", "entity_type": "Lead"}'
Response 200
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "name": "Kaveri Foods",
  "entity_type": "Lead",
  "column_mappings": {},
  "field_defaults": {},
  "field_policies": {},
  "auto_created": true,
  "created_at": "2026-10-17T09:30:00+05:30",
  "updated_at": "2026-10-17T09:30:00+05:30"
}

Delete a saved column mapping

DELETE/api/v1/import/mapping/{mapping_id}/

Parameters

mapping_idpath, stringRequired
curl -X DELETE "https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
  -H "X-Api-Key: $VIVRE_API_KEY"