API Documentation

Core API Endpoints

The same clean, API-first experience you see on the homepage, now documented for integration.

POST

/api/contact

Submit a form response securely

GET

/api/form-config/[projectId]

Fetch dynamic form configuration for a project

GET

/api/admin/stats

Read dashboard statistics for authenticated users

Integration Examples

Copy a starter snippet and connect it to your frontend stack.

React / Next.js

React / Next.js.ts
const response = await fetch("/api/contact", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    projectId: process.env.NEXT_PUBLIC_PROJECT_ID,
    apiKey: process.env.NEXT_PUBLIC_PUBLIC_KEY,
    responses: {
        name: "Jane",
        email: "jane@co.com"
    }
  })
});

Static HTML / Vanilla JS

Static HTML / Vanilla JS.ts
fetch("/api/contact", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    projectId: "acme-corp-4f2a",
    apiKey: "pk_live_3f9a8b2c1d...",
    responses: {
        name: "Jane",
        email: "jane@co.com"
    }
  })
});

Built for Modern Workflows

Designed to stay secure, scalable, and easy to embed in any project.

Dynamic forms, validation, and automation

Build once and reuse the same backend across multiple apps, forms, and workflows without changing the design language of your frontend.

API keysDomain restrictionsRate limitingEmail providersAnalytics

Authentication

Use a frontend-safe public key with a server-validated secret key. Domain restrictions and rate limiting are enforced on the backend.

Security

Every request is validated with schema rules, origin checks, and spam protection before it is stored or emailed.

Email Automation

Send admin notifications and auto-replies through SMTP or provider-based delivery with provider-specific settings.

Analytics

Track submission volume, delivery metrics, API usage, and spam trends per project over time.