curl --request POST \
--url https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "<string>",
"captureKey": "<string>",
"cellphone": "<string>",
"landingUri": "<string>",
"consent": {
"capturedAt": "2023-11-07T05:31:56Z"
},
"recaptchaToken": "<string>",
"name": "<string>",
"brandId": "<string>",
"utm": {}
}
'import requests
url = "https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads"
payload = {
"workspaceId": "<string>",
"captureKey": "<string>",
"cellphone": "<string>",
"landingUri": "<string>",
"consent": { "capturedAt": "2023-11-07T05:31:56Z" },
"recaptchaToken": "<string>",
"name": "<string>",
"brandId": "<string>",
"utm": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: '<string>',
captureKey: '<string>',
cellphone: '<string>',
landingUri: '<string>',
consent: {capturedAt: '2023-11-07T05:31:56Z'},
recaptchaToken: '<string>',
name: '<string>',
brandId: '<string>',
utm: {}
})
};
fetch('https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads', 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://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads",
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([
'workspaceId' => '<string>',
'captureKey' => '<string>',
'cellphone' => '<string>',
'landingUri' => '<string>',
'consent' => [
'capturedAt' => '2023-11-07T05:31:56Z'
],
'recaptchaToken' => '<string>',
'name' => '<string>',
'brandId' => '<string>',
'utm' => [
]
]),
CURLOPT_HTTPHEADER => [
"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://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads"
payload := strings.NewReader("{\n \"workspaceId\": \"<string>\",\n \"captureKey\": \"<string>\",\n \"cellphone\": \"<string>\",\n \"landingUri\": \"<string>\",\n \"consent\": {\n \"capturedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"recaptchaToken\": \"<string>\",\n \"name\": \"<string>\",\n \"brandId\": \"<string>\",\n \"utm\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"<string>\",\n \"captureKey\": \"<string>\",\n \"cellphone\": \"<string>\",\n \"landingUri\": \"<string>\",\n \"consent\": {\n \"capturedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"recaptchaToken\": \"<string>\",\n \"name\": \"<string>\",\n \"brandId\": \"<string>\",\n \"utm\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"<string>\",\n \"captureKey\": \"<string>\",\n \"cellphone\": \"<string>\",\n \"landingUri\": \"<string>\",\n \"consent\": {\n \"capturedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"recaptchaToken\": \"<string>\",\n \"name\": \"<string>\",\n \"brandId\": \"<string>\",\n \"utm\": {}\n}"
response = http.request(request)
puts response.read_body{
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}Register a campaign lead
Registers a lead captured by a tenant’s landing page and queues the first outbound WhatsApp message. A 202 means the lead was accepted, not that a message was sent.
curl --request POST \
--url https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "<string>",
"captureKey": "<string>",
"cellphone": "<string>",
"landingUri": "<string>",
"consent": {
"capturedAt": "2023-11-07T05:31:56Z"
},
"recaptchaToken": "<string>",
"name": "<string>",
"brandId": "<string>",
"utm": {}
}
'import requests
url = "https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads"
payload = {
"workspaceId": "<string>",
"captureKey": "<string>",
"cellphone": "<string>",
"landingUri": "<string>",
"consent": { "capturedAt": "2023-11-07T05:31:56Z" },
"recaptchaToken": "<string>",
"name": "<string>",
"brandId": "<string>",
"utm": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: '<string>',
captureKey: '<string>',
cellphone: '<string>',
landingUri: '<string>',
consent: {capturedAt: '2023-11-07T05:31:56Z'},
recaptchaToken: '<string>',
name: '<string>',
brandId: '<string>',
utm: {}
})
};
fetch('https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads', 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://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads",
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([
'workspaceId' => '<string>',
'captureKey' => '<string>',
'cellphone' => '<string>',
'landingUri' => '<string>',
'consent' => [
'capturedAt' => '2023-11-07T05:31:56Z'
],
'recaptchaToken' => '<string>',
'name' => '<string>',
'brandId' => '<string>',
'utm' => [
]
]),
CURLOPT_HTTPHEADER => [
"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://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads"
payload := strings.NewReader("{\n \"workspaceId\": \"<string>\",\n \"captureKey\": \"<string>\",\n \"cellphone\": \"<string>\",\n \"landingUri\": \"<string>\",\n \"consent\": {\n \"capturedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"recaptchaToken\": \"<string>\",\n \"name\": \"<string>\",\n \"brandId\": \"<string>\",\n \"utm\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"<string>\",\n \"captureKey\": \"<string>\",\n \"cellphone\": \"<string>\",\n \"landingUri\": \"<string>\",\n \"consent\": {\n \"capturedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"recaptchaToken\": \"<string>\",\n \"name\": \"<string>\",\n \"brandId\": \"<string>\",\n \"utm\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://integrations-us.app.bridge.new/api/v1/leadscout/campaign-leads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"<string>\",\n \"captureKey\": \"<string>\",\n \"cellphone\": \"<string>\",\n \"landingUri\": \"<string>\",\n \"consent\": {\n \"capturedAt\": \"2023-11-07T05:31:56Z\"\n },\n \"recaptchaToken\": \"<string>\",\n \"name\": \"<string>\",\n \"brandId\": \"<string>\",\n \"utm\": {}\n}"
response = http.request(request)
puts response.read_body{
"requestId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>"
}Query Parameters
Required when calling from a browser. A CORS preflight carries no body, so the tenant cannot be resolved — and Access-Control-Allow-Origin cannot be echoed — unless the workspace is on the URL. Server-to-server callers do not preflight and may omit it.
Body
Wire contract for POST api/v1/leadscout/campaign-leads.
The tenant's attestation that the visitor gave permission to be messaged.
This is NOT CommercialConsentState, which is our own record of a contact's opt-in
lifecycle. This is a claim arriving from outside, and it is not verifiable by us: it
proves what we were told and when, which is what we would present if a tenant's
portfolio were ever restricted.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Accepted and queued. NOT sent — a separate service transmits the first message later.
Body of the 202 Accepted response.
Named rather than a bare dict[str, str] so the published schema states what the
single field is and what it is for, instead of "an object with string properties".
Correlation id for this submission. Present on acceptance only; error responses do not carry one.
Was this page helpful?

