> ## Documentation Index
> Fetch the complete documentation index at: https://developer.qminder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Input Fields

You can get the list of input fields configured for a location. This is useful when creating tickets or appointments with custom field values.

<Note>
  Input field IDs are UUIDs (e.g., `550e8400-e29b-41d4-a716-446655440000`), not numeric IDs like locations or lines.
</Note>

<CodeGroup>
  ```graphql graphql theme={null}
  query InputFieldsForLocation {
    location(id: "123") {
      inputFields {
        id
        type
        title
        multiSelect
        visibleForLines {
          id
        }
        options {
          id
          title
        }
      }
    }
  }
  ```
</CodeGroup>

Example response:

```json theme={null}
{
  "data": {
    "location": {
      "inputFields": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "type": "TEXT",
          "title": "Reason for visit",
          "multiSelect": false,
          "visibleForLines": [],
          "options": []
        },
        {
          "id": "550e8400-e29b-41d4-a716-446655440001",
          "type": "SELECT",
          "title": "Service Type",
          "multiSelect": false,
          "visibleForLines": [{"id": "88100"}],
          "options": [
            {"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "title": "New Account"},
            {"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901", "title": "Support"}
          ]
        }
      ]
    }
  }
}
```

## Field Types

| Type           | Value Format                    | Description                       |
| -------------- | ------------------------------- | --------------------------------- |
| `FIRST_NAME`   | `value` (string)                | Visitor's first name              |
| `LAST_NAME`    | `value` (string)                | Visitor's last name               |
| `EMAIL`        | `value` (string)                | Email address                     |
| `PHONE_NUMBER` | `value` (string)                | Phone number                      |
| `TEXT`         | `value` (string, max 500 chars) | Free-form text                    |
| `URL`          | `value` (string)                | URL                               |
| `DATE`         | `value` (ISO 8601 string)       | Date value                        |
| `NUMERIC`      | `value` (string)                | Numeric value                     |
| `SELECT`       | `optionIds` (array of UUIDs)    | Selection from predefined options |

For the complete field type reference, see [InputFieldType](/reference/graphql/enums/input-field-type).

## Using SELECT Fields

For `SELECT` type fields, provide option IDs in the `optionIds` array instead of `value`:

* Check the `multiSelect` property to determine if multiple options can be selected
* If `multiSelect` is `false`, provide exactly one option ID
* If `multiSelect` is `true`, you may provide multiple option IDs

## Line Visibility

The `visibleForLines` array indicates which lines the input field applies to:

* Empty array (`[]`) means the field is visible for all lines
* Non-empty array means the field only applies to those specific lines

For more details on the InputField object, see the [GraphQL InputField documentation](/reference/graphql/objects/input-field).
