> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pilotstatus.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# 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.



## OpenAPI

````yaml openapi.json GET /v1/lead-pages/{pageLinkId}/forms
openapi: 3.1.0
info:
  title: Pilot Status API
  version: 1.0.0
  license:
    name: Pilot Status Terms of Service
    url: https://pilotstatus.com.br/terms
  description: >-
    Public REST API for Pilot Status. Authenticate with the `x-api-key: ps_...`
    header (or `x-api-key-id`). Base URL: https://pilotstatus.com.br
servers:
  - url: https://pilotstatus.com.br
security:
  - apiKey: []
  - apiKeyId: []
paths:
  /v1/lead-pages/{pageLinkId}/forms:
    get:
      tags:
        - Ads
      summary: List a Page's Instant Forms
      description: >-
        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.
      operationId: get_lead-page-forms
      parameters:
        - name: pageLinkId
          in: path
          required: true
          description: >-
            The link id (`linked[].pageLinkId` from `GET /v1/lead-pages`), not
            the Facebook Page id.
          schema:
            type: string
          example: cmgpl0001ab12cd34ef56
        - name: x-whatsapp-number-id
          in: header
          required: false
          description: >-
            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.
          schema:
            type: string
          example: num_01HZX...
      responses:
        '200':
          description: Forms of the Page
          content:
            application/json:
              example:
                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: []
        '400':
          description: >-
            `NUMBER_REQUIRED` (a per-number OAuth grant without
            `x-whatsapp-number-id`) or `NUMBER_NOT_FOUND` (a number-scoped key
            whose number was deleted)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                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
        '401':
          description: Missing or invalid `x-api-key` / `x-api-key-id` header
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Unauthorized
        '403':
          description: >-
            The number is outside the credential's scope
            (`NUMBER_NOT_IN_GRANT`), or an OAuth token whose workspace role
            lacks `integrations:manage` (`PERMISSION_DENIED`)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                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
        '404':
          description: >-
            Page link not found: never linked, already unlinked, or another
            workspace's
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Page link not found | Vínculo de página não encontrado
                code: NOT_FOUND
        '409':
          description: >-
            Pilot Status has no access to the Page any more
            (`PAGE_MISSING_PERMISSION`, with `missingTasks`)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                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
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Internal server error | Erro interno do servidor
                code: INTERNAL_ERROR
        '502':
          description: Meta could not be reached. Retry.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  Could not reach Meta right now. Try again. | Não foi possível
                  consultar a Meta agora. Tente novamente.
                code: LEADS_LOOKUP_UNAVAILABLE
        '503':
          description: Lead capture is not configured on this installation
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                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
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Your ps_ API key
    apiKeyId:
      type: apiKey
      in: header
      name: x-api-key-id
      description: API key id (alternative to x-api-key)

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.