List Instant Forms
The linked Page’s Instant Forms, read live from Meta, each with its questions, its consent checkboxes and its stored Pilot Status configuration (config, or null when never configured). Also returns numberIsOfficial and, for an official (Meta Cloud API) number, the APPROVED templates the link’s number can auto-send (templates, empty on an unofficial number).
consentAvailable: false means the form’s checkboxes could not be read — the list is unknown, not empty. formsTruncated: true means the Page has more forms than Pilot Status read. 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 GET \
--url https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms', 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}/forms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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}/forms"
req, _ := http.NewRequest("GET", 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.get("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"forms": [
{
"formId": "987654321098765",
"formName": "Orçamento — Outubro",
"status": "ACTIVE",
"questions": [
{
"key": "full_name",
"label": "full_name",
"type": "FULL_NAME",
"options": []
},
{
"key": "qual_ambiente",
"label": "Qual ambiente você quer reformar?",
"type": "CUSTOM",
"options": [
{
"key": "cozinha",
"value": "Cozinha"
}
]
}
],
"consentCheckboxes": [
{
"key": "whatsapp_optin",
"text": "Aceito receber mensagens no WhatsApp"
}
],
"consentAvailable": true,
"config": {
"formId": "987654321098765",
"formName": "Orçamento — Outubro",
"consentDisclaimerKey": "whatsapp_optin",
"autoSendEnabled": true,
"templateId": null,
"freeText": "Olá {{nome}}, recebemos seu pedido de orçamento!",
"variableMap": {
"nome": {
"source": "field",
"key": "full_name"
}
},
"updatedAt": "2026-10-21T09:30:00.000Z"
}
}
],
"formsTruncated": false,
"numberIsOfficial": false,
"templates": []
}{
"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": "Pilot Status does not have the required permissions on this Page yet. | A Pilot Status ainda não tem as permissões necessárias nesta página.",
"code": "PAGE_MISSING_PERMISSION",
"missingTasks": [
"PAGE_ACCESS"
]
}{
"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": "Meta lead capture is not configured on this installation. | Captura de leads da Meta não configurada nesta instalação.",
"code": "LEADS_NOT_CONFIGURED"
}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
Forms of the Page
Was this page helpful?
curl --request GET \
--url https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms', 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}/forms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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}/forms"
req, _ := http.NewRequest("GET", 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.get("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/lead-pages/{pageLinkId}/forms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"forms": [
{
"formId": "987654321098765",
"formName": "Orçamento — Outubro",
"status": "ACTIVE",
"questions": [
{
"key": "full_name",
"label": "full_name",
"type": "FULL_NAME",
"options": []
},
{
"key": "qual_ambiente",
"label": "Qual ambiente você quer reformar?",
"type": "CUSTOM",
"options": [
{
"key": "cozinha",
"value": "Cozinha"
}
]
}
],
"consentCheckboxes": [
{
"key": "whatsapp_optin",
"text": "Aceito receber mensagens no WhatsApp"
}
],
"consentAvailable": true,
"config": {
"formId": "987654321098765",
"formName": "Orçamento — Outubro",
"consentDisclaimerKey": "whatsapp_optin",
"autoSendEnabled": true,
"templateId": null,
"freeText": "Olá {{nome}}, recebemos seu pedido de orçamento!",
"variableMap": {
"nome": {
"source": "field",
"key": "full_name"
}
},
"updatedAt": "2026-10-21T09:30:00.000Z"
}
}
],
"formsTruncated": false,
"numberIsOfficial": false,
"templates": []
}{
"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": "Pilot Status does not have the required permissions on this Page yet. | A Pilot Status ainda não tem as permissões necessárias nesta página.",
"code": "PAGE_MISSING_PERMISSION",
"missingTasks": [
"PAGE_ACCESS"
]
}{
"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": "Meta lead capture is not configured on this installation. | Captura de leads da Meta não configurada nesta instalação.",
"code": "LEADS_NOT_CONFIGURED"
}