Import
Bring records in from a CSV: upload, map, run and resume.
List uploaded files
GET/api/v1/import/file/
curl "https://api.vivrecrm.com/api/v1/import/file/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/file/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/file/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
null
Upload import file (multipart)
POST/api/v1/import/file/
Response fields 9
idstring (uuid)original_namestringrow_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 stringwizard_stepenumuploaded_atstring (date-time)file_analysisobjectprevious_importobject
Can also return 400.
curl -X POST "https://api.vivrecrm.com/api/v1/import/file/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/file/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/file/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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_namestringheadersarray of stringrow_countintegersample_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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/preview/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/preview/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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 objectempty_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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/auto-detect/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/auto-detect/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/mapping/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/mapping/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
[
{
"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
namestringRequiredentity_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_emptyis refused on required fields. auto_createdboolean
Response fields 9
idstring (uuid)namestringentity_typeenumcolumn_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"}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/mapping/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"entity_type": "Lead"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/mapping/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"entity_type": "Lead"
}),
});
console.log(await resp.json());
{
"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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/job/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
[
{
"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)Requiredmapping_idstring (uuid)Requiredvalue_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)statusenumfile_idstring (uuid)file_namestringentity_typestring- The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)total_rowsintegersuccess_rowsintegerskipped_rowsintegerlast_committed_rowintegerprogress_rowsintegererror_messagestringcreated_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"}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/job/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"file_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"mapping_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
}),
});
console.log(await resp.json());
{
"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)statusenumfile_idstring (uuid)file_namestringentity_typestring- The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)total_rowsintegersuccess_rowsintegerskipped_rowsintegerlast_committed_rowintegerprogress_rowsintegererror_messagestringcreated_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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/skip-report/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/skip-report/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
Re-run job
POST/api/v1/import/job/{job_id}/rerun/
Parameters
job_idpath, string (uuid)Required
Response fields 15
idstring (uuid)statusenumfile_idstring (uuid)file_namestringentity_typestring- The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)total_rowsintegersuccess_rowsintegerskipped_rowsintegerlast_committed_rowintegerprogress_rowsintegererror_messagestringcreated_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"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/rerun/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/rerun/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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)statusenumfile_idstring (uuid)file_namestringentity_typestring- The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)total_rowsintegersuccess_rowsintegerskipped_rowsintegerlast_committed_rowintegerprogress_rowsintegererror_messagestringcreated_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"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/resume/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/resume/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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_namestringrow_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 stringwizard_stepenumuploaded_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"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/reuse/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/reuse/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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.
booleanobjectdateobjectchoicesobject- 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": {}}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/scan-values/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"entity_type": "",
"column_mappings": {}
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/file/7c9e6679-7425-40de-944b-e07fc1f90ae7/scan-values/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"entity_type": "",
"column_mappings": {}
}),
});
console.log(await resp.json());
{
"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)statusenumfile_idstring (uuid)file_namestringentity_typestring- The mapping's entity type; null when the mapping was deleted.
mapping_idstring (uuid)total_rowsintegersuccess_rowsintegerskipped_rowsintegerlast_committed_rowintegerprogress_rowsintegererror_messagestringcreated_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"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/import-remaining/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/import-remaining/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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).
outcomeenumreasonstring- 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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/rows/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/job/7c9e6679-7425-40de-944b-e07fc1f90ae7/rows/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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)namestringentity_typeenumcolumn_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"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"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
namestringRequiredentity_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_emptyis refused on required fields. auto_createdboolean
Response fields 9
idstring (uuid)namestringentity_typeenumcolumn_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"}'
import os, requests
resp = requests.put(
"https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"entity_type": "Lead"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "PUT",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"entity_type": "Lead"
}),
});
console.log(await resp.json());
{
"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"
import os, requests
resp = requests.delete(
"https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.status_code)
const resp = await fetch("https://api.vivrecrm.com/api/v1/import/mapping/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "DELETE",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(resp.status);