You are viewing beta documentation for Formie 4.x.
GraphQL

Query Forms

Formie exposes forms, pages, rows and fields through GraphQL. This is useful when you need to build your own front-end, inspect a form’s field layout, or fetch the settings your app needs before rendering a form.

Use formieForm when you expect one form, or formieForms when you need a list.

{
    formieForm(handle: "contactForm") {
        title
        handle
        isAvailable

        settings {
            errorMessageHtml
            submitMethod
            completionBehavior
            completionRedirectSource
        }

        pages {
            label

            rows {
                rowFields {
                    label
                    handle
                    typeName
                    inputTypeName

                    ... on Field_Name {
                        fields {
                            label
                            handle
                            enabled
                            required
                        }
                    }

                    ... on Field_Email {
                        placeholder
                        validateDomain
                    }
                }
            }
        }
    }
}

Select the Fields Your Page Needs

For a contact form with handle contactForm, run this query in Craft's GraphQL explorer using a schema that can read that form:

query ContactFields {
    formieForm(handle: "contactForm") {
        handle
        formFields {
            handle
            inputTypeName
        }
    }
}

The response pairs each field handle with the input type accepted by its submission mutation. Use those names when constructing a typed mutation; a Name field takes a structured value while a Single-Line Text field takes a string. See Create Submissions for both examples.

Querying the form does not grant access to saved submissions. A client that submits answers also needs submission-creation access for this form. Keep private submission-query scopes out of public browser schemas.

Detailed Reference

See GraphQL Form Reference for the complete lookup, including types and field-specific options.