curl --request POST \
--url https://api.lemlist.com/api/watchlist/{watchListId}/external-signals \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.lemlist.com/api/watchlist/{watchListId}/external-signals"
payload = {}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.lemlist.com/api/watchlist/{watchListId}/external-signals', 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/{watchListId}/external-signals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/watchlist/{watchListId}/external-signals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
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;
}Push external signals
Pushes a contact- or company-level external signal into a Signal Agent.
curl --request POST \
--url https://api.lemlist.com/api/watchlist/{watchListId}/external-signals \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.lemlist.com/api/watchlist/{watchListId}/external-signals"
payload = {}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.lemlist.com/api/watchlist/{watchListId}/external-signals', 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/{watchListId}/external-signals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lemlist.com/api/watchlist/{watchListId}/external-signals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
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;
}contact for an externalSignalContact agent, or company for an externalSignalCompany agent — the agent’s type decides which block is required. Create the external-signal agent from the lemlist app first (Signal Agents → external signal); these agent types are set up in the app, not through the Create Signal Agent endpoint. External signals are free (creditsConsumed is always 0) and capped by the agent’s daily limit (default 50/day); over the cap, or when no matching entity is found, the signal is returned with status: "ignored".Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Path Parameters
Id of the Signal Agent to push the signal to. Must be an externalSignalContact or externalSignalCompany agent.
Body
The contact the signal is about. Required for externalSignalContact agents; ignored otherwise.
Show child attributes
Show child attributes
The company the signal is about. Required for externalSignalCompany agents; ignored otherwise.
Show child attributes
Show child attributes
Optional key/value metadata stored on the signal. Max 20 keys; all values must be strings.
Show child attributes
Show child attributes
{ "plan": "enterprise", "source": "webinar" }
Response
Signal processed or ignored. status is processed when a signal was created, or ignored when no matching entity was found or the agent's daily limit was reached. External signals are free, so creditsConsumed is always 0.
processed when a signal was created, ignored otherwise
processed, ignored Id of the created signal. Present when status is processed.
"wls_ExAmPlE1234567890a"
Why the signal was ignored. Present when status is ignored.
no_entity_match, daily_limit_reached Always 0 - external signals are free.
0
The matched entity. Present when status is processed.
Show child attributes
Show child attributes
Was this page helpful?