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

# Criar publicação

> Publica um formulário em um link aberto, com token gerado automaticamente. Com `create_project`, cada resposta cria um projeto na etapa escolhida, gravando as respostas no conteúdo ou como formulário avulso. Ver [Publicações de formulários](https://docs.olie.ai/guides/forms/public-forms).



## OpenAPI

````yaml /api-reference/openapi.json post /api/management/form-publications
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:
    post:
      tags:
        - form-publications
      summary: Criar publicação
      description: >-
        Publica um formulário em um link aberto, com token gerado
        automaticamente. Com `create_project`, cada resposta cria um projeto na
        etapa escolhida, gravando as respostas no conteúdo ou como formulário
        avulso. Ver [Publicações de
        formulários](https://docs.olie.ai/guides/forms/public-forms).
      operationId: criarPublicaODeFormulRio
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: Configuração da publicação.
              additionalProperties: false
              required:
                - title
                - status
                - form_id
              properties:
                title:
                  type: string
                  description: Título exibido no formulário público (até 255 caracteres).
                  maxLength: 255
                description:
                  type: string
                  description: Descrição exibida dentro do formulário (até 255 caracteres).
                  maxLength: 255
                  nullable: true
                background_color:
                  type: string
                  description: >-
                    Cor de fundo em hexadecimal, com 3 ou 6 dígitos (ex.:
                    #1E40AF). Nulo usa a cor padrão.
                  pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
                  nullable: true
                starts_at:
                  type: string
                  description: 'Início da janela de publicação. Nulo: vale imediatamente.'
                  nullable: true
                ends_at:
                  type: string
                  description: >-
                    Fim da janela de publicação; igual ou posterior a starts_at.
                    Nulo: não expira.
                  nullable: true
                redirect_url:
                  type: string
                  description: >-
                    URL para onde quem responde é levado após enviar (até 2048
                    caracteres).
                  format: uri
                  maxLength: 2048
                  nullable: true
                status:
                  type: string
                  description: published liga o link público; unpublished o desliga.
                  enum:
                    - published
                    - unpublished
                form_id:
                  type: integer
                  description: ID do formulário a publicar.
                create_project:
                  type: boolean
                  description: >-
                    Se cada resposta cria um projeto. Quando não é true, os
                    campos de criação de projeto abaixo são descartados.
                  nullable: true
                link_as_media:
                  type: boolean
                  description: >-
                    Grava as respostas no conteúdo do projeto criado. Com
                    create_project, este ou link_as_loose_form precisa ser true.
                  nullable: true
                link_as_loose_form:
                  type: boolean
                  description: Grava as respostas como formulário avulso do projeto criado.
                  nullable: true
                project_name:
                  type: string
                  description: >-
                    Nome fixo do projeto criado (até 255 caracteres). Ignorado
                    quando form_edge_id é enviado.
                  maxLength: 255
                  nullable: true
                form_edge_id:
                  type: integer
                  description: >-
                    Campo do formulário cuja resposta vira o nome do projeto.
                    Precisa ser do formulário publicado e respondível em link
                    público.
                  nullable: true
                project_template_id:
                  type: string
                  description: Modelo de projeto usado para criar o projeto.
                  format: uuid
                  nullable: true
                funnel_step_id:
                  type: integer
                  description: Etapa de funil em que o projeto criado é vinculado.
                  nullable: true
            examples:
              Criar publicação de formulário:
                value:
                  title: Inscrição - Workshop de Processos
                  description: Preencha para garantir sua vaga.
                  background_color: '#1E40AF'
                  starts_at: null
                  ends_at: null
                  redirect_url: null
                  status: published
                  form_id: null
                  create_project: false
                  link_as_media: false
                  link_as_loose_form: false
                  project_name: null
                  form_edge_id: null
                  project_template_id: null
                  funnel_step_id: null
      responses:
        '201':
          description: Sucesso
          content:
            application/json:
              schema:
                type: object
                description: Publicação criada.
                properties:
                  response:
                    type: boolean
                    description: >-
                      Indicador de sucesso da requisição. Sempre true nas
                      respostas bem-sucedidas.
                  form_publication:
                    type: object
                    description: Publicação criada.
                    properties:
                      id:
                        type: string
                        description: ID da publicação.
                        format: uuid
                      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
                      status:
                        type: string
                        description: >-
                          Situação da publicação: published (link ativo) ou
                          unpublished (link desligado).
                        enum:
                          - published
                          - unpublished
                      form_id:
                        type: integer
                        description: ID do formulário publicado.
                      frame_id:
                        type: string
                        description: ID da conta dona da publicação.
                        format: uuid
                      created_at:
                        type: string
                        description: Data de criação da publicação.
                        format: date-time
                      updated_at:
                        type: string
                        description: Data da última alteração da publicação.
                        format: date-time
                      create_project:
                        description: >-
                          Se cada resposta cria um projeto. Pode vir como 0/1 na
                          leitura.
                        anyOf:
                          - type: boolean
                          - type: integer
                      link_as_media:
                        type: boolean
                        description: >-
                          Se as respostas são gravadas no conteúdo do projeto
                          criado.
                      link_as_loose_form:
                        type: boolean
                        description: >-
                          Se as respostas são gravadas como formulário avulso do
                          projeto criado.
                      project_name:
                        type: string
                        description: >-
                          Nome fixo do projeto criado. Usado quando form_edge_id
                          está vazio.
                        nullable: true
                      form_edge_id:
                        type: integer
                        description: >-
                          ID do campo cuja resposta vira o nome do projeto
                          criado.
                        nullable: true
                      project_template_id:
                        type: string
                        description: ID do modelo de projeto usado para criar o projeto.
                        format: uuid
                        nullable: true
                      funnel_step_id:
                        type: integer
                        description: ID da etapa em que o projeto criado é vinculado.
                        nullable: true
                      type:
                        type: string
                        description: Tipo do registro. Sempre publication neste endpoint.
                        enum:
                          - publication
              example:
                response: true
                form_publication:
                  title: Inscrição - Workshop de Processos
                  description: Preencha para garantir sua vaga.
                  background_color: '#1E40AF'
                  starts_at: null
                  ends_at: null
                  redirect_url: https://exemplo.com.br/obrigado
                  type: publication
                  status: published
                  form_id: 70
                  link_as_media: false
                  link_as_loose_form: false
                  project_name: null
                  project_template_id: null
                  funnel_step_id: null
                  create_project: false
                  form_edge_id: null
                  token: bf2dc3d7-0bad-4806-b8d1-9ba3e3a8132f
                  frame_id: 01a0252b-d865-71af-a0a2-d4e168d1ffe5
                  id: 01a0cb22-5af9-7290-a243-736378cb5350
                  updated_at: '2026-09-22T22:00:21.000000Z'
                  created_at: '2026-09-22T22:00:21.000000Z'
        '422':
          description: Validação falhou
          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:
                      validation_errors.
                  error:
                    type: string
                    description: Descrição legível do erro.
                  validation:
                    type: object
                    description: >-
                      Mensagens de erro agrupadas pelo nome do atributo
                      inválido.
                    additionalProperties:
                      type: array
                      description: Mensagens do atributo.
                      items:
                        type: string
                        description: Mensagem de erro.
              example:
                response: false
                message: validation_errors
                error: The título field is required. (and 5 more errors)
                validation:
                  title:
                    - The título field is required.
                  background_color:
                    - The background color format is invalid.
                  ends_at:
                    - The ends at must be a date after or equal to starts at.
                  status:
                    - The selected status is invalid.
                  form_id:
                    - The selected form id is invalid.
                  create_project:
                    - >-
                      The link_as_media field is required when create_project is
                      1.
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````