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

# Obter formulário público

> Retorna o formulário de uma [publicação](https://docs.olie.ai/guides/forms/public-forms) a partir do token do link público, só com os campos que podem ser respondidos sem conta na plataforma. Fora da janela de publicação `form` vem nulo; publicação despublicada ou link invalidado retorna 404. Dispensa autenticação, mas sem token a requisição precisa do cabeçalho `Origin` com o endereço de uma conta da Olie.



## OpenAPI

````yaml /api-reference/openapi.json get /api/management/form-publications/{form_publication_token}/form
openapi: 3.0.0
info:
  title: Olie API
  version: 1.0.0
  description: >
    # Introdução 👋


    Olá! Esta é a documentação oficial da API da [olie.ai](https://olie.ai/).
    Aqui você encontra as referências e exemplos de uso dos nossos endpoints.


    Para uma visão completa, recomendamos fortemente que você leia a
    [documentação oficial](https://docs.olie.ai/api-reference/introduction). Lá
    estão detalhados tópicos essenciais como
    [autenticação](https://docs.olie.ai/api-reference/introduction/authentication),
    [estrutura de
    respostas](https://docs.olie.ai/api-reference/general/response-structure),
    [paginação](https://docs.olie.ai/api-reference/general/pagination) e outros
    guias de integração.


    No Postman, esta coleção foca nas informações específicas de cada requisição
    (endpoints, parâmetros e exemplos), servindo como apoio rápido para testes e
    desenvolvimento.
servers:
  - url: https://api.olie.ai
security:
  - BearerAuth: []
paths:
  /api/management/form-publications/{form_publication_token}/form:
    parameters:
      - name: form_publication_token
        in: path
        required: true
        description: Token do link público da publicação (não é o ID da publicação).
        schema:
          type: string
        example: string
    get:
      tags:
        - form-publications
        - form
      summary: Obter formulário público
      description: >-
        Retorna o formulário de uma
        [publicação](https://docs.olie.ai/guides/forms/public-forms) a partir do
        token do link público, só com os campos que podem ser respondidos sem
        conta na plataforma. Fora da janela de publicação `form` vem nulo;
        publicação despublicada ou link invalidado retorna 404. Dispensa
        autenticação, mas sem token a requisição precisa do cabeçalho `Origin`
        com o endereço de uma conta da Olie.
      operationId: obterFormulRioDaPublicaODeFormulRio
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                type: object
                description: Formulário público.
                properties:
                  response:
                    type: boolean
                    description: >-
                      Indicador de sucesso da requisição. Sempre true nas
                      respostas bem-sucedidas.
                  form:
                    type: object
                    description: >-
                      Formulário publicado. Nulo quando a data atual está fora
                      da janela de publicação.
                    properties:
                      id:
                        type: integer
                        description: ID do formulário.
                      title:
                        type: string
                        description: Título do formulário.
                      frame_id:
                        type: string
                        description: ID da conta dona do formulário.
                        format: uuid
                      created_at:
                        type: string
                        description: Data de criação do formulário.
                        format: date-time
                      updated_at:
                        type: string
                        description: Data da última alteração do formulário.
                        format: date-time
                      deleted_at:
                        type: string
                        description: Data de exclusão do formulário. Nulo quando ativo.
                        format: date-time
                        nullable: true
                      edges:
                        type: array
                        description: >-
                          Campos respondíveis em link público, ordenados por
                          index.
                        items:
                          type: object
                          description: Campo do formulário.
                          properties:
                            id:
                              type: integer
                              description: ID do campo.
                            type:
                              type: string
                              description: Tipo do campo.
                              enum:
                                - short_text
                                - long_text
                                - rich_text
                                - attachment
                                - checkbox
                                - date
                                - date_and_time
                                - email
                                - phone
                                - select
                                - radio
                                - currency
                                - number
                                - link
                                - time
                                - matrix
                            label:
                              type: string
                              description: Rótulo do campo.
                            index:
                              type: integer
                              description: >-
                                Posição do campo no formulário (ordem
                                crescente).
                            help_text:
                              type: string
                              description: Texto de ajuda exibido junto ao campo.
                              nullable: true
                            description:
                              type: string
                              description: Descrição do campo.
                              nullable: true
                            options:
                              description: >-
                                Opções do campo: lista de textos para select,
                                radio e checkbox; objeto com rows/columns para
                                matrix; lista vazia nos demais tipos.
                              items:
                                type: string
                                description: Texto de uma opção.
                              anyOf:
                                - type: array
                                  items: {}
                                - type: object
                            initial_value:
                              description: >-
                                Valor pré-preenchido do campo, no mesmo formato
                                de uma resposta daquele tipo.
                              nullable: true
                              anyOf:
                                - type: string
                                - type: number
                                - type: array
                                  items: {}
                                - type: object
                            required:
                              type: boolean
                              description: Se o preenchimento é obrigatório.
                            custom_validation:
                              type: string
                              description: >-
                                Expressão regular que a resposta precisa
                                atender.
                              nullable: true
                            conditional:
                              description: >-
                                Campo legado, sempre nulo. As regras ficam em
                                conditionals.
                              nullable: true
                            form_id:
                              type: integer
                              description: ID do formulário ao qual o campo pertence.
                            created_at:
                              type: string
                              description: Data de criação do campo.
                              format: date-time
                            updated_at:
                              type: string
                              description: Data da última alteração do campo.
                              format: date-time
                            deleted_at:
                              type: string
                              description: >-
                                Data em que o campo foi arquivado. Nulo quando
                                ativo.
                              format: date-time
                              nullable: true
                            is_multiple:
                              type: boolean
                              description: >-
                                Se o campo aceita mais de um valor (ex.: vários
                                links).
                            logical_operator:
                              type: string
                              description: >-
                                Como as regras condicionais do campo se
                                combinam.
                              enum:
                                - and
                                - or
                            is_migrated:
                              type: boolean
                              description: >-
                                Marcador interno de migração de dados. Pode ser
                                ignorado.
                            conditional_action:
                              type: string
                              description: >-
                                O que acontece com o campo quando as regras são
                                atendidas: show (exibe) ou hide (oculta). Nulo
                                quando não há lógica condicional.
                              enum:
                                - show
                                - hide
                                - null
                              nullable: true
                            conditionals:
                              type: array
                              description: Regras condicionais do campo.
                              items:
                                type: object
                                description: Regra condicional do campo.
                                properties:
                                  id:
                                    type: integer
                                    description: ID da regra.
                                  form_edge_id:
                                    type: integer
                                    description: >-
                                      ID do campo que é mostrado ou ocultado
                                      pela regra.
                                  target_id:
                                    type: integer
                                    description: ID do campo cuja resposta é avaliada.
                                  operator:
                                    type: string
                                    description: Operador de comparação.
                                    enum:
                                      - equals
                                      - not_equals
                                      - contains
                                      - not_contains
                                      - greater_than
                                      - less_than
                                      - is_empty
                                      - is_not_empty
                                      - starts_with
                                      - ends_with
                                      - greater_than_or_equals
                                      - less_than_or_equals
                                  value:
                                    description: >-
                                      Valor comparado com a resposta do campo
                                      avaliado.
                                    items:
                                      type: string
                                      description: Um dos valores comparados.
                                    nullable: true
                                    anyOf:
                                      - type: string
                                      - type: number
                                      - type: array
                                        items: {}
                    nullable: true
                  form_publication:
                    type: object
                    description: Dados de apresentação da publicação.
                    properties:
                      title:
                        type: string
                        description: Título exibido no formulário público.
                      description:
                        type: string
                        description: >-
                          Descrição exibida dentro do formulário para quem
                          responde.
                        nullable: true
                      background_color:
                        type: string
                        description: >-
                          Cor de fundo do formulário público, em hexadecimal.
                          Nulo usa a cor padrão.
                        nullable: true
                      starts_at:
                        type: string
                        description: >-
                          Início da janela de publicação. Nulo: vale desde a
                          criação.
                        format: date-time
                        nullable: true
                      ends_at:
                        type: string
                        description: 'Fim da janela de publicação. Nulo: não expira.'
                        format: date-time
                        nullable: true
                      redirect_url:
                        type: string
                        description: Endereço para onde quem responde é levado após enviar.
                        nullable: true
                      token:
                        type: string
                        description: Token do link público do formulário.
                        format: uuid
              examples:
                Sucesso:
                  value:
                    response: true
                    form:
                      id: 70
                      title: Doc Postman - Inscrição em evento
                      frame_id: 01a0252b-d865-71af-a0a2-d4e168d1ffe5
                      created_at: '2026-09-22T22:00:15.000000Z'
                      updated_at: '2026-09-22T22:00:15.000000Z'
                      deleted_at: null
                      edges:
                        - id: 115
                          type: short_text
                          label: Nome completo
                          index: 0
                          help_text: null
                          description: null
                          options: []
                          initial_value: null
                          required: true
                          custom_validation: null
                          conditional: null
                          form_id: 70
                          created_at: '2026-09-22T22:00:15.000000Z'
                          updated_at: '2026-09-22T22:00:15.000000Z'
                          deleted_at: null
                          is_multiple: false
                          logical_operator: and
                          is_migrated: false
                          conditional_action: null
                          conditionals: []
                        - id: 116
                          type: email
                          label: E-mail
                          index: 1
                          help_text: null
                          description: null
                          options: []
                          initial_value: null
                          required: true
                          custom_validation: null
                          conditional: null
                          form_id: 70
                          created_at: '2026-09-22T22:00:15.000000Z'
                          updated_at: '2026-09-22T22:00:15.000000Z'
                          deleted_at: null
                          is_multiple: false
                          logical_operator: and
                          is_migrated: false
                          conditional_action: null
                          conditionals: []
                        - id: 117
                          type: phone
                          label: Telefone
                          index: 2
                          help_text: null
                          description: null
                          options: []
                          initial_value: null
                          required: false
                          custom_validation: null
                          conditional: null
                          form_id: 70
                          created_at: '2026-09-22T22:00:15.000000Z'
                          updated_at: '2026-09-22T22:00:15.000000Z'
                          deleted_at: null
                          is_multiple: false
                          logical_operator: and
                          is_migrated: false
                          conditional_action: null
                          conditionals: []
                        - id: 118
                          type: select
                          label: Como conheceu o evento
                          index: 3
                          help_text: null
                          description: null
                          options:
                            - Indicação
                            - Redes sociais
                            - Site
                          initial_value: null
                          required: false
                          custom_validation: null
                          conditional: null
                          form_id: 70
                          created_at: '2026-09-22T22:00:15.000000Z'
                          updated_at: '2026-09-22T22:00:15.000000Z'
                          deleted_at: null
                          is_multiple: false
                          logical_operator: and
                          is_migrated: false
                          conditional_action: null
                          conditionals: []
                    form_publication:
                      title: Inscrição - Workshop de Processos
                      description: Preencha para garantir sua vaga.
                      background_color: '#1E40AF'
                      starts_at: null
                      ends_at: '2026-12-31 23:59:59'
                      redirect_url: https://exemplo.com.br/obrigado
                      token: e867fd11-bf8d-4b10-b8a0-77deae294392
                Fora da janela de publicação:
                  value:
                    response: true
                    form: null
                    form_publication:
                      title: Inscrição - Workshop de Processos
                      description: Inscrições encerradas.
                      background_color: '#1E40AF'
                      starts_at: '2026-09-01 00:00:00'
                      ends_at: '2026-09-20 23:59:59'
                      redirect_url: https://exemplo.com.br/obrigado
                      token: e867fd11-bf8d-4b10-b8a0-77deae294392
        '400':
          description: Origem ausente
          content:
            application/json:
              schema:
                type: object
                description: Requisição sem autenticação e sem cabeçalho Origin.
                properties:
                  response:
                    type: boolean
                    description: Sempre false em erros.
                  message:
                    type: string
                    description: Descrição legível do erro.
                  error:
                    type: string
                    description: 'Código do erro: empty_origin.'
                  context:
                    type: object
                    description: Dados adicionais do erro. Nulo neste caso.
                    nullable: true
              example:
                response: false
                message: Origin header cannot be empty
                error: empty_origin
                context: null
        '404':
          description: Não encontrado
          content:
            application/json:
              schema:
                type: object
                description: Resposta de erro.
                properties:
                  response:
                    type: boolean
                    description: Indicador de sucesso da requisição. Sempre false em erros.
                  message:
                    type: string
                    description: >-
                      Código do erro para tratamento no cliente:
                      form_publication_model_not_found (token inexistente,
                      invalidado ou publicação despublicada).
                  error:
                    type: string
                    description: Descrição legível do erro.
              example:
                response: false
                message: form_publication_model_not_found
                error: No query results for model [App\Models\FormPublication].
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````