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.
Authentication
All API requests require a Bearer token in the Authorization header. API keys start with fqk_ and are created in your dashboard.
curl -H "Authorization: Bearer fqk_a1b2c3d4e5f6..." \https://flowqen.com/api/v1/forms
Getting your API Key
Open your dashboard
Go to Dashboard → Settings → API Keys (or hit /api/keys).
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.
Use it in your requests
Pass the key as Authorization: Bearer fqk_your_key_here on every API call.
FLOWQEN_API_KEY).Base URL
https://flowqen.com/api/v1
Endpoints
List all forms
/api/v1/formsReturns all forms owned by the authenticated user, newest first.
{"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"}]}
Create a form
/api/v1/formsProgrammatically create a new form. Perfect for SaaS platforms that auto-provision forms for their users.
{"name": "Onboarding Survey"}
{"id": "clx9xyz1abc2","name": "Onboarding Survey","endpointUrl": "https://flowqen.com/api/f/clx9xyz1abc2","createdAt": "2026-04-18T12:00:00.000Z"}
List submissions
/api/v1/forms/:formId/submissionsGet paginated submissions for a specific form.
Query parameters
| Param | Default | Description |
|---|---|---|
page | 1 | Page number (1-indexed) |
limit | 50 | Results per page (max 100) |
{"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}}
Delete a submission
/api/v1/submissions/:idPermanently removes a single submission. Useful for GDPR compliance “right to be forgotten” requests.
{ "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.
/api/f/:formId<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
| Plan | Submissions/month | API requests/min |
|---|---|---|
| Free | 100 | — |
| Starter | 2,500 | — |
| Pro | 25,000 | 60 |
| Business | 250,000 | 120 |
Error Codes
| Status | Meaning |
|---|---|
401 | Missing or invalid API key |
403 | Plan doesn't include API access |
404 | Form or submission not found |
429 | Rate limit exceeded — try again later |
Full Examples
Node.js — List submissions and save to CSV
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 CSVconst 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
import requests, osres = 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']}")