Folia
APIPublic forms

Submit a form

No authentication. Answers are keyed by question id and validated against the form's published questions: a required answer that is missing or unusable, or any answer over its length cap, is a 422 with `errors` naming the question. On success the response carries the form's thank-you message and redirect URL. Submissions are rate limited per form (429 with `Retry-After`). Where a submission lands in the planner's CRM is decided on their side and is not reported to the caller.

POST/public/forms/{token}/submissions

Path Parameters

tokenstring

The form's public token, from its share link.

Match^[A-Za-z0-9_-]+$
Length8 <= length <= 64
answersobject

Answers keyed by question id. Validated against the form's published questions.

Empty Object

turnstileToken?string

Cloudflare Turnstile response token, if your page renders the Turnstile widget.

pageUrl?string

URL of the page the form was embedded on, shown to the planner with the submission.

Lengthlength <= 2048

Response Body

curl -X POST "https://www.foliaplanner.com/api/v1/public/forms/stringst/submissions" \  -H "Content-Type: application/json" \  -d '{    "answers": {      "property1": null,      "property2": null    }  }'
{
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "successMessage": "string",
    "redirectUrl": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "code": "validation_failed",
  "detail": "string",
  "errors": {
    "property1": "string",
    "property2": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "code": "validation_failed",
  "detail": "string",
  "errors": {
    "property1": "string",
    "property2": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "code": "validation_failed",
  "detail": "string",
  "errors": {
    "property1": "string",
    "property2": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "code": "validation_failed",
  "detail": "string",
  "errors": {
    "property1": "string",
    "property2": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "code": "validation_failed",
  "detail": "string",
  "errors": {
    "property1": "string",
    "property2": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "code": "validation_failed",
  "detail": "string",
  "errors": {
    "property1": "string",
    "property2": "string"
  }
}