Reform
REST API v1

API Documentation

Reform exposes a REST API for creating forms, submitting responses, and retrieving submission data. All requests require an API key.

Authentication

All API requests must include an API key. You can pass it via the Authorization: Bearer header or the x-api-key header. Create a key on the API Keys page.

# Bearer token (recommended) curl https://reform.onrender.com/api/v1/forms \ -H "Authorization: Bearer fep_live_..." # x-api-key header curl https://reform.onrender.com/api/v1/forms \ -H "x-api-key: fep_live_..."

Try It Live

Enter your API key to test the GET /api/v1/forms endpoint.

Endpoints

List Forms

List all published forms with submission counts.

Required scope:forms:read
Response
{
  "forms": [
    {
      "id": "clk...",
      "shareId": "cmqv...",
      "name": "Customer Feedback Survey",
      "description": "...",
      "status": "published",
      "submissionCount": 42,
      "createdAt": "2026-06-20T..."
    }
  ]
}

Create Form

Create and publish a new form from a flowchart definition.

Required scope:forms:write
Request Body
{
  "name": "Newsletter Signup",
  "description": "Collect email signups",
  "flowchart": {
    "nodes": [
      { "id": "n1", "type": "start", "position": {"x":80,"y":240}, "data": {"label":"Start"} },
      { "id": "n2", "type": "field", "position": {"x":360,"y":220}, "data": {"label":"Email","fieldType":"email","required":true} },
      { "id": "n3", "type": "submit", "position": {"x":680,"y":240}, "data": {"label":"Submit"} }
    ],
    "edges": [
      { "id": "e1", "source": "n1", "target": "n2" },
      { "id": "e2", "source": "n2", "target": "n3" }
    ]
  }
}
Response
{
  "id": "clk...",
  "shareId": "cmqv...",
  "name": "Newsletter Signup",
  "status": "published",
  "createdAt": "2026-06-27T..."
}

Code Examples

JavaScript / Node.js
const res = await fetch(
  'https://reform.onrender.com/api/v1/forms',
  {
    headers: {
      'Authorization':
        'Bearer fep_live_...'
    }
  }
);
const { forms } = await res.json();
console.log(forms);
Python
import requests

res = requests.get(
  'https://reform.onrender.com/api/v1/forms',
  headers={
    'Authorization':
      'Bearer fep_live_...'
  }
)
forms = res.json()['forms']
print(forms)