# Get a list of all locations by ids This is an endpoint that allows you to retrieve a list of Locations in bulk. The locations are identified by their business id, provided in the query. When one or more locations could not be found, this will be indicated in the errors-section of the response. Endpoint: GET /locations Version: 1.6.1 Security: clientCredentials ## Query parameters: - `ids` (array, required) A comma-separated list of Location business IDs. ## Response 200 fields (application/json): - `data` (array) - `data.business_id` (string, required) Unique reference id Example: "locationA" - `data.location_category` (string) An optional category for the Locations, represented by its code. Defining a category for your Location can help in easy retrieval of the information through the search-endpoints or in the user interface. A category will also allow you to target Conditionals to Orders which are tied to a Location with specific categories. Example: "locationCategoryA" - `data.name` (string) An optional name that helps in identifying the Location. Example: "locationName" - `data.description` (string) A freeform text description of the Location, providing additional details that might be of use for a planner. Example: "locationDescription" - `data.comment` (string) A freeform text field for adding comments to a Location. Example: "locationComment" - `data.address` (object, required) The main, physical address for this Location. This address as mandatory for creating/updating a Location. - `data.address.address_line` (string) Optional address line representing the street address (optionally including house number, box, ...) Example: "Voordries 41" - `data.address.city` (string, required) The name of the locality. Mandatory if no geo point is provided. Example: "Oosterzele" - `data.address.zip_code` (string, required) The uniquely identifying code of this locality. Mandatory if no geo point is provided. Example: "9860" - `data.address.country_code` (string, required) An ISO3166-1 alpha-2 two letter country code. Mandatory if no geo point is provided. - `data.address.geo_point` (object) A The geo point is optional, if and only if all the mandatory address fields are supplied. When no geo point is provided, a geocoding call will determine the geo point using the provided textual address fields. (See resolved address for more information.) Adding a geo point allows you to retain full control of the data that will be used in your planning. - `data.address.geo_point.latitude` (number, required) Example: 50.9514048 - `data.address.geo_point.longitude` (number, required) Example: 3.8067878 - `data.address.resolved_address` (object) The resolved address is geocoded based on the given address, with the quality of the resolving being specified by the field score. Addresses are only resolved when no geo point is provided on the provided address. - `data.address.resolved_address.geo_point` (object) - `data.address.resolved_address.address_line` (string) Example: "Voordries 41" - `data.address.resolved_address.city` (string) Example: "Oosterzele" - `data.address.resolved_address.zip_code` (string) Example: "9860" - `data.address.resolved_address.country_code` (string) An ISO3166-1 alpha-2 two letter country code - `data.address.resolved_address.score` (integer) This score ranges from 0 to 9, with 0 being the worst and 9 a perfectly geocoded address. Example: 9 - `data.planning_address` (object) The planning address allows you to override the address on a Location. A typical use case for this would be to provide the official address of a retail location in the address field, but specifying a loading dock in a back alley using the planning address. - `data.stop_time` (string) The stop time to be applied when visiting this Location. Must be specified as a valid ISO Duration (see [wikipedia ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) and [RFC-3339](https://datatracker.ietf.org/doc/html/rfc3339)). Must be non negative. - `data.requirements` (object) Requirements that have to be fulfilled by the executor of an order at this location. - `data.requirements.tags` (array) Properties that MUST be present on the executor. Example: ["tagX"] - `data.requirements.forbidden_tags` (array) Properties that MUST NOT be present on the executor. Example: ["tagY"] - `data.time_window` (object) A collection of TimeWindows, defining when this location can be visited. This can be used to restrict an Order's windowed timeframes. If this property is not provided, we consider the location open 24/7. - `data.time_window.description` (string) An optional description to accompany or clarify the opening hours. Example: "a description" - `data.time_window.windows` (array) An empty array is a valid option, as it indicates no specific opening hours and we consider it open 24/7. - `data.time_window.windows.open_time` (string, required) Time supports 00:00-23:59h - `data.time_window.windows.open_day` (string, required) Corresponding to the days of the week, starting on Monday. Enum: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" - `data.time_window.windows.close_time` (string, required) Time supports 00:00-23:59h - `data.time_window.windows.close_day` (string, required) Corresponding to the days of the week, starting on Monday. Enum: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" - `data.time_window.windows.cost` (number) The cost of a time window can be use to steer the optimization, where it wil prefer a lower cost. It's recommended to use integer values as decimal precision is not guaranteed. - `data.planning_time_window` (object) Planning time windows allow you to specify a different set of time windows for use in the planning, and follow the same format as the time_window property. A typical use case for this would be to specify different delivery windows for a retail location (eg: you can deliver order before the regular opening hours of the retail location) while still providing the information about the regular opening hours (eg: a planner can still determine whether he would be able to contact anyone at the location during their regular opening hours). If no planning time windows are specified, the regular time windows will be used for planning. - `data.custom_data` (object) Custom data allows you te enrich a Location with relevant information for the planner that is not part of the Order Book domain. Custom Data on a Location will be inherited by Orders linked to this Location. When a key is duplicated on the Order, the Order will retain its value for this key. - `data.etag` (string) Must match header if provided on request. - `errors` (array) - `errors.type` (string) An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g., using HTML). Example: "https://api.conundra.eu/problem/constraint-violation" - `errors.title` (string) A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable Example: "Invalid ..." - `errors.status` (integer) The HTTP status code generated by the origin server for this occurrence of the problem. Example: 400 - `errors.detail` (string) A human readable explanation specific to this occurrence of the problem. Example: "string" - `errors.instance` (string) An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. Example: "https://api.conundra.eu/orderbook/v1/orders/deliveries/chilled" - `errors.violations` (array) - `errors.violations.field` (string) A reference to the field in the request that triggered this violation. Example: "class.field" - `errors.violations.message` (string) A message explaining the violation in the referenced field. Example: "a violation message"