Skip to main content
POST
/
locations
Create a location
curl --request POST \
  --url https://api.qminder.com/locations \
  --header 'Content-Type: application/json' \
  --header 'X-Qminder-API-Version: <x-qminder-api-version>' \
  --header 'X-Qminder-REST-API-Key: <api-key>' \
  --data '
{
  "name": "SF City Hall",
  "latitude": 37.7792792,
  "longitude": -122.4214304,
  "address": "1 Dr Carlton B Goodlett Pl, San Francisco, CA 94102, United States",
  "country": "US",
  "languages": [
    "en",
    "et",
    "fr-CA"
  ],
  "inputFields": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440001",
      "type": "FIRST_NAME",
      "isMandatoryBeforeAdded": false,
      "isMandatoryBeforeServed": false,
      "isMandatoryInRemoteSignIn": false,
      "isVisibleInWaitingDrawer": true,
      "isVisibleInServingDrawer": true,
      "showInRemoteSignIn": true
    },
    {
      "id": "550e8400-e29b-41d4-a716-446655440002",
      "type": "LAST_NAME",
      "isMandatoryBeforeAdded": false,
      "isMandatoryBeforeServed": false,
      "isMandatoryInRemoteSignIn": false,
      "isVisibleInWaitingDrawer": true,
      "isVisibleInServingDrawer": true,
      "showInRemoteSignIn": true
    },
    {
      "id": "550e8400-e29b-41d4-a716-446655440003",
      "type": "TEXT",
      "title": "Reason for visit",
      "isMandatoryBeforeAdded": true,
      "isMandatoryBeforeServed": false,
      "isMandatoryInRemoteSignIn": false,
      "isVisibleInWaitingDrawer": true,
      "isVisibleInServingDrawer": true,
      "showInRemoteSignIn": true
    }
  ],
  "openingHours": {
    "regular": {
      "mon": {
        "businessHours": [
          {
            "opens": {
              "hours": 9,
              "minutes": 0
            },
            "closes": {
              "hours": 17,
              "minutes": 0
            }
          }
        ]
      },
      "tue": {
        "businessHours": [
          {
            "opens": {
              "hours": 9,
              "minutes": 0
            },
            "closes": {
              "hours": 17,
              "minutes": 0
            }
          }
        ]
      },
      "wed": {
        "businessHours": [
          {
            "opens": {
              "hours": 9,
              "minutes": 0
            },
            "closes": {
              "hours": 17,
              "minutes": 0
            }
          }
        ]
      },
      "thu": {
        "businessHours": [
          {
            "opens": {
              "hours": 9,
              "minutes": 0
            },
            "closes": {
              "hours": 17,
              "minutes": 0
            }
          }
        ]
      },
      "fri": {
        "businessHours": [
          {
            "opens": {
              "hours": 9,
              "minutes": 0
            },
            "closes": {
              "hours": 17,
              "minutes": 0
            }
          }
        ]
      },
      "sat": {
        "closed": true
      },
      "sun": {
        "closed": true
      }
    },
    "exceptions": [
      {
        "date": "2026-05-01",
        "closed": true,
        "closedReason": "Holiday"
      }
    ]
  }
}
'
{
  "id": "12345"
}

Authorizations

X-Qminder-REST-API-Key
string
header
default:yourbusinessapikey
required

Headers

X-Qminder-API-Version
enum<string>
default:2020-09-01
required

API version. Must be set to 2020-09-01.

Available options:
2020-09-01

Body

application/json
name
string
required

Location name (max 30 characters).

Maximum string length: 30
latitude
number
required

Geographical latitude (-90 to 90).

Required range: -90 <= x <= 90
longitude
number
required

Geographical longitude (-180 to 180).

Required range: -180 <= x <= 180
address
string
required

Postal address (max 300 characters).

Maximum string length: 300
country
string
required

ISO 3166-1 alpha-2 country code (e.g. "US", "CA").

Pattern: ^[A-Z]{2}$
languages
string[]

Languages available at this location. An array of ISO 639 / BCP 47 language codes (e.g. "en", "et", "fr-CA"). Must include "en". No duplicates allowed. Order is preserved. Defaults to ["en"] if omitted.

inputFields
object[]

Custom input fields to create with the location. If omitted, three default fields are created (first name, last name, phone number). Must include at least one FIRST_NAME and one LAST_NAME field. Each field uses the same schema as POST /input-fields, but without location and visibleForLines.

Maximum array length: 50
openingHours
object

Opening hours configuration. If omitted, the location defaults to 24/7 (00:00–23:59 every day).

Response

Location created successfully

id
string

The ID of the created location.

Example:

"12345"