Skip to main content
PATCH
/
watchlist
Update Signal Agent
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>",
    "signalOpportunityTemplate": {
      "ownerId": "<string>",
      "data": {
        "title": "<string>",
        "subject": "<string>",
        "emailTemplateId": "<string>",
        "message": "<string>"
      }
    },
    "filters": [
      {
        "in": [
          "<string>"
        ],
        "out": [
          "<string>"
        ]
      }
    ],
    "emoji": "<string>"
  }
}
"name must be a non-empty string"
"Unauthorized"
"Watch list not found"
"Watch list type cannot be changed after creation"
"Internal server error"
The signal type 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.

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Body

application/json
watchListId
string
required

Signal Agent id to update

name
string

New display name

filters
object[]

Replacement filters (validated against the agent's signal type)

emoji
string

New emoji

signalProcessingType
enum<string>

New signal processing type

Available options:
manual,
create_opportunity,
push_to_campaign

Response

Success

data
object

A Signal Agent (watch list) configuration.