REST API Reference

Flowqen's REST API lets you manage forms and submissions programmatically. Use it to build custom dashboards, sync data to your own database, auto-create forms from your app, or integrate Flowqen into CI/CD pipelines.

API access is available on Pro and Businessplans. You'll need an API key to authenticate (see below).

Authentication

All API requests require a Bearer token in the Authorization header. API keys start with fqk_ and are created in your dashboard.

Example request
curl -H "Authorization: Bearer fqk_a1b2c3d4e5f6..." \
https://flowqen.com/api/v1/forms

Getting your API Key

1

Open your dashboard

Go to Dashboard → Settings → API Keys (or hit /api/keys).

2

Click "Create API Key"

Give it a name like “Production” or “CI Pipeline”. You'll see the full key once — copy and save it securely.

3

Use it in your requests

Pass the key as Authorization: Bearer fqk_your_key_here on every API call.

Keep your API key secret. Never commit it to Git or expose it in frontend code. Use environment variables (FLOWQEN_API_KEY).

Base URL

text
https://flowqen.com/api/v1

Endpoints

List all forms

GET/api/v1/forms

Returns all forms owned by the authenticated user, newest first.

Response
{
"forms": [
{
"id": "clx1abc2def3",
"name": "Contact Form",
"type": "endpoint",
"builderFields": null,
"submissionCount": 142,
"createdAt": "2026-03-15T10:00:00.000Z",
"updatedAt": "2026-04-10T08:30:00.000Z"
}
]
}
Use case: Build a custom reporting dashboard that pulls form stats into Google Data Studio or your admin panel.

Create a form

POST/api/v1/forms

Programmatically create a new form. Perfect for SaaS platforms that auto-provision forms for their users.

Request body
{
"name": "Onboarding Survey"
}
Response (201)
{
"id": "clx9xyz1abc2",
"name": "Onboarding Survey",
"endpointUrl": "https://flowqen.com/api/f/clx9xyz1abc2",
"createdAt": "2026-04-18T12:00:00.000Z"
}
Use case:A property management SaaS auto-creates a “Maintenance Request” form for every new building.

List submissions

GET/api/v1/forms/:formId/submissions

Get paginated submissions for a specific form.

Query parameters

ParamDefaultDescription
page1Page number (1-indexed)
limit50Results per page (max 100)
Response
{
"submissions": [
{
"id": "sub_abc123",
"data": {
"name": "Priya Sharma",
"email": "priya@example.com",
"message": "I need a quote for 500 units"
},
"metadata": { "ip": "203.0.113.42", "userAgent": "..." },
"createdAt": "2026-04-17T14:22:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 142,
"totalPages": 3
}
}
Use case:A real estate agency syncs new leads every hour from their “Property Inquiry” form into their CRM using a cron job.

Delete a submission

DELETE/api/v1/submissions/:id

Permanently removes a single submission. Useful for GDPR compliance “right to be forgotten” requests.

Response
{ "success": true }

Public Submission Endpoint

This is the URL your HTML forms submit to. No API key needed— it's public by design so any website can POST form data.

POST/api/f/:formId
Your website
<form action="https://flowqen.com/api/f/YOUR_FORM_ID" method="POST">
<input type="text" name="name" placeholder="Name" required />
<input type="email" name="email" placeholder="Email" required />
<textarea name="message" placeholder="Message"></textarea>
<button type="submit">Send</button>
</form>

Rate Limits

PlanSubmissions/monthAPI requests/min
Free100
Starter2,500
Pro25,00060
Business250,000120

Error Codes

StatusMeaning
401Missing or invalid API key
403Plan doesn't include API access
404Form or submission not found
429Rate limit exceeded — try again later

Full Examples

Node.js — List submissions and save to CSV

sync-leads.js
const API_KEY = process.env.FLOWQEN_API_KEY;
const FORM_ID = "clx1abc2def3";
const res = await fetch(
`https://flowqen.com/api/v1/forms/${FORM_ID}/submissions?limit=100`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
const { submissions } = await res.json();
// Convert to CSV
const csv = submissions.map(s =>
`${s.data.name},${s.data.email},${s.createdAt}`
).join("\n");
console.log("name,email,date\n" + csv);

Python — Create a form

create_form.py
import requests, os
res = requests.post(
"https://flowqen.com/api/v1/forms",
headers={"Authorization": f"Bearer {os.environ['FLOWQEN_API_KEY']}"},
json={"name": "Event Registration"}
)
form = res.json()
print(f"New form endpoint: {form['endpointUrl']}")

© 2026 Flowqen. All rights reserved.