# Render a form

Returns everything needed to draw a form and fill it in: its fields in order, each
one's type, label, validation bounds and option list, the title and the content
shown on success, and the values already held for whoever is asking. Submit the
result to `POST /form/{id}/process`.
**This endpoint does not require a token.** Anonymous forms that the account has
marked public can be rendered by anyone holding the form's id or its token - that
is what makes a public sign-up link work. Every other form, including an anonymous
form that has not been made public, requires a signed-in caller who may use it,
and answers as though it does not exist otherwise. When a form is rendered without
a token the response carries `recaptcha: true`, and the submission that follows
must include a reCAPTCHA response.
Either the form's numeric id or its `token` may be used in the path.
A form that has closed returns its closing content rather than its fields. An
administrator can still preview a closed form by sending `preview`.
Send `user_id` to fill the form in on behalf of somebody else; the form type
decides which entity ids are required alongside it, and a request missing one is
rejected. Send `user_form_submission_id` to reopen an existing submission - it
must belong to this form. Where the form's content contains merge fields, an
existing submission renders them against whoever originally submitted it rather
than against whoever is reading it.

Endpoint: GET /api/v2/form/{form_id}/view
Version: 2.0.0
Security: default

## Path parameters:

  - `form_id` (string, required)
    The id of the form, or its token.

## Query parameters:

  - `user_id` (integer)
    Fill the form in on behalf of this user.

  - `user_form_submission_id` (integer)
    Reopen this existing submission. Must
  belong to the form in the path.

  - `preview` (boolean)
    Render a closed form anyway. Administrators only.

  - `_locale` (string)
    Render labels and content in this locale.

## Header parameters:

  - `Rosterfy-Platform` (string)

## Response 200 fields (application/json):

  - `fields` (array)

  - `fields.name` (string)

  - `fields.type` (string)

  - `fields.required` (boolean)

  - `fields.label` (string)

  - `rrns` (object)

  - `rrns.user` (string)

  - `public` (integer)

  - `title` (string | null)

  - `success_content` (string)

  - `close_content` (string)

  - `values` (array)

  - `recaptcha` (boolean)

