Pular para conteúdo
M13 · Public API

PepForm Developers

Construa integrações sobre o PepForm. Gerencie forms, respostas e webhooks via REST API ou autorize aplicações de terceiros via OAuth2.

API Reference
Endpoints, params e exemplos (Swagger UI)
OAuth Guide
Authorization code flow para apps de terceiros
Quickstart
Primeira chamada em < 2 min

Quickstart

  1. Gere uma API key em Configurações → API keys (scopes: forms:read para começar).
  2. Liste seus forms:
curl https://pepform.io/api/v1/forms \
  -H "Authorization: Bearer pep_YOUR_TOKEN"

Crie um form via API:

curl -X POST https://pepform.io/api/v1/forms \
  -H "Authorization: Bearer pep_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"NPS Q4","description":"Pesquisa pós-venda"}'

Response envelope

Todas as respostas seguem o formato:

{ "success": true, "data": { ... } }
{ "success": false, "error": { "code": "not_found", "message": "..." } }
Rate-limit: 100 req/min por API key (headers X-RateLimit-*)

OAuth2

Use OAuth2 quando seu app precisa agir em nome de usuários PepForm (não com sua própria API key). Fluxo: Authorization Code com PKCE.

# 1. Redirecione o usuário para autorizar:
https://pepform.io/api/oauth/authorize?
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https://yourapp.com/cb&
  scope=forms:read+responses:read&
  state=RANDOM_STATE

# 2. Troque o code por tokens:
curl -X POST https://pepform.io/api/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type":"authorization_code",
    "code":"...",
    "client_id":"YOUR_CLIENT_ID",
    "client_secret":"YOUR_CLIENT_SECRET",
    "redirect_uri":"https://yourapp.com/cb"
  }'
  • access_token é JWT (HS256), expira em 1h.
  • refresh_token é opaco, expira em 30 dias.
  • Endpoint de userinfo: GET /api/oauth/userinfo (Bearer JWT).

Webhooks

Configure URLs via POST /api/v1/webhooks para receber submission.completed. Verifique X-PepForm-Signature (HMAC-SHA256) com o secret retornado na criação.