# Início rápido

> Aponte qualquer formulário HTML para o Ikiform e receba seu primeiro envio em dois minutos.

O Ikiform é o backend para todo formulário. Você mantém seu próprio markup, framework e estilos. Aponte o formulário para um endpoint do Ikiform e o Ikiform valida cada envio, filtra spam, armazena no seu workspace, avisa você por e-mail e entrega aos seus sistemas por webhook assinado.

Os exemplos de código desta documentação usam o id de formulário de exemplo `frm_xxxxxxxxxxxxxxxx`. Troque pelo id do seu formulário, que fica na visão geral do formulário no painel.

## Escolha como enviar

Todo formulário ganha um endpoint público, `https://ikiform.com/f/<formId>`. Qualquer coisa que consiga enviar um HTTP POST pode usá-lo.

| Você envia de | O que usar | Guia |
| --- | --- | --- |
| Uma página HTML simples ou um criador de sites | `<form action>` | [Formulários HTML](https://ikiform.com/pt-br/docs/html.md) |
| React, Next.js, Vue, Svelte, Astro | `fetch` ou `submit` do SDK | [Guias](https://ikiform.com/pt-br/docs/guides/nextjs.md) |
| Um backend, script ou integração | JSON via HTTPS com uma chave secreta | [A partir de um servidor](https://ikiform.com/pt-br/docs/guides/server.md) |
| Um projeto shadcn/ui | O componente do registry | [Componente shadcn/ui](https://ikiform.com/pt-br/docs/shadcn.md) |

## Início rápido

### Passo 1: Crie um formulário

Entre no [painel](https://ikiform.com/dashboard), crie um workspace e adicione um formulário. A visão geral dele mostra a URL do endpoint e snippets prontos para HTML, JavaScript e React.

### Passo 2: Aponte seu formulário para o endpoint

Defina o `action` do formulário como o endpoint e o `method` como `post`. Todo input com um `name` vira um campo do envio.

`contact.html`:

```html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <input name="name" required />
  <input name="email" type="email" required />
  <textarea name="message"></textarea>
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Send</button>
</form>
```

O input oculto `_gotcha` é um honeypot. As pessoas nunca o veem; bots que o preenchem são armazenados como spam. Veja [Proteção contra spam](https://ikiform.com/pt-br/docs/spam.md#honeypot).

### Passo 3: Envie

Abra a página e envie o formulário. O navegador vai para a página de agradecimento do Ikiform, ou para a sua própria página se você definir um redirecionamento. Você também pode enviar JSON pelo terminal:

`Terminal`:

```bash
curl https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx \
  -H "Content-Type: application/json" \
  -d '{"name":"Ada","email":"ada@example.com","message":"Hello"}'
```

Uma requisição JSON recebe uma resposta JSON com status `201`:

`201 Created`:

```json
{ "ok": true, "id": "sub_01k7v2c9t3e8m5q4x6z0a1b2c3" }
```

### Passo 4: Veja o envio chegar

O envio aparece no painel na hora. A partir daí, adicione um [webhook](https://ikiform.com/pt-br/docs/webhooks.md) para mandar cada envio ao seu app, ou leia os envios com a [API REST](https://ikiform.com/pt-br/docs/api.md).

## Experimente

O construtor de requisições interativo desta página monta um envio a partir de linhas de campos e mostra o código curl, fetch e SDK correspondente. Com o id de exemplo, ele só mostra código; com o id do seu formulário, ele pode enviar um POST real para `https://ikiform.com/f/<formId>` e mostrar o status e a resposta JSON. A requisição que ele monta é assim:

```bash
curl https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx \
  -H "Content-Type: application/json" \
  -d '{"name":"Ada","email":"ada@example.com","message":"Hello"}'
```

## Próximos passos

- [Como funciona](https://ikiform.com/pt-br/docs/how-it-works.md) mostra cada verificação pela qual um envio passa.
- [Defina campos](https://ikiform.com/pt-br/docs/fields.md) para o Ikiform rejeitar dados ruins com erros de campo claros.
- [Ative uma verificação humana](https://ikiform.com/pt-br/docs/spam.md#human-check) e restrinja o formulário aos seus domínios.
- [Verifique as assinaturas de webhook](https://ikiform.com/pt-br/docs/webhooks.md#verify) no seu backend.
