Skip to main content
To update an input field, send a PATCH request to /input-fields/{inputFieldId}. Only include fields you want to change — omitted fields remain unchanged.
curl -X PATCH https://api.qminder.com/input-fields/550e8400-e29b-41d4-a716-446655440000 \
  -H "X-Qminder-REST-API-Key: YOUR_API_KEY" \
  -H "X-Qminder-API-Version: 2020-09-01" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Visit reason",
    "isVisibleInWaitingDrawer": false,
    "isMandatoryBeforeServed": true
  }'
Response: 200 OK with an empty body.

Editable Fields

All fields are optional — only include the fields you want to change.
FieldTypeDescription
titlestringDisplay title (max 50 characters). Only for TEXT, SELECT, URL, DATE, NUMERIC.
visitorFacingTitlestring | nullTitle shown to visitors (max 200 characters). Set to null to clear. Only for TEXT, SELECT, DATE, NUMERIC.
isVisibleInWaitingDrawerbooleanShown in the waiting drawer
isVisibleInServingDrawerbooleanShown in the serving drawer
isMandatoryBeforeAddedbooleanMust be filled before ticket is added
isMandatoryBeforeServedbooleanMust be filled before ticket is served
isMandatoryInRemoteSignInbooleanMust be filled in remote sign-in
showInRemoteSignInbooleanShow in remote sign-in
visibleForLinesarrayLines this field applies to: [{"id": number}]. Empty array means all lines.
multiSelectbooleanAllow multiple selections. Only for SELECT.
optionsarraySelect options. Only for SELECT.
constraintsobjectNumeric constraints (min, max, scale). Only for NUMERIC.
translationsarrayTranslations (see below). Only for TEXT, SELECT, URL, DATE, NUMERIC.

Type-Specific Restrictions

Not all fields can be set on all input field types. Setting a restricted field returns a 400 error:
  • title — cannot be set on FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER
  • visitorFacingTitle — cannot be set on FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, URL
  • multiSelect and options — can only be set on SELECT
  • constraints — only applies to NUMERIC

Translations

When translations is provided, all existing translations are replaced with the new set. There is no way to update a single translation — you must send the complete list.
{
  "translations": [
    { "languageCode": "fr", "title": "Raison de la visite", "visitorFacingTitle": "Votre raison" },
    { "languageCode": "es", "title": "Motivo de la visita" }
  ]
}

SELECT Options

When options is provided for a SELECT field, options are matched by id:
  • Options with a matching id are updated
  • Options with a new id are added
  • Existing options not included in the request are removed
{
  "options": [
    { "id": "770e8400-e29b-41d4-a716-446655440001", "title": "Updated title" },
    { "id": "990e8400-e29b-41d4-a716-446655440001", "title": "New option" }
  ]
}

Error Responses

StatusCodeDescription
400invalid_argumentsType-specific field set on wrong type (e.g., title on EMAIL)
400duplicate_items_in_requestSELECT options have duplicate titles
400parameter_invalid_blankTitle, visitor-facing title, or translation title is blank
400Validation errorTitle too long (>50 chars) or visitor-facing title too long (>200 chars)
404resource_missingInput field not found