FormSync

Submissions API

Fetch submissions for a specific FormSync form using an authenticated API key.


List Form Submissions

Returns submissions for a single form that belongs to the authenticated account.

Only submission-facing fields are returned. Internal metadata such as IP address, user agent, geo lookup data, and internal request tracing fields are not exposed by this endpoint.


Endpoint

HTTP
GET /forms/{formId}/submissions

Full URL:

URL
https://api.formsync.app/v1/forms/{formId}/submissions

Path Parameters

ParameterTypeRequiredDescription
formIdstringtruePublic FormSync form ID.

Headers

HeaderRequiredDescription
AuthorizationtrueBearer API key in the format Bearer fs_your_api_key_here.
AcceptfalseRecommended. Set to application/json.

Example Request

cURL
curl https://api.formsync.app/v1/forms/FORM_ID/submissions \ -H "Authorization: Bearer $FORMSYNC_API_KEY" \ -H "Accept: application/json"

FormSync Package Example

Node.js
import { FormSync } from "formsync"; const formsync = new FormSync({ apiKey: process.env.FORMSYNC_API_KEY!, }); const response = await formsync.submissions.list({ formId: "FORM_ID", }); console.log(response.submissions);

This is the recommended approach for server-side JavaScript and TypeScript apps because it keeps authentication and response handling consistent with the rest of the SDK.


Successful Response

200 response
{ "success": true, "message": "Submissions fetched successfully.", "submissions": [ { "formId": "fSxYzAbC1234", "data": { "name": "John Doe", "email": "john@example.com", "message": "Hello from FormSync" }, "attachments": [], "createdAt": "2026-04-29T12:09:44.740Z" } ] }

Response Schema

FieldTypeDescription
successbooleanIndicates whether the request succeeded.
messagestringHuman-readable status message.
submissionsarraySubmission records for the requested form.
submissions[].formIdstringPublic form identifier.
submissions[].dataobjectSubmitted field values.
submissions[].attachmentsarrayUploaded file metadata, when attachments exist.
submissions[].attachments[].fieldNamestringForm field that received the file.
submissions[].attachments[].fileUrlstringFile URL stored for the uploaded asset.
submissions[].attachments[].fileSizenumberFile size in bytes.
submissions[].attachments[].mimeTypestringMIME type of the uploaded file.
submissions[].createdAtstringISO 8601 timestamp of the submission.

Notes


JavaScript Example

Node.js
const formId = "FORM_ID"; const response = await fetch( `https://api.formsync.app/v1/forms/${formId}/submissions`, { headers: { Authorization: `Bearer ${process.env.FORMSYNC_API_KEY}`, Accept: "application/json", }, }, ); const data = await response.json(); console.log(data.submissions);

Common Errors

401 Unauthorized
{ "success": false, "message": "Invalid API key." }
404 Not Found
{ "success": false, "message": "Form not found." }

How is this guide?

Last updated on May 1, 2026