Taxonomy
Pipelines, stages, tags, task types, priorities and templates.
List tags
GET/api/v1/tags/
Response fields 5
idstring (uuid)organisationstring (uuid)namestringcolor_hexstringcreated_atstring (date-time)
curl "https://api.vivrecrm.com/api/v1/tags/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/tags/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/tags/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"color_hex": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
]
}
Create tag
POST/api/v1/tags/
Body
namestringRequiredcolor_hexstring
Response fields 5
idstring (uuid)organisationstring (uuid)namestringcolor_hexstringcreated_atstring (date-time)
curl -X POST "https://api.vivrecrm.com/api/v1/tags/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods"}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/tags/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/tags/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods"
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"color_hex": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
Replace (full update; PATCH for partial)
PUT/api/v1/tags/{public_id}/
Parameters
public_idpath, stringRequired- The record's public id (a UUID).
Body
namestringRequiredcolor_hexstring
Response fields 5
idstring (uuid)organisationstring (uuid)namestringcolor_hexstringcreated_atstring (date-time)
curl -X PUT "https://api.vivrecrm.com/api/v1/tags/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods"}'
import os, requests
resp = requests.put(
"https://api.vivrecrm.com/api/v1/tags/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/tags/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"
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"color_hex": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
Update tag
PATCH/api/v1/tags/{public_id}/
Parameters
public_idpath, stringRequired- The record's public id (a UUID).
Body
namestringRequiredcolor_hexstring
Response fields 5
idstring (uuid)organisationstring (uuid)namestringcolor_hexstringcreated_atstring (date-time)
curl -X PATCH "https://api.vivrecrm.com/api/v1/tags/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods"}'
import os, requests
resp = requests.patch(
"https://api.vivrecrm.com/api/v1/tags/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/tags/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "PATCH",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods"
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"color_hex": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
Delete tag
DELETE/api/v1/tags/{public_id}/
Parameters
public_idpath, stringRequired- The record's public id (a UUID).
curl -X DELETE "https://api.vivrecrm.com/api/v1/tags/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.delete(
"https://api.vivrecrm.com/api/v1/tags/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/tags/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "DELETE",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(resp.status);
List pipelines
GET/api/v1/pipelines/
Response fields 7
idstring (uuid)organisationstring (uuid)namestringis_defaultbooleanstagesarray of objectcreated_atstring (date-time)updated_atstring (date-time)
curl "https://api.vivrecrm.com/api/v1/pipelines/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/pipelines/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"is_default": true,
"stages": [],
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
]
}
Create pipeline
POST/api/v1/pipelines/
Body
namestringRequiredis_defaultboolean
Response fields 7
idstring (uuid)organisationstring (uuid)namestringis_defaultbooleanstagesarray of objectcreated_atstring (date-time)updated_atstring (date-time)
curl -X POST "https://api.vivrecrm.com/api/v1/pipelines/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods"}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/pipelines/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods"
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"is_default": true,
"stages": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
],
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
List stages
GET/api/v1/pipelines/{public_id}/stages/
Parameters
public_idpath, stringRequired- The record's public id (a UUID).
curl "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/", {
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",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
]
Create stage
POST/api/v1/pipelines/{public_id}/stages/
Parameters
public_idpath, stringRequired- The record's public id (a UUID).
Body
namestringRequired- Trimmed; must not be blank and must be unique in the pipeline.
orderintegerRequired- Must not be held by another stage of the pipeline.
probabilityintegerstage_typeenum- A stage people add is an open one, and a stage keeps its type (400 otherwise). Won, Lost and Abandoned come with every pipeline. One of
open. colorstring
Response fields 7
idstring (uuid)- The stage's
public_id. namestringorderinteger- Position in the pipeline; unique per pipeline.
probabilityintegerstage_typeenumopen,won,lostorabandoned. Won, Lost and Abandoned are the fixed stages every pipeline ends in; every other stage is open.colorstring- #RRGGBB; stored upper-cased.
created_atstring (date-time)
curl -X POST "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "order": 1}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"order": 1
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"order": 1
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
List task types
GET/api/v1/task-types/
Response fields 6
idstring (uuid)namestringslugstringis_builtinbooleanorderintegerdisabledobject
curl "https://api.vivrecrm.com/api/v1/task-types/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/task-types/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-types/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
]
}
Create task type
POST/api/v1/task-types/
Body
namestringRequiredslugstringRequired
Response fields 6
idstring (uuid)namestringslugstringis_builtinbooleanorderintegerdisabledobject
curl -X POST "https://api.vivrecrm.com/api/v1/task-types/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "slug": ""}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/task-types/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"slug": ""
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-types/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"slug": ""
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
List task priorities
GET/api/v1/task-priorities/
Response fields 7
idstring (uuid)namestringslugstringcolorstringis_builtinbooleanorderintegerdisabledobject
curl "https://api.vivrecrm.com/api/v1/task-priorities/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/task-priorities/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-priorities/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"color": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
]
}
Create task priority
POST/api/v1/task-priorities/
Body
namestringRequiredslugstringRequiredcolorstring
Response fields 7
idstring (uuid)namestringslugstringcolorstringis_builtinbooleanorderintegerdisabledobject
curl -X POST "https://api.vivrecrm.com/api/v1/task-priorities/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "slug": ""}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/task-priorities/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"slug": ""
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-priorities/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"slug": ""
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"color": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Retrieve a pipeline with its stages
GET/api/v1/pipelines/{public_id}/
Parameters
public_idpath, stringRequired
Response fields 7
idstring (uuid)organisationstring (uuid)namestringis_defaultbooleanstagesarray of objectcreated_atstring (date-time)updated_atstring (date-time)
curl "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/pipelines/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/pipelines/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",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"is_default": true,
"stages": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
],
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
Replace a pipeline
PUT/api/v1/pipelines/{public_id}/
Parameters
public_idpath, stringRequired
Body
namestringRequiredis_defaultboolean
Response fields 7
idstring (uuid)organisationstring (uuid)namestringis_defaultbooleanstagesarray of objectcreated_atstring (date-time)updated_atstring (date-time)
curl -X PUT "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods"}'
import os, requests
resp = requests.put(
"https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/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"
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"is_default": true,
"stages": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
],
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
Update a pipeline (the default moves to another, never unset; names unique in any case)
PATCH/api/v1/pipelines/{public_id}/
Parameters
public_idpath, stringRequired
Body
namestringRequiredis_defaultboolean
Response fields 7
idstring (uuid)organisationstring (uuid)namestringis_defaultbooleanstagesarray of objectcreated_atstring (date-time)updated_atstring (date-time)
curl -X PATCH "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods"}'
import os, requests
resp = requests.patch(
"https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "PATCH",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods"
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"is_default": true,
"stages": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
],
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
Delete a pipeline and its stages
DELETE/api/v1/pipelines/{public_id}/
Parameters
public_idpath, stringRequired
Can also return 409.
curl -X DELETE "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.delete(
"https://api.vivrecrm.com/api/v1/pipelines/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/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "DELETE",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(resp.status);
Put every stage of the pipeline in a new order
POST/api/v1/pipelines/{public_id}/stages/reorder/
Parameters
public_idpath, stringRequired
Body
orderarray of string (uuid)Required
Can also return 400.
curl -X POST "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/reorder/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"order": ["7c9e6679-7425-40de-944b-e07fc1f90ae7"]}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/reorder/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"order": [
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
]
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/reorder/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"order": [
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
]
}),
});
console.log(await resp.json());
[
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
]
Update a stage
PATCH/api/v1/pipelines/{public_id}/stages/{stage_id}/
Parameters
public_idpath, stringRequiredstage_idpath, stringRequired
Body
namestring- Trimmed; must not be blank and must be unique in the pipeline.
orderinteger- Must not be held by another stage of the pipeline.
probabilityintegerstage_typeenum- A stage people add is an open one, and a stage keeps its type (400 otherwise). Won, Lost and Abandoned come with every pipeline. One of
open. colorstring
Response fields 7
idstring (uuid)- The stage's
public_id. namestringorderinteger- Position in the pipeline; unique per pipeline.
probabilityintegerstage_typeenumopen,won,lostorabandoned. Won, Lost and Abandoned are the fixed stages every pipeline ends in; every other stage is open.colorstring- #RRGGBB; stored upper-cased.
created_atstring (date-time)
curl -X PATCH "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods"}'
import os, requests
resp = requests.patch(
"https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods"
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "PATCH",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods"
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"order": 1,
"probability": 1,
"stage_type": "open",
"color": "",
"created_at": "2026-10-17T09:30:00+05:30"
}
Delete a stage
DELETE/api/v1/pipelines/{public_id}/stages/{stage_id}/
Parameters
public_idpath, stringRequiredstage_idpath, stringRequired
curl -X DELETE "https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.delete(
"https://api.vivrecrm.com/api/v1/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/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/pipelines/7c9e6679-7425-40de-944b-e07fc1f90ae7/stages/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "DELETE",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(resp.status);
Retrieve a task priority
GET/api/v1/task-priorities/{public_id}/
Parameters
public_idpath, stringRequired
Response fields 7
idstring (uuid)namestringslugstringcolorstringis_builtinbooleanorderintegerdisabledobject
curl "https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/task-priorities/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/task-priorities/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",
"slug": "",
"color": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Replace a task priority
PUT/api/v1/task-priorities/{public_id}/
Parameters
public_idpath, stringRequired
Body
namestringRequiredslugstringRequiredcolorstring
Response fields 7
idstring (uuid)namestringslugstringcolorstringis_builtinbooleanorderintegerdisabledobject
curl -X PUT "https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "slug": ""}'
import os, requests
resp = requests.put(
"https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"slug": ""
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-priorities/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",
"slug": ""
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"color": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Update a task priority
PATCH/api/v1/task-priorities/{public_id}/
Parameters
public_idpath, stringRequired
Body
namestringRequiredslugstringRequiredcolorstring
Response fields 7
idstring (uuid)namestringslugstringcolorstringis_builtinbooleanorderintegerdisabledobject
curl -X PATCH "https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "slug": ""}'
import os, requests
resp = requests.patch(
"https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"slug": ""
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "PATCH",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"slug": ""
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"color": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Delete a task priority
DELETE/api/v1/task-priorities/{public_id}/
Parameters
public_idpath, stringRequired
curl -X DELETE "https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.delete(
"https://api.vivrecrm.com/api/v1/task-priorities/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/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "DELETE",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(resp.status);
Turn a task priority on or off
POST/api/v1/task-priorities/{public_id}/toggle/
Parameters
public_idpath, stringRequired
Response fields 7
idstring (uuid)namestringslugstringcolorstringis_builtinbooleanorderintegerdisabledobject
curl -X POST "https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/toggle/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/toggle/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-priorities/7c9e6679-7425-40de-944b-e07fc1f90ae7/toggle/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"color": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Retrieve a task type
GET/api/v1/task-types/{public_id}/
Parameters
public_idpath, stringRequired
Response fields 6
idstring (uuid)namestringslugstringis_builtinbooleanorderintegerdisabledobject
curl "https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/task-types/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/task-types/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",
"slug": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Replace a task type
PUT/api/v1/task-types/{public_id}/
Parameters
public_idpath, stringRequired
Body
namestringRequiredslugstringRequired
Response fields 6
idstring (uuid)namestringslugstringis_builtinbooleanorderintegerdisabledobject
curl -X PUT "https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "slug": ""}'
import os, requests
resp = requests.put(
"https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"slug": ""
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-types/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",
"slug": ""
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Update a task type
PATCH/api/v1/task-types/{public_id}/
Parameters
public_idpath, stringRequired
Body
namestringRequiredslugstringRequired
Response fields 6
idstring (uuid)namestringslugstringis_builtinbooleanorderintegerdisabledobject
curl -X PATCH "https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "slug": ""}'
import os, requests
resp = requests.patch(
"https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"slug": ""
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "PATCH",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"slug": ""
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
curl -X DELETE "https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.delete(
"https://api.vivrecrm.com/api/v1/task-types/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/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "DELETE",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(resp.status);
Turn a task type on or off
POST/api/v1/task-types/{public_id}/toggle/
Parameters
public_idpath, stringRequired
Response fields 6
idstring (uuid)namestringslugstringis_builtinbooleanorderintegerdisabledobject
curl -X POST "https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/toggle/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/toggle/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/task-types/7c9e6679-7425-40de-944b-e07fc1f90ae7/toggle/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"slug": "",
"is_builtin": true,
"order": 1,
"disabled": null
}
Message templates
GET/api/v1/templates/
Response fields 15
idstring (uuid)organisationstring (uuid)namestringtypeenumcontentstringvariablesarray of objectsubjectstringis_sharedbooleancreated_by_uuidobjectcreated_by_usernameobjectcreated_by_first_nameobjectcreated_by_last_nameobjectcreated_by_nameobjectcreated_atstring (date-time)updated_atstring (date-time)
curl "https://api.vivrecrm.com/api/v1/templates/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/templates/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/templates/", {
method: "GET",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday.",
"variables": [],
"subject": "",
"is_shared": true,
"created_by_uuid": null,
"created_by_username": null,
"created_by_first_name": null,
"created_by_last_name": null,
"created_by_name": null,
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
]
}
Create a message template
POST/api/v1/templates/
WhatsApp templates are created and approved in WhatsApp (Meta), not here: type whatsapp is a 400. They are listed, read only, so they can be picked.
Body
namestringRequiredtypeenumRequired- One of
email,whatsapp,note,task. contentstringRequiredvariablesarray of object
Response fields 15
idstring (uuid)organisationstring (uuid)namestringtypeenumcontentstringvariablesarray of objectsubjectstringis_sharedbooleancreated_by_uuidobjectcreated_by_usernameobjectcreated_by_first_nameobjectcreated_by_last_nameobjectcreated_by_nameobjectcreated_atstring (date-time)updated_atstring (date-time)
curl -X POST "https://api.vivrecrm.com/api/v1/templates/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "type": "email", "content": "Called, wants a demo on Friday."}'
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/templates/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday."
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/templates/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday."
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday.",
"variables": [
null
],
"subject": "",
"is_shared": true,
"created_by_uuid": null,
"created_by_username": null,
"created_by_first_name": null,
"created_by_last_name": null,
"created_by_name": null,
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
Retrieve a message template
GET/api/v1/templates/{public_id}/
Parameters
public_idpath, stringRequired
Response fields 15
idstring (uuid)organisationstring (uuid)namestringtypeenumcontentstringvariablesarray of objectsubjectstringis_sharedbooleancreated_by_uuidobjectcreated_by_usernameobjectcreated_by_first_nameobjectcreated_by_last_nameobjectcreated_by_nameobjectcreated_atstring (date-time)updated_atstring (date-time)
curl "https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.get(
"https://api.vivrecrm.com/api/v1/templates/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/templates/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",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday.",
"variables": [
null
],
"subject": "",
"is_shared": true,
"created_by_uuid": null,
"created_by_username": null,
"created_by_first_name": null,
"created_by_last_name": null,
"created_by_name": null,
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
Replace a message template
PUT/api/v1/templates/{public_id}/
A WhatsApp template is refused here (400 on type): they are made and approved in WhatsApp (Meta).
Parameters
public_idpath, stringRequired
Body
namestringRequiredtypeenumRequired- One of
email,whatsapp,note,task. contentstringRequiredvariablesarray of object
Response fields 15
idstring (uuid)organisationstring (uuid)namestringtypeenumcontentstringvariablesarray of objectsubjectstringis_sharedbooleancreated_by_uuidobjectcreated_by_usernameobjectcreated_by_first_nameobjectcreated_by_last_nameobjectcreated_by_nameobjectcreated_atstring (date-time)updated_atstring (date-time)
curl -X PUT "https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "type": "email", "content": "Called, wants a demo on Friday."}'
import os, requests
resp = requests.put(
"https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday."
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/templates/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",
"type": "email",
"content": "Called, wants a demo on Friday."
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday.",
"variables": [
null
],
"subject": "",
"is_shared": true,
"created_by_uuid": null,
"created_by_username": null,
"created_by_first_name": null,
"created_by_last_name": null,
"created_by_name": null,
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
Update a message template
PATCH/api/v1/templates/{public_id}/
A WhatsApp template is refused here (400 on type): they are made and approved in WhatsApp (Meta).
Parameters
public_idpath, stringRequired
Body
namestringRequiredtypeenumRequired- One of
email,whatsapp,note,task. contentstringRequiredvariablesarray of object
Response fields 15
idstring (uuid)organisationstring (uuid)namestringtypeenumcontentstringvariablesarray of objectsubjectstringis_sharedbooleancreated_by_uuidobjectcreated_by_usernameobjectcreated_by_first_nameobjectcreated_by_last_nameobjectcreated_by_nameobjectcreated_atstring (date-time)updated_atstring (date-time)
curl -X PATCH "https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Kaveri Foods", "type": "email", "content": "Called, wants a demo on Friday."}'
import os, requests
resp = requests.patch(
"https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/",
headers={"X-Api-Key": os.environ["VIVRE_API_KEY"]},
json={
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday."
},
)
print(resp.json())
const resp = await fetch("https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "PATCH",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday."
}),
});
console.log(await resp.json());
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"organisation": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Kaveri Foods",
"type": "email",
"content": "Called, wants a demo on Friday.",
"variables": [
null
],
"subject": "",
"is_shared": true,
"created_by_uuid": null,
"created_by_username": null,
"created_by_first_name": null,
"created_by_last_name": null,
"created_by_name": null,
"created_at": "2026-10-17T09:30:00+05:30",
"updated_at": "2026-10-17T09:30:00+05:30"
}
Delete a message template
DELETE/api/v1/templates/{public_id}/
A WhatsApp template is refused here (400 on type): they are made and approved in WhatsApp (Meta).
Parameters
public_idpath, stringRequired
curl -X DELETE "https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.delete(
"https://api.vivrecrm.com/api/v1/templates/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/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/", {
method: "DELETE",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(resp.status);
Render a template with the given values
POST/api/v1/templates/{public_id}/preview/
Parameters
public_idpath, stringRequired
Body
valuesobject- Variable name to replacement text.
Response fields 2
template_idstring (uuid)- The template's public id. A read-only key may preview.
rendered_contentstring- Content with each known {{variable}} replaced; unknown placeholders are left as written.
curl -X POST "https://api.vivrecrm.com/api/v1/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/preview/" \
-H "X-Api-Key: $VIVRE_API_KEY"
import os, requests
resp = requests.post(
"https://api.vivrecrm.com/api/v1/templates/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/templates/7c9e6679-7425-40de-944b-e07fc1f90ae7/preview/", {
method: "POST",
headers: {
"X-Api-Key": process.env.VIVRE_API_KEY,
},
});
console.log(await resp.json());
{
"template_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"rendered_content": ""
}