Skip to main content

Location profile data

Complete profiles rank and convert better. After creating a location, enrich it with the data below. All calls take the location ID unless noted.

Phone numbers​

TaskEndpoint
List phonesGET Phone list with contextType=Location
Add a phonePOST Phone with parentType=Location
Change a phonePUT Phone (phone ID)
Change the main phonePUT Main phone (phone ID)
Remove a phoneDELETE Phone (phone ID)
POST /phone/{locationId}?parentType=Location
{ "phoneType": "mobile", "phone": "+49 171 1234567", "tracked": false }

phoneType is landline, mobile or fax.

The same phone format rules apply to all endpoints that accept phone numbers, including company contacts: any common format is accepted, and without an international country code Germany is assumed.

Opening hours​

A location can have regular hours (default) and special hours for a period (customPeriod) or a single day (customDate).

TaskEndpoint
List opening hours of a locationGET Opening hours list with id = location ID
CreatePOST Opening hours (location ID)
UpdatePUT Opening hours (opening hours ID)
DeleteDELETE Opening hours (opening hours ID)
Apply to several locationsPUT Bulk opening hours

Each day needs day and openingDayType: singleInterval, doubleInterval, nonstopOpened or closed. Intervals use from and to. Define every weekday, including closed days.

POST /location/openinghours/{locationId}
{
"openingHoursType": "default",
"days": [
{ "day": "Mon", "openingDayType": "singleInterval",
"timeIntervals": [{ "from": "09:00", "to": "18:00" }] },
{ "day": "Tue", "openingDayType": "singleInterval",
"timeIntervals": [{ "from": "09:00", "to": "18:00" }] },
{ "day": "Wed", "openingDayType": "singleInterval",
"timeIntervals": [{ "from": "09:00", "to": "18:00" }] },
{ "day": "Thu", "openingDayType": "doubleInterval",
"timeIntervals": [{ "from": "09:00", "to": "12:00" }, { "from": "14:00", "to": "18:00" }] },
{ "day": "Fri", "openingDayType": "singleInterval",
"timeIntervals": [{ "from": "09:00", "to": "16:00" }] },
{ "day": "Sat", "openingDayType": "nonstopOpened" },
{ "day": "Sun", "openingDayType": "closed" }
]
}

For special hours add dateInterval (from, to). Use temporarilyClosedUntil to mark a temporary closure.

Additional data and media​

TaskEndpoint
Read / update additional data (services, keywords, languages, year founded and more)GET / PUT Location additional
Read / update media (logo, images, social profile URLs)GET / PUT Location media

In media updates, sending null for an optional field removes the value. To reorder customImages, send the existing image IDs in the new order.

Google attributes​

Attributes such as payment methods or accessibility features are provided by Google per category.

  1. GET Google attributes with locationId and language returns the attributes available for the location.
  2. PUT Google attributes saves values. The path takes a comma-separated list of location IDs, so one call can update several locations.
  3. For bulk editing, GET Company Google attributes groups attributes across the selected locations.
PUT /location/googleAttributes/{ids}
{ "data": [{ "attributeId": "<attribute id from step 1>", "value": "true" }] }

Bulk updates​

GET Location bulk and PUT Location bulk read and write selected keys (for example name, categories, email, phone, website, opening hours) for many locations or all locations of a company. Set contextType to Location or Company.