Skip to main content
To create an input field, send a POST request to /input-fields. The id field must be a client-generated UUID.
curl -X POST https://api.qminder.com/input-fields \
  -H "X-Qminder-REST-API-Key: YOUR_API_KEY" \
  -H "X-Qminder-API-Version: 2020-09-01" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "location": { "id": 12345 },
    "type": "TEXT",
    "title": "Reason for visit",
    "isMandatoryBeforeAdded": true,
    "isMandatoryBeforeServed": false,
    "isMandatoryInRemoteSignIn": false,
    "isVisibleInWaitingDrawer": true,
    "isVisibleInServingDrawer": true,
    "showInRemoteSignIn": true,
    "visibleForLines": []
  }'
Response: 201 Created with an empty body.

Common Fields

These fields are required for all input field types:
FieldTypeDescription
idstring (UUID)Client-generated UUID for the input field
locationobjectLocation reference: {"id": number}
typestringField type (see Field Types below)
isMandatoryBeforeAddedbooleanMust be filled before ticket is added
isMandatoryBeforeServedbooleanMust be filled before ticket is served
isMandatoryInRemoteSignInbooleanMust be filled in remote sign-in
isVisibleInWaitingDrawerbooleanShown in the waiting drawer
isVisibleInServingDrawerbooleanShown in the serving drawer
showInRemoteSignInbooleanShow in remote sign-in
visibleForLinesarrayLines this field applies to: [{"id": number}]. Empty array means all lines

Field Types

The type field determines which additional properties are available.

Built-in Types

FIRST_NAME and LAST_NAME are built-in field types with fixed titles. They have no additional required properties beyond the common fields. Optional field:
  • isRequiredInAppointments (boolean) — Whether the field is required when booking appointments. Only available for LAST_NAME and EMAIL types.
EMAIL and PHONE_NUMBER are singleton types — only one of each can exist per location. Attempting to create a second will return a 409 error. Optional field for EMAIL:
  • isRequiredInAppointments (boolean) — Whether the field is required when booking appointments

TEXT

A free-form text input field.
FieldTypeRequiredDescription
titlestringYesDisplay title
visitorFacingTitlestringNoTitle shown to visitors
translationsarrayNoTranslations (see Translations)

SELECT

A dropdown selection field with custom options.
FieldTypeRequiredDescription
titlestringYesDisplay title
multiSelectbooleanYesAllow multiple selections
optionsarrayYesArray of select options (see below)
visitorFacingTitlestringNoTitle shown to visitors
translationsarrayNoTranslations (see Translations)
Each option in the options array:
FieldTypeRequiredDescription
idstring (UUID)YesClient-generated UUID for the option
titlestringYesOption display title
colorstringNoOption color
Example — creating a SELECT field:
curl -X POST https://api.qminder.com/input-fields \
  -H "X-Qminder-REST-API-Key: YOUR_API_KEY" \
  -H "X-Qminder-API-Version: 2020-09-01" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "660e8400-e29b-41d4-a716-446655440001",
    "location": { "id": 12345 },
    "type": "SELECT",
    "title": "Service type",
    "multiSelect": false,
    "options": [
      { "id": "770e8400-e29b-41d4-a716-446655440001", "title": "General inquiry" },
      { "id": "770e8400-e29b-41d4-a716-446655440002", "title": "Returns" },
      { "id": "770e8400-e29b-41d4-a716-446655440003", "title": "Pickup" }
    ],
    "isMandatoryBeforeAdded": true,
    "isMandatoryBeforeServed": false,
    "isMandatoryInRemoteSignIn": false,
    "isVisibleInWaitingDrawer": true,
    "isVisibleInServingDrawer": true,
    "showInRemoteSignIn": true,
    "visibleForLines": []
  }'

URL

A URL input field.
FieldTypeRequiredDescription
titlestringYesDisplay title
URL fields cannot be shown in remote sign-in — showInRemoteSignIn is always treated as false.

DATE

A date input field.
FieldTypeRequiredDescription
titlestringYesDisplay title
visitorFacingTitlestringNoTitle shown to visitors
translationsarrayNoTranslations (see Translations)

NUMERIC

A numeric input field with optional constraints.
FieldTypeRequiredDescription
titlestringYesDisplay title
visitorFacingTitlestringNoTitle shown to visitors
constraintsobjectNoMin/max constraints (see below)
translationsarrayNoTranslations (see Translations)
The constraints object:
FieldTypeRequiredDescription
minnumberNoMinimum allowed value
maxnumberNoMaximum allowed value
scaleintegerYesNumber of decimal places
Example — creating a NUMERIC field with constraints:
curl -X POST https://api.qminder.com/input-fields \
  -H "X-Qminder-REST-API-Key: YOUR_API_KEY" \
  -H "X-Qminder-API-Version: 2020-09-01" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "880e8400-e29b-41d4-a716-446655440001",
    "location": { "id": 12345 },
    "type": "NUMERIC",
    "title": "Amount",
    "constraints": {
      "min": 0,
      "max": 10000,
      "scale": 2
    },
    "isMandatoryBeforeAdded": false,
    "isMandatoryBeforeServed": true,
    "isMandatoryInRemoteSignIn": false,
    "isVisibleInWaitingDrawer": true,
    "isVisibleInServingDrawer": true,
    "showInRemoteSignIn": false,
    "visibleForLines": []
  }'

Translations

The following field types support translations: TEXT, SELECT, URL, DATE, and NUMERIC. Each translation object:
FieldTypeRequiredDescription
languageCodestringYesLanguage code (e.g. “fr”, “es”, “de”)
titlestringNoTranslated field title
visitorFacingTitlestringNoTranslated visitor-facing title
{
  "translations": [
    { "languageCode": "fr", "title": "Raison de la visite", "visitorFacingTitle": "Votre raison" },
    { "languageCode": "es", "title": "Motivo de la visita" }
  ]
}

Error Responses

StatusCodeDescription
400duplicate_items_in_requestSELECT options have duplicate titles
400parameter_invalid_blankTranslation title or visitor-facing title is blank
400Bad requestMissing type field or invalid request body
404resource_missingLocation not found
409input_field_duplicateInput field with the same ID already exists
409input_field_duplicateEMAIL or PHONE_NUMBER field already exists in this location