Pipelines
Sales · 7 operations
List sales pipelines
/api/pipelineSales pipelines. Use the ids to filter leads or to find stages.
list_pipelines
Query parameters · 4
pagemin 1 · default 1pageSize1–250 · default 20nameOfPipelinelength max 150isArchivaldefault falseResponse · 200
application/json
statusCodeexample 200message—data4 fields
total—totalPages—currentPage—pipelines7 fields
pipelineId—nameOfPipeline—note—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl "https://your-school.rist.pro/api/pipeline?nameOfPipeline=string&isArchival=false" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/pipeline?nameOfPipeline=string&isArchival=false", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/pipeline",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"nameOfPipeline": "string",
"isArchival": False
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"total": 0,
"totalPages": 0,
"currentPage": 0,
"pipelines": [
{
"pipelineId": 1,
"nameOfPipeline": "string",
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
]
}
}Get sales pipeline
/api/pipeline/{id}One sales pipeline with its stages.
get_pipeline
Path parameters · 1
id—Response · 200
application/json
statusCodeexample 200message—data7 fields
pipelineId—nameOfPipeline—note—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl "https://your-school.rist.pro/api/pipeline/1" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/pipeline/1", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/pipeline/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"pipelineId": 1,
"nameOfPipeline": "string",
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}List pipeline stages
/api/stage-of-pipelineStages of sales pipelines (filter by pipelineId). Use a stage id with PATCH /api/lead/stage/{id}.
list_pipeline_stages
Query parameters · 6
pagemin 1 · default 1pageSize1–250 · default 20nameOfStagelength max 150stageIds—pipelineId—isArchivaldefault falseResponse · 200
application/json
statusCodeexample 200message—data11 fields
stageId—pipelineId—nameOfStage—color—icon—order—note—stageTypeOne of: REGULAR INCOMING CLOSED_WON CLOSED_LOSTisArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl "https://your-school.rist.pro/api/stage-of-pipeline?isArchival=false" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/stage-of-pipeline?isArchival=false", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/stage-of-pipeline",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"isArchival": False
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": [
{
"stageId": 1,
"pipelineId": 1,
"nameOfStage": "string",
"color": "string",
"icon": "string",
"order": 0,
"note": "string",
"stageType": "REGULAR",
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
]
}Create sales pipeline
/api/pipelineCreate a sales pipeline (name, 6-digit hex color without #, optional icon and note). Incoming, Closed Won and Closed Lost stages are created with it.
create_pipeline
Request body
application/json · object
nameOfPipelinelength 1–150colorlength 6–6iconlength max 50notelength max 1500Response · 201
application/json
statusCodeexample 201message—data7 fields
pipelineId—nameOfPipeline—note—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X POST "https://your-school.rist.pro/api/pipeline" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nameOfPipeline": "string",
"color": "string",
"icon": "string",
"note": "string"
}'const response = await fetch("https://your-school.rist.pro/api/pipeline", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"nameOfPipeline": "string",
"color": "string",
"icon": "string",
"note": "string"
}),
});
const { data } = await response.json();import os
import requests
response = requests.post(
"https://your-school.rist.pro/api/pipeline",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"nameOfPipeline": "string",
"color": "string",
"icon": "string",
"note": "string"
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 201,
"message": "Operation completed successfully",
"data": {
"pipelineId": 1,
"nameOfPipeline": "string",
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}Create pipeline stage
/api/stage-of-pipelineAdd a regular stage to a pipeline (pipelineId, name, 6-digit hex color). managerIds makes the stage hand new leads to these managers in turn.
create_pipeline_stage
Request body
application/json · object
pipelineIdmin 1nameOfStagelength 1–150colorlength 6–6iconlength max 50notelength max 1500managerIdsmin 1Response · 201
application/json
statusCodeexample 201message—data11 fields
stageId—pipelineId—nameOfStage—color—icon—order—note—stageTypeOne of: REGULAR INCOMING CLOSED_WON CLOSED_LOSTisArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X POST "https://your-school.rist.pro/api/stage-of-pipeline" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pipelineId": 1,
"nameOfStage": "string",
"color": "string",
"icon": "string",
"note": "string",
"managerIds": [
1
]
}'const response = await fetch("https://your-school.rist.pro/api/stage-of-pipeline", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"pipelineId": 1,
"nameOfStage": "string",
"color": "string",
"icon": "string",
"note": "string",
"managerIds": [
1
]
}),
});
const { data } = await response.json();import os
import requests
response = requests.post(
"https://your-school.rist.pro/api/stage-of-pipeline",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"pipelineId": 1,
"nameOfStage": "string",
"color": "string",
"icon": "string",
"note": "string",
"managerIds": [
1
]
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 201,
"message": "Operation completed successfully",
"data": {
"stageId": 1,
"pipelineId": 1,
"nameOfStage": "string",
"color": "string",
"icon": "string",
"order": 0,
"note": "string",
"stageType": "REGULAR",
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}Update sales pipeline
/api/pipeline/{id}Change name, color, icon and note of a pipeline. Name and color are always required; pass null to clear icon or note.
update_pipeline
Path parameters · 1
id—Request body
application/json · object
nameOfPipelinelength 1–150colorlength 6–6iconlength max 50notelength max 1500Response · 200
application/json
statusCodeexample 200message—data7 fields
pipelineId—nameOfPipeline—note—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X PUT "https://your-school.rist.pro/api/pipeline/1" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nameOfPipeline": "string",
"color": "string",
"icon": "string",
"note": "string"
}'const response = await fetch("https://your-school.rist.pro/api/pipeline/1", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"nameOfPipeline": "string",
"color": "string",
"icon": "string",
"note": "string"
}),
});
const { data } = await response.json();import os
import requests
response = requests.put(
"https://your-school.rist.pro/api/pipeline/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"nameOfPipeline": "string",
"color": "string",
"icon": "string",
"note": "string"
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"pipelineId": 1,
"nameOfPipeline": "string",
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}Update pipeline stage
/api/stage-of-pipeline/{id}Change name, color, icon and note of a stage; name and color are always required. managerIds, when sent, replaces the whole lead distribution pool (null or [] clears it); omit it to keep the pool.
update_pipeline_stage
Path parameters · 1
id—Request body
application/json · object
nameOfStagelength 1–150colorlength 6–6iconlength max 50notelength max 1500managerIdsmin 1Response · 200
application/json
statusCodeexample 200message—data11 fields
stageId—pipelineId—nameOfStage—color—icon—order—note—stageTypeOne of: REGULAR INCOMING CLOSED_WON CLOSED_LOSTisArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X PUT "https://your-school.rist.pro/api/stage-of-pipeline/1" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nameOfStage": "string",
"color": "string",
"icon": "string",
"note": "string",
"managerIds": [
1
]
}'const response = await fetch("https://your-school.rist.pro/api/stage-of-pipeline/1", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"nameOfStage": "string",
"color": "string",
"icon": "string",
"note": "string",
"managerIds": [
1
]
}),
});
const { data } = await response.json();import os
import requests
response = requests.put(
"https://your-school.rist.pro/api/stage-of-pipeline/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"nameOfStage": "string",
"color": "string",
"icon": "string",
"note": "string",
"managerIds": [
1
]
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"stageId": 1,
"pipelineId": 1,
"nameOfStage": "string",
"color": "string",
"icon": "string",
"order": 0,
"note": "string",
"stageType": "REGULAR",
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}