Update ICP
curl --request PATCH \
--url https://api.example.com/api/v1/entities/icps/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": {},
"userIds": [
{
"userIds[]": "<string>"
}
],
"leadsPerList": 123,
"activeUntil": {},
"leadProviderCriteria": [
{
"leadProviderCriteria[].provider": "<string>",
"leadProviderCriteria[].type": "<string>",
"leadProviderCriteria[].filters": {}
}
],
"customFilterCriteria": [
{
"customFilterCriteria[].type": "<string>"
}
],
"crmFilters": {
"crmFilters.provider": "<string>",
"crmFilters.textSearch": {},
"crmFilters.query": {},
"crmFilters.filters": [
{
"crmFilters.filters[].path": "<string>",
"crmFilters.filters[].mode": "<string>",
"crmFilters.filters[].value": {},
"crmFilters.filters[].exclude": true
}
]
}
}
'import requests
url = "https://api.example.com/api/v1/entities/icps/{id}"
payload = {
"name": "<string>",
"description": {},
"userIds": [{ "userIds[]": "<string>" }],
"leadsPerList": 123,
"activeUntil": {},
"leadProviderCriteria": [
{
"leadProviderCriteria[].provider": "<string>",
"leadProviderCriteria[].type": "<string>",
"leadProviderCriteria[].filters": {}
}
],
"customFilterCriteria": [{ "customFilterCriteria[].type": "<string>" }],
"crmFilters": {
"crmFilters.provider": "<string>",
"crmFilters.textSearch": {},
"crmFilters.query": {},
"crmFilters.filters": [
{
"crmFilters.filters[].path": "<string>",
"crmFilters.filters[].mode": "<string>",
"crmFilters.filters[].value": {},
"crmFilters.filters[].exclude": True
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: {},
userIds: [{'userIds[]': '<string>'}],
leadsPerList: 123,
activeUntil: {},
leadProviderCriteria: [
{
'leadProviderCriteria[].provider': '<string>',
'leadProviderCriteria[].type': '<string>',
'leadProviderCriteria[].filters': {}
}
],
customFilterCriteria: [{'customFilterCriteria[].type': '<string>'}],
crmFilters: {
'crmFilters.provider': '<string>',
'crmFilters.textSearch': {},
'crmFilters.query': {},
'crmFilters.filters': [
{
'crmFilters.filters[].path': '<string>',
'crmFilters.filters[].mode': '<string>',
'crmFilters.filters[].value': {},
'crmFilters.filters[].exclude': true
}
]
}
})
};
fetch('https://api.example.com/api/v1/entities/icps/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/entities/icps/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => [
],
'userIds' => [
[
'userIds[]' => '<string>'
]
],
'leadsPerList' => 123,
'activeUntil' => [
],
'leadProviderCriteria' => [
[
'leadProviderCriteria[].provider' => '<string>',
'leadProviderCriteria[].type' => '<string>',
'leadProviderCriteria[].filters' => [
]
]
],
'customFilterCriteria' => [
[
'customFilterCriteria[].type' => '<string>'
]
],
'crmFilters' => [
'crmFilters.provider' => '<string>',
'crmFilters.textSearch' => [
],
'crmFilters.query' => [
],
'crmFilters.filters' => [
[
'crmFilters.filters[].path' => '<string>',
'crmFilters.filters[].mode' => '<string>',
'crmFilters.filters[].value' => [
],
'crmFilters.filters[].exclude' => true
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/entities/icps/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": {},\n \"userIds\": [\n {\n \"userIds[]\": \"<string>\"\n }\n ],\n \"leadsPerList\": 123,\n \"activeUntil\": {},\n \"leadProviderCriteria\": [\n {\n \"leadProviderCriteria[].provider\": \"<string>\",\n \"leadProviderCriteria[].type\": \"<string>\",\n \"leadProviderCriteria[].filters\": {}\n }\n ],\n \"customFilterCriteria\": [\n {\n \"customFilterCriteria[].type\": \"<string>\"\n }\n ],\n \"crmFilters\": {\n \"crmFilters.provider\": \"<string>\",\n \"crmFilters.textSearch\": {},\n \"crmFilters.query\": {},\n \"crmFilters.filters\": [\n {\n \"crmFilters.filters[].path\": \"<string>\",\n \"crmFilters.filters[].mode\": \"<string>\",\n \"crmFilters.filters[].value\": {},\n \"crmFilters.filters[].exclude\": true\n }\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/entities/icps/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": {},\n \"userIds\": [\n {\n \"userIds[]\": \"<string>\"\n }\n ],\n \"leadsPerList\": 123,\n \"activeUntil\": {},\n \"leadProviderCriteria\": [\n {\n \"leadProviderCriteria[].provider\": \"<string>\",\n \"leadProviderCriteria[].type\": \"<string>\",\n \"leadProviderCriteria[].filters\": {}\n }\n ],\n \"customFilterCriteria\": [\n {\n \"customFilterCriteria[].type\": \"<string>\"\n }\n ],\n \"crmFilters\": {\n \"crmFilters.provider\": \"<string>\",\n \"crmFilters.textSearch\": {},\n \"crmFilters.query\": {},\n \"crmFilters.filters\": [\n {\n \"crmFilters.filters[].path\": \"<string>\",\n \"crmFilters.filters[].mode\": \"<string>\",\n \"crmFilters.filters[].value\": {},\n \"crmFilters.filters[].exclude\": true\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/entities/icps/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": {},\n \"userIds\": [\n {\n \"userIds[]\": \"<string>\"\n }\n ],\n \"leadsPerList\": 123,\n \"activeUntil\": {},\n \"leadProviderCriteria\": [\n {\n \"leadProviderCriteria[].provider\": \"<string>\",\n \"leadProviderCriteria[].type\": \"<string>\",\n \"leadProviderCriteria[].filters\": {}\n }\n ],\n \"customFilterCriteria\": [\n {\n \"customFilterCriteria[].type\": \"<string>\"\n }\n ],\n \"crmFilters\": {\n \"crmFilters.provider\": \"<string>\",\n \"crmFilters.textSearch\": {},\n \"crmFilters.query\": {},\n \"crmFilters.filters\": [\n {\n \"crmFilters.filters[].path\": \"<string>\",\n \"crmFilters.filters[].mode\": \"<string>\",\n \"crmFilters.filters[].value\": {},\n \"crmFilters.filters[].exclude\": true\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"name": "Updated ICP Name",
"leadsPerList": 50,
"customFilterCriteria": [
{
"type": "maxPeoplePerCompany",
"value": 5
}
]
}
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Updated ICP Name",
"description": "C-level and VP-level technology leaders at enterprise companies",
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-25T09:15:00.000Z",
"userIds": ["user_abc123", "user_def456"],
"leadsPerList": 50,
"activeUntil": "2024-12-31T23:59:59.000Z",
"leadProviderCriteria": [
{
"provider": "baseProvider",
"type": "person",
"filters": {
"job_titles": ["CTO", "VP Engineering"],
"company_size": ["501-1000", "1001-5000"]
}
}
],
"customFilterCriteria": [
{
"type": "maxPeoplePerCompany",
"value": 5
}
],
"crmFilters": null
}
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request body",
"details": [
{
"path": ["leadsPerList"],
"message": "Expected number, received string"
}
]
}
}
{
"error": {
"code": "FORBIDDEN",
"message": "You do not have access to this ICP"
}
}
{
"error": {
"code": "NOT_FOUND",
"message": "ICP not found: 550e8400-e29b-41d4-a716-446655440000"
}
}
ICPs
Update ICP
Updates an existing ICP (Ideal Customer Profile) with partial data
PATCH
/
api
/
v1
/
entities
/
icps
/
{id}
Update ICP
curl --request PATCH \
--url https://api.example.com/api/v1/entities/icps/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": {},
"userIds": [
{
"userIds[]": "<string>"
}
],
"leadsPerList": 123,
"activeUntil": {},
"leadProviderCriteria": [
{
"leadProviderCriteria[].provider": "<string>",
"leadProviderCriteria[].type": "<string>",
"leadProviderCriteria[].filters": {}
}
],
"customFilterCriteria": [
{
"customFilterCriteria[].type": "<string>"
}
],
"crmFilters": {
"crmFilters.provider": "<string>",
"crmFilters.textSearch": {},
"crmFilters.query": {},
"crmFilters.filters": [
{
"crmFilters.filters[].path": "<string>",
"crmFilters.filters[].mode": "<string>",
"crmFilters.filters[].value": {},
"crmFilters.filters[].exclude": true
}
]
}
}
'import requests
url = "https://api.example.com/api/v1/entities/icps/{id}"
payload = {
"name": "<string>",
"description": {},
"userIds": [{ "userIds[]": "<string>" }],
"leadsPerList": 123,
"activeUntil": {},
"leadProviderCriteria": [
{
"leadProviderCriteria[].provider": "<string>",
"leadProviderCriteria[].type": "<string>",
"leadProviderCriteria[].filters": {}
}
],
"customFilterCriteria": [{ "customFilterCriteria[].type": "<string>" }],
"crmFilters": {
"crmFilters.provider": "<string>",
"crmFilters.textSearch": {},
"crmFilters.query": {},
"crmFilters.filters": [
{
"crmFilters.filters[].path": "<string>",
"crmFilters.filters[].mode": "<string>",
"crmFilters.filters[].value": {},
"crmFilters.filters[].exclude": True
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: {},
userIds: [{'userIds[]': '<string>'}],
leadsPerList: 123,
activeUntil: {},
leadProviderCriteria: [
{
'leadProviderCriteria[].provider': '<string>',
'leadProviderCriteria[].type': '<string>',
'leadProviderCriteria[].filters': {}
}
],
customFilterCriteria: [{'customFilterCriteria[].type': '<string>'}],
crmFilters: {
'crmFilters.provider': '<string>',
'crmFilters.textSearch': {},
'crmFilters.query': {},
'crmFilters.filters': [
{
'crmFilters.filters[].path': '<string>',
'crmFilters.filters[].mode': '<string>',
'crmFilters.filters[].value': {},
'crmFilters.filters[].exclude': true
}
]
}
})
};
fetch('https://api.example.com/api/v1/entities/icps/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/entities/icps/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => [
],
'userIds' => [
[
'userIds[]' => '<string>'
]
],
'leadsPerList' => 123,
'activeUntil' => [
],
'leadProviderCriteria' => [
[
'leadProviderCriteria[].provider' => '<string>',
'leadProviderCriteria[].type' => '<string>',
'leadProviderCriteria[].filters' => [
]
]
],
'customFilterCriteria' => [
[
'customFilterCriteria[].type' => '<string>'
]
],
'crmFilters' => [
'crmFilters.provider' => '<string>',
'crmFilters.textSearch' => [
],
'crmFilters.query' => [
],
'crmFilters.filters' => [
[
'crmFilters.filters[].path' => '<string>',
'crmFilters.filters[].mode' => '<string>',
'crmFilters.filters[].value' => [
],
'crmFilters.filters[].exclude' => true
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/entities/icps/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": {},\n \"userIds\": [\n {\n \"userIds[]\": \"<string>\"\n }\n ],\n \"leadsPerList\": 123,\n \"activeUntil\": {},\n \"leadProviderCriteria\": [\n {\n \"leadProviderCriteria[].provider\": \"<string>\",\n \"leadProviderCriteria[].type\": \"<string>\",\n \"leadProviderCriteria[].filters\": {}\n }\n ],\n \"customFilterCriteria\": [\n {\n \"customFilterCriteria[].type\": \"<string>\"\n }\n ],\n \"crmFilters\": {\n \"crmFilters.provider\": \"<string>\",\n \"crmFilters.textSearch\": {},\n \"crmFilters.query\": {},\n \"crmFilters.filters\": [\n {\n \"crmFilters.filters[].path\": \"<string>\",\n \"crmFilters.filters[].mode\": \"<string>\",\n \"crmFilters.filters[].value\": {},\n \"crmFilters.filters[].exclude\": true\n }\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/entities/icps/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": {},\n \"userIds\": [\n {\n \"userIds[]\": \"<string>\"\n }\n ],\n \"leadsPerList\": 123,\n \"activeUntil\": {},\n \"leadProviderCriteria\": [\n {\n \"leadProviderCriteria[].provider\": \"<string>\",\n \"leadProviderCriteria[].type\": \"<string>\",\n \"leadProviderCriteria[].filters\": {}\n }\n ],\n \"customFilterCriteria\": [\n {\n \"customFilterCriteria[].type\": \"<string>\"\n }\n ],\n \"crmFilters\": {\n \"crmFilters.provider\": \"<string>\",\n \"crmFilters.textSearch\": {},\n \"crmFilters.query\": {},\n \"crmFilters.filters\": [\n {\n \"crmFilters.filters[].path\": \"<string>\",\n \"crmFilters.filters[].mode\": \"<string>\",\n \"crmFilters.filters[].value\": {},\n \"crmFilters.filters[].exclude\": true\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/entities/icps/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": {},\n \"userIds\": [\n {\n \"userIds[]\": \"<string>\"\n }\n ],\n \"leadsPerList\": 123,\n \"activeUntil\": {},\n \"leadProviderCriteria\": [\n {\n \"leadProviderCriteria[].provider\": \"<string>\",\n \"leadProviderCriteria[].type\": \"<string>\",\n \"leadProviderCriteria[].filters\": {}\n }\n ],\n \"customFilterCriteria\": [\n {\n \"customFilterCriteria[].type\": \"<string>\"\n }\n ],\n \"crmFilters\": {\n \"crmFilters.provider\": \"<string>\",\n \"crmFilters.textSearch\": {},\n \"crmFilters.query\": {},\n \"crmFilters.filters\": [\n {\n \"crmFilters.filters[].path\": \"<string>\",\n \"crmFilters.filters[].mode\": \"<string>\",\n \"crmFilters.filters[].value\": {},\n \"crmFilters.filters[].exclude\": true\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"name": "Updated ICP Name",
"leadsPerList": 50,
"customFilterCriteria": [
{
"type": "maxPeoplePerCompany",
"value": 5
}
]
}
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Updated ICP Name",
"description": "C-level and VP-level technology leaders at enterprise companies",
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-25T09:15:00.000Z",
"userIds": ["user_abc123", "user_def456"],
"leadsPerList": 50,
"activeUntil": "2024-12-31T23:59:59.000Z",
"leadProviderCriteria": [
{
"provider": "baseProvider",
"type": "person",
"filters": {
"job_titles": ["CTO", "VP Engineering"],
"company_size": ["501-1000", "1001-5000"]
}
}
],
"customFilterCriteria": [
{
"type": "maxPeoplePerCompany",
"value": 5
}
],
"crmFilters": null
}
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request body",
"details": [
{
"path": ["leadsPerList"],
"message": "Expected number, received string"
}
]
}
}
{
"error": {
"code": "FORBIDDEN",
"message": "You do not have access to this ICP"
}
}
{
"error": {
"code": "NOT_FOUND",
"message": "ICP not found: 550e8400-e29b-41d4-a716-446655440000"
}
}
Updates an existing ICP (Ideal Customer Profile) with the provided fields. This endpoint supports partial updates - only include the fields you want to change. Fields not included in the request body will remain unchanged.
Authentication
This endpoint requires authentication. The user must be signed in.Users can only update ICPs where they are listed in the
userIds array, or if
they are an admin user. Attempting to update an ICP without proper
authorization will result in a 403 Forbidden error.Request
string
required
The unique identifier (UUID) of the ICP to update.
Request Body
All fields are optional. Only include the fields you want to update.string
The display name of the ICP.
string | null
A description of the ICP’s target profile. Set to
null to clear.array
Array of Clerk user IDs that should have access to this ICP.
Show Array items
Show Array items
string
A Clerk user ID.
number
The default number of leads to include when generating lead lists from this
ICP.
string | null
ISO 8601 timestamp indicating when the ICP expires. Set to
null for
indefinite.array
array
Array of custom filtering rules applied to leads after retrieval.
Additional fields depend on the filter type:For
Show Custom filter types
Show Custom filter types
string
required
The filter type. One of:
"website", "webscraping", "ai", "maxPeoplePerCompany", "maxPercentFromCRM", "minDaysUntilReuse", "matchFieldWithRegex".maxPeoplePerCompany, maxPercentFromCRM, minDaysUntilReuse:value(number): The numeric threshold value.
website:provider(string): The provider (default:"browserUse").prompt(string): The evaluation prompt.
webscraping:provider(string): The provider (default:"firecrawl").extractionPrompt(string | null): Extraction prompt.pageFindingPrompt(string | null): Page finding prompt.includeSearchStrings(array | null): Strings to include.excludeSearchStrings(array | null): Strings to exclude.
ai:entityType(string):"person"or"company".prompt(string): The AI evaluation prompt.
matchFieldWithRegex:field(string): Field path (e.g.,"firstName","company.headcount").regex(string): Regex pattern.
object | null | undefined
CRM filter configuration. Set to
null to remove. This field is both optional and nullable.Show CRM filters properties
Show CRM filters properties
string
required
The CRM provider (currently only
"bullhorn").string | null | undefined
Free-text search for occupation/title field (e.g.,
"Head OR Leit* OR Direktor"). This field is both optional and nullable.string | null | undefined
Legacy query field. Optional and nullable. Retained for backward compatibility.
array
Array of structured filter conditions.
Show Filter condition properties
Show Filter condition properties
string
required
Field path using dot notation (e.g.,
"address.zip", "status").string
required
Match mode:
"equals", "in", or "startsWith".string | array
required
Value(s) to match. String for
equals/startsWith, array for in mode.boolean
If
true, exclude contacts matching this condition. Defaults to false.Response
Returns the complete updated ICP object.string
required
Unique identifier (UUID) for the ICP.
string
required
The display name of the ICP.
string | null
required
A description of the ICP’s target profile.
string
required
ISO 8601 timestamp of when the ICP was created.
string
required
ISO 8601 timestamp of when the ICP was last updated (will reflect the update
time).
array
required
Array of Clerk user IDs that have access to this ICP.
number
required
The default number of leads per list.
string | null
required
ISO 8601 timestamp indicating when the ICP expires.
array
required
Array of search criteria configurations for lead providers.
array
required
Array of custom filtering rules.
object | null | undefined
CRM filter configuration. This field is both optional and nullable.
Response Examples
{
"name": "Updated ICP Name",
"leadsPerList": 50,
"customFilterCriteria": [
{
"type": "maxPeoplePerCompany",
"value": 5
}
]
}
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Updated ICP Name",
"description": "C-level and VP-level technology leaders at enterprise companies",
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-25T09:15:00.000Z",
"userIds": ["user_abc123", "user_def456"],
"leadsPerList": 50,
"activeUntil": "2024-12-31T23:59:59.000Z",
"leadProviderCriteria": [
{
"provider": "baseProvider",
"type": "person",
"filters": {
"job_titles": ["CTO", "VP Engineering"],
"company_size": ["501-1000", "1001-5000"]
}
}
],
"customFilterCriteria": [
{
"type": "maxPeoplePerCompany",
"value": 5
}
],
"crmFilters": null
}
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request body",
"details": [
{
"path": ["leadsPerList"],
"message": "Expected number, received string"
}
]
}
}
{
"error": {
"code": "FORBIDDEN",
"message": "You do not have access to this ICP"
}
}
{
"error": {
"code": "NOT_FOUND",
"message": "ICP not found: 550e8400-e29b-41d4-a716-446655440000"
}
}
Error Codes
| Status Code | Error Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Invalid request body. Check the details field for specific validation errors. |
| 401 | UNAUTHORIZED | User is not authenticated. Ensure a valid session exists. |
| 403 | FORBIDDEN | User does not have access to this ICP. |
| 404 | NOT_FOUND | No ICP exists with the specified ID. |
| 500 | INTERNAL_ERROR | An unexpected server error occurred. |