Chapter 06API, Webhooks & Portals
5 min read

REST API v1 Reference, Developer API Keys & Static Embed Tokens

Programmatically provision form endpoints, update schemas, and query filtered submissions using REST API v1 (/api/v1/*) with ff_live_ Server API Keys.

Key Technical Takeaways (TL;DR)
  • Pass your ff_live_... Server API Key via the X-API-Key header or Authorization: Bearer ff_live_... header.
  • Use 1-form-locked ff_pub_... Public Static Tokens in client-side or AI-generated frontends to safely submit to POST /api/v1/submit.
  • Query paginated submissions with status filtering via GET /api/v1/forms/:id/submissions?status=new&limit=50.
  • Check service health and API latency anytime at GET /api/v1/status.

1. REST API v1 Endpoint Reference

All REST API v1 endpoints return UTF-8 JSON with a top-level success boolean.

MethodEndpoint PathAuthenticationDescription
POST/f/:formIdPublic + CORS ShieldPrimary form ingestion endpoint (HTML, JSON, Multipart)
POST/api/v1/submitff_live_ or ff_pub_Auto-provisioning ingestion endpoint for AI & static apps
GET/api/v1/formsX-API-Key / Bearer (ff_live_)List all form endpoints, schemas, and submission counts
POST/api/v1/formsX-API-Key / Bearer (ff_live_)Programmatically create a new form endpoint and schema
GET/api/v1/forms/:idX-API-Key / Bearer (ff_live_)Retrieve a single form schema, steps, theme, and settings
PATCH/api/v1/forms/:idX-API-Key / Bearer (ff_live_)Update form fields, steps, CORS domains, or webhook settings
GET/api/v1/forms/:id/submissionsX-API-Key / Bearer (ff_live_)Query submissions (supports ?status=new&limit=50)
GET/api/v1/statusPublicService availability, storage node health, and API uptime check

2. Querying Submissions & Creating Forms via REST API v1

Generate an ff_live_ API key in your Developer Console to integrate FormFork with your backend services, analytics pipelines, or CLI workflows.

bashFetch Filtered Submissions (GET /api/v1/forms/:id/submissions)
curl -X GET "https://formfork.io/api/v1/forms/form-contact-demo/submissions?status=new&limit=25" \
  -H "X-API-Key: ff_live_your_secret_api_key" \
  -H "Accept: application/json"
bashZero-Setup Auto-Provisioning Submission (POST /api/v1/submit)
curl -X POST "https://formfork.io/api/v1/submit" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ff_pub_your_single_form_public_token" \
  -d '{
    "formName": "SaaS Early Access Waitlist",
    "email": "founder@startup.io",
    "company": "Startup Labs",
    "team_size": "10-50"
  }'

Frequently Asked Technical Questions

What is the difference between ff_live_ Server API Keys and ff_pub_ Public Tokens?

ff_live_ keys are full server-side credentials that can list, create, modify, and read submissions across all forms in your account. ff_pub_ tokens are write-only public embed tokens locked to a single form so they can be safely embedded in client-side JavaScript or AI-generated static sites.

Can I pass the API key as a Bearer token instead of X-API-Key?

Yes. Both X-API-Key: ff_live_... and Authorization: Bearer ff_live_... are supported across all /api/v1/* routes.

All FormFork Documentation Guides

View Full Documentation Index →