Resync a Lead Ads Page
Pulls the Page’s last 90 days of leads again (already-stored leads are not duplicated: the pull is idempotent by Meta’s leadgenId) and, when the link is not subscribed (subscribedAt: null), retries the subscription. Takes no body. Answers 202: the pull runs in the background and can take minutes.
One resync per link every 10 minutes: inside that window the answer is 429 RESYNC_COOLDOWN with retryAfterSeconds. If the cooldown cannot be checked, the answer is 503 RESYNC_UNAVAILABLE rather than an unbounded resync. Ownership is checked again: a Page that is no longer eligible is flagged on the link (subscriptionError) and answers 409 PAGE_NOT_ELIGIBLE with reason.
subscribedAt and subscriptionError are present in the response only when this call retried the subscription. OAuth/MCP tokens need integrations:manage (workspace ADMIN or OWNER) on every verb, reads included. Scope: a number-scoped key, or an account-wide credential with x-whatsapp-number-id, acts only on that number’s links; an account-wide credential without the header sees the whole workspace.
curl --request POST \
--url https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync', 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://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"started": true,
"pageLinkId": "cmgpl0001ab12cd34ef56",
"subscribedAt": "2026-10-21T10:02:44.000Z",
"subscriptionError": null
}{
"error": "Provide x-whatsapp-number-id for a per-number connection | Envie o header x-whatsapp-number-id para uma conexão por número",
"code": "NUMBER_REQUIRED"
}{
"error": "Unauthorized"
}{
"error": "This credential is not granted access to that WhatsApp number | Esta credencial não tem acesso a esse número de WhatsApp",
"code": "NUMBER_NOT_IN_GRANT"
}{
"error": "Page link not found | Vínculo de página não encontrado",
"code": "NOT_FOUND"
}{
"error": "This Page is not available to be linked to this workspace. | Esta página não está disponível para vínculo neste workspace.",
"code": "PAGE_NOT_ELIGIBLE",
"reason": "PAGE_NOT_SHARED"
}{
"error": "A sync ran a moment ago. Wait before trying again. | Sincronização feita há pouco. Aguarde para tentar de novo.",
"code": "RESYNC_COOLDOWN",
"retryAfterSeconds": 412
}{
"error": "Internal server error | Erro interno do servidor",
"code": "INTERNAL_ERROR"
}{
"error": "Could not reach Meta right now. Try again. | Não foi possível consultar a Meta agora. Tente novamente.",
"code": "LEADS_LOOKUP_UNAVAILABLE"
}{
"error": "Could not sync right now. Try again in a moment. | Não foi possível sincronizar agora. Tente novamente em instantes.",
"code": "RESYNC_UNAVAILABLE"
}Authorizations
Your ps_ API key
Headers
Narrows an account-wide credential to one number (its id or instance id from GET /v1/numbers). Without it, an account-wide credential sees the whole workspace; a number-scoped key always sees only its own number.
Path Parameters
The link id (linked[].pageLinkId from GET /v1/lead-pages), not the Facebook Page id.
Response
Resync started
Was this page helpful?
curl --request POST \
--url https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync', 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://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/resync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"started": true,
"pageLinkId": "cmgpl0001ab12cd34ef56",
"subscribedAt": "2026-10-21T10:02:44.000Z",
"subscriptionError": null
}{
"error": "Provide x-whatsapp-number-id for a per-number connection | Envie o header x-whatsapp-number-id para uma conexão por número",
"code": "NUMBER_REQUIRED"
}{
"error": "Unauthorized"
}{
"error": "This credential is not granted access to that WhatsApp number | Esta credencial não tem acesso a esse número de WhatsApp",
"code": "NUMBER_NOT_IN_GRANT"
}{
"error": "Page link not found | Vínculo de página não encontrado",
"code": "NOT_FOUND"
}{
"error": "This Page is not available to be linked to this workspace. | Esta página não está disponível para vínculo neste workspace.",
"code": "PAGE_NOT_ELIGIBLE",
"reason": "PAGE_NOT_SHARED"
}{
"error": "A sync ran a moment ago. Wait before trying again. | Sincronização feita há pouco. Aguarde para tentar de novo.",
"code": "RESYNC_COOLDOWN",
"retryAfterSeconds": 412
}{
"error": "Internal server error | Erro interno do servidor",
"code": "INTERNAL_ERROR"
}{
"error": "Could not reach Meta right now. Try again. | Não foi possível consultar a Meta agora. Tente novamente.",
"code": "LEADS_LOOKUP_UNAVAILABLE"
}{
"error": "Could not sync right now. Try again in a moment. | Não foi possível sincronizar agora. Tente novamente em instantes.",
"code": "RESYNC_UNAVAILABLE"
}