curl --request PATCH \
--url https://api.lemlist.com/api/watchlist \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"watchListId": "wl_Example000000001"
}
'import requests
url = "https://api.lemlist.com/api/watchlist"
payload = { "watchListId": "wl_Example000000001" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({watchListId: 'wl_Example000000001'})
};
fetch('https://api.lemlist.com/api/watchlist', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/watchlist")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"watchListId\": \"wl_Example000000001\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/watchlist",
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([
'watchListId' => 'wl_Example000000001'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"_id": "<string>",
"name": "<string>",
"type": "companyIsHiring",
"status": "active",
"entity": "contact",
"segmentType": "all",
"signalProcessingType": "manual",
"signalOpportunityTemplate": {
"ownerType": "contact_owner",
"ownerId": "<string>",
"type": "email",
"priority": 0,
"data": {
"title": "<string>",
"subject": "<string>",
"emailTemplateId": "<string>",
"message": "<string>"
}
},
"filters": [
{
"filterId": "title",
"in": [
"<string>"
],
"out": [
"<string>"
]
}
],
"emoji": "<string>"
}
}name must be a non-empty stringUnauthorizedInsufficient creditsWatch list not foundWatch list type cannot be changed after creationMonitoring limit exceededInternal server errorUpdate Signal Agent
Updates an existing Signal Agent (watch list).
curl --request PATCH \
--url https://api.lemlist.com/api/watchlist \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"watchListId": "wl_Example000000001"
}
'import requests
url = "https://api.lemlist.com/api/watchlist"
payload = { "watchListId": "wl_Example000000001" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({watchListId: 'wl_Example000000001'})
};
fetch('https://api.lemlist.com/api/watchlist', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.lemlist.com/api/watchlist")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"watchListId\": \"wl_Example000000001\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/watchlist",
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([
'watchListId' => 'wl_Example000000001'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"_id": "<string>",
"name": "<string>",
"type": "companyIsHiring",
"status": "active",
"entity": "contact",
"segmentType": "all",
"signalProcessingType": "manual",
"signalOpportunityTemplate": {
"ownerType": "contact_owner",
"ownerId": "<string>",
"type": "email",
"priority": 0,
"data": {
"title": "<string>",
"subject": "<string>",
"emailTemplateId": "<string>",
"message": "<string>"
}
},
"filters": [
{
"filterId": "title",
"in": [
"<string>"
],
"out": [
"<string>"
]
}
],
"emoji": "<string>"
}
}name must be a non-empty stringUnauthorizedInsufficient creditsWatch list not foundWatch list type cannot be changed after creationMonitoring limit exceededInternal server errortype is immutable — it cannot be changed after creation. When you send filters, they replace the existing ones and are validated against the agent’s signal type.Use activate to change the run status: activate: false pauses the agent immediately, activate: true reactivates a paused one (which re-runs billing and external watcher setup). A draft cannot be toggled this way — activate a draft through Create Signal Agent instead. Omit activate to leave the status unchanged.Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
Signal Agent id to update
New display name
Replacement filters (validated against the agent's signal type)
Show child attributes
Show child attributes
New emoji
New signal processing type
manual, create_opportunity, push_to_campaign Persona (pdp_xxx) used to source contacts from the People Database. Only for a company Signal Agent with signalProcessingType = push_to_campaign whose signal type does not already ship its own contact. Optional; rejected on any other configuration.
Toggle the agent status. false deactivates (pauses) it immediately. true reactivates a paused agent (triggers billing and external watcher setup). A draft cannot be toggled this way. Omit to leave the status unchanged.
Response
Success
A Signal Agent (watch list) configuration.
Show child attributes
Show child attributes
Was this page helpful?