Update a Lead Capture pop-up
Change a pop-up: restyle it with a template, edit any part of its config (design, copy, fields, trigger, game, prizes and codes), replace its allowed sites, or set it ACTIVE or PAUSED. A live pop-up must stay ready, so a change that would break it is refused with the reasons. Visitors see a change within about five minutes.
curl --request PATCH \
--url https://www.useboom.ai/api/v1/lead-capture/forms/{formId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {},
"allowedOrigins": [
"<string>"
]
}
'import requests
url = "https://www.useboom.ai/api/v1/lead-capture/forms/{formId}"
payload = {
"config": {},
"allowedOrigins": ["<string>"]
}
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({config: {}, allowedOrigins: ['<string>']})
};
fetch('https://www.useboom.ai/api/v1/lead-capture/forms/{formId}', 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://www.useboom.ai/api/v1/lead-capture/forms/{formId}",
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([
'config' => [
],
'allowedOrigins' => [
'<string>'
]
]),
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://www.useboom.ai/api/v1/lead-capture/forms/{formId}"
payload := strings.NewReader("{\n \"config\": {},\n \"allowedOrigins\": [\n \"<string>\"\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://www.useboom.ai/api/v1/lead-capture/forms/{formId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {},\n \"allowedOrigins\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.useboom.ai/api/v1/lead-capture/forms/{formId}")
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 \"config\": {},\n \"allowedOrigins\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"status": "PAUSED",
"game": "<string>",
"allowedOrigins": [
"<string>"
],
"installKey": "<string>",
"updatedAt": "<string>",
"installTag": "<string>",
"buttonTag": "<string>",
"config": {},
"liveIssues": [
"<string>"
]
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Organization API key, sent as Authorization: Bearer boom_org_....
Path Parameters
Pop-up id.
1 - 64Body
Restyle with a template first: its look, image, words and game, keeping the prizes, trigger, logo and phone country. config then applies on top.
bold_coupon, warm_newsletter, midnight, editorial, wheel, cards, plinko, scratch Any part of the config from lead_capture_forms_get, merged into the current one: objects merge key by key, while a list (such as prizes) or a plain value replaces what was there. A field the config does not have is refused, so check the spelling. Example: { "copy": { "headline": { "en": "Spin to win", "es": "Gira y gana" } }, "prizes": [{ "id": "p10", "label": { "en": "10% off" }, "code": "SAVE10", "weight": 1 }] }.
Show child attributes
Show child attributes
Replaces the whole list of allowed sites.
20ACTIVE shows it to visitors on the allowed sites; it is refused, with the reasons, until the pop-up is ready (at least one site, a prize per game, consent text for a phone).
PAUSED, ACTIVE Response
Success
ACTIVE shows it to visitors on the allowed sites; it is refused, with the reasons, until the pop-up is ready (at least one site, a prize per game, consent text for a phone).
PAUSED, ACTIVE The game, or none for a plain form.
Public; identifies the pop-up in the install tag.
ISO timestamp.
The script tag to paste at the end of the page body.
A button that opens the pop-up when clicked, whatever its trigger; with the trigger set to click it is the only way it opens. The install tag must be on the page too.
The full design, copy, fields, trigger, game and prizes. Send any part of it back as config to lead_capture_forms_update. Text fields are { "en": "…", "es": "…", "pt": "…" }; en is required. If the stored settings could no longer be read, this shows the defaults and liveIssues says so; a patch then starts from the defaults.
Show child attributes
Show child attributes
Why it could not go live as it stands, one field: reason per line. Empty when it is ready.
Was this page helpful?
curl --request PATCH \
--url https://www.useboom.ai/api/v1/lead-capture/forms/{formId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {},
"allowedOrigins": [
"<string>"
]
}
'import requests
url = "https://www.useboom.ai/api/v1/lead-capture/forms/{formId}"
payload = {
"config": {},
"allowedOrigins": ["<string>"]
}
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({config: {}, allowedOrigins: ['<string>']})
};
fetch('https://www.useboom.ai/api/v1/lead-capture/forms/{formId}', 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://www.useboom.ai/api/v1/lead-capture/forms/{formId}",
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([
'config' => [
],
'allowedOrigins' => [
'<string>'
]
]),
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://www.useboom.ai/api/v1/lead-capture/forms/{formId}"
payload := strings.NewReader("{\n \"config\": {},\n \"allowedOrigins\": [\n \"<string>\"\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://www.useboom.ai/api/v1/lead-capture/forms/{formId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {},\n \"allowedOrigins\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.useboom.ai/api/v1/lead-capture/forms/{formId}")
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 \"config\": {},\n \"allowedOrigins\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"status": "PAUSED",
"game": "<string>",
"allowedOrigins": [
"<string>"
],
"installKey": "<string>",
"updatedAt": "<string>",
"installTag": "<string>",
"buttonTag": "<string>",
"config": {},
"liveIssues": [
"<string>"
]
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}