SaaS de ingestãoWebMCP ready

Cada Form ganha um endpoint. O Studio mostra o que chegou.

Você posta JSON de qualquer lugar — app, site, script. O Forma valida contra os Fields que você definiu, guarda a Submission com origin e user-agent, e mostra tudo no Studio. Sem SDK obrigatório, sem formulário hospedado no meio do caminho.

Criar o primeiro FormStudio aberto, sem login enquanto está em desenvolvimento.
@forma/sdk
import { Forma } from "@forma/sdk";

const forma = new Forma({ apiKey: "frm_..." });

await forma.submit({
  email: "ana@acme.com",
  message: "O botão some no mobile",
  rating: 4,
});
1

Crie um Form

O Form ganha uma API key e um endpoint de POST na hora. Comece de um Template — Feedback, Contato, Newsletter, NPS — ou vazio.

2

Poste do seu app

Use o @forma/sdk, um Authorization: Bearer, o header X-Forma-Key, ou a key na própria URL.

3

Leia no Studio

Cada Submission aparece com os Fields separados, o JSON cru e os metadados de quem enviou.

Os Fields são o contrato

Um Field tem um nome, que aparece no Studio, e uma key, que é a propriedade do JSON. É isso que separa uma Submission legível de um blob.

Valida na entrada

Field obrigatório que não veio, email malformado ou número que chegou como string voltam 400 com a key que falhou.

Ou não valida nada

Form sem Fields é ingest aberto: qualquer JSON entra e você organiza depois. Chaves a mais nunca são descartadas.

Muda sem migrar

Renomear um Field não toca nas Submissions antigas. Trocar a key deixa o valor velho visível em Outros.

O que o endpoint garante

valores padrão, configuráveis por ambiente
Rate limit
20/min por IP
e 60/min por API key
Excedente
429 + Retry-After
em segundos, no header
Payload
até 100 KB
objeto JSON, não array
CORS
aberto
dá para postar do browser
WebMCP ready

Surveys públicos falam com o agente do browser.

Em /f/… o Forma registra describe_form e submit_form. O POST continua o contrato — WebMCP só descreve a página aberta.

Ver WebMCP