Public API · v1

Build with Formfy

Programmatically generate PDF forms from templates, send them to signers, retrieve signed PDFs, and react to events via webhooks. Bearer-token auth, OpenAPI 3.1 spec, separate live/test key partitions.

What you can build

Generate & send forms

Create a form from any of your templates with prefilled fields, send it to a signer over email or SMS, and retrieve the signed PDF when done.

Webhooks

Subscribe to form.created, form.sent, form.viewed, form.signed, form.expired. HMAC-SHA256 signed, 5-minute replay window.

Generate from prompts

Skip the template step entirely — describe what you need in natural language and the API returns a ready-to-send form.

Hello world

Create a form and email it to a signer in two curl calls.

curl
# 1. Create a form from a template
curl https://formfy.ai/api/v1/forms \
  -H "Authorization: Bearer fk_live_<your-key>" \
  -H "Content-Type: application/json" \
  -d '{"template_id": "tmpl_abc123", "prefill": {"client_name": "Alex Doe"}}'
# → { "id": "form_xyz789", "status": "draft", ... }

# 2. Send it to a signer
curl https://formfy.ai/api/v1/forms/form_xyz789/send \
  -H "Authorization: Bearer fk_live_<your-key>" \
  -H "Content-Type: application/json" \
  -d '{"recipients": [{"email": "alex@example.com", "channel": "email"}]}'
# → { "id": "form_xyz789", "status": "sent", ... }

Authentication & quotas

Bearer-token auth

Every request uses Authorization: Bearer fk_live_…. Keys come in two flavors:

  • fk_live_* — production keys, operate on real data
  • fk_test_* — test keys, isolated partition, safe for CI

Quotas

PlanKey typesAPI calls / month
Free trialTest only1,000
Paid (any tier)Live + Test10,000

Need higher limits? Contact us.

SDKs & codegen

The OpenAPI 3.1 spec at /api/v1/openapi.yaml is the source of truth. Use the pre-generated TypeScript types or point any codegen tool at the spec.

TypeScript

Pre-generated types

Drop this file into your project and get type-safe request/response shapes for every endpoint:

curl https://formfy.ai/api/v1/sdk/typescript > types/formfy-api.d.ts
import type { paths, components } from './types/formfy-api'

type Form = components['schemas']['Form']
type CreateFormBody = paths['/api/v1/forms']['post']['requestBody']['content']['application/json']
Any language

Generate your own client

Point any OpenAPI 3.1 codegen tool at our spec. A few popular options:

npx @hey-api/openapi-ts -i https://formfy.ai/api/v1/openapi.yaml -o ./formfy-sdk
openapi-generator generate -i https://formfy.ai/api/v1/openapi.yaml -g python -o ./formfy-py
openapi-generator generate -i https://formfy.ai/api/v1/openapi.yaml -g go -o ./formfy-go

Ready to start?

Generate your first API key in your dashboard. Test keys are free; the only thing they can't touch is live data.