Overview
A POI is any named geographic location that is relevant to customers, including restaurants, hotels, gas stations, hospitals, electric vehicle (EV) charging stations, retail stores, and more. Alexa+ uses POI data to answer customer queries such as:Submission format
You must submit all POI records as JSON objects conforming to this schema. Each JSON object represents a single POI location.Requirement levels
In this document, each field has one of three requirement levels:Submission rules
- Each POI record must have a unique
idthat is stable across submissions. - All URLs must use
https://orhttp://and mustn’t contain spaces. - Locale codes must follow BCP-47 format (for example,
en-US,ja-JP). - Country codes must follow ISO 3166-1 alpha-2 format (for example,
US,GB,FR). - Currency codes must follow ISO 4217 3-letter format (for example,
USD,EUR,JPY).
Field requirements at a glance
Top-level fields
id
Requirement: RequiredType:
string
A unique, stable identifier for this POI. Alexa+ uses this ID to match records across submissions for updates and deduplication.
Example
Example
name
Requirement: RequiredType: array of Name
Minimum items: one The business name for this POI in one or more locales. Provide multiple entries to represent the same name in different locales, not to list alternate names. At least one entry is required. For alternate names, use the
alternateNames field.
Example
Example
address
Requirement: RequiredType: array of Address
Minimum items: one The physical address(es) of the POI. At least one address is required. See the Address for required sub-fields and country-specific rules. Alexa+ treats the first entry in the array as the primary address.
location
Requirement: RecommendedType: Location object Geographic coordinates for the POI. If you omit this field, Alexa+ attempts to geocode the address, but Amazon strongly recommends that you supply precise coordinates.
operatingInfo
Requirement: RecommendedType: OperatingInfo object Operating hours, special hours, and closure status. Providing this data enables Alexa+ to answer questions like
phone
Requirement: RecommendedType:
string
The primary phone number for the business. Include the country code (for example, +1-xxx-xxx-xxxx).
Example
Example
website
Requirement: RecommendedType:
string (URL)
The official website URL for the business. Must begin with http:// or https://.
Example
Example
categories
Requirement: RecommendedType: array of
string
A list of business category labels that best describe this POI. Use widely recognized category names and synonyms where possible (for example, “Coffee Shop”, “Restaurant”, “Gas Station”, “Mexican restaurant”, “Massage”, “Convenience store”, “Grocery Store”).
Example
Example
alternateNames
Requirement: OptionalType: array of
string
Additional names the business may be known by, such as trade names, abbreviations, or commonly used nicknames.
Example
Example
description
Requirement: OptionalType: array of Description Locale-specific descriptions of the business.
media
Requirement: OptionalType: Media object Photos and images of the business.
ratings
Requirement: RecommendedType: Ratings object User ratings, review counts, individual reviews, awards, and ranking information.
relationships
Requirement: OptionalType: Relationships object Identifies chain affiliations, business groups, and spatial containment relationships between POIs.
attributes
Requirement: OptionalType: Attribute object Detailed POI characteristics including amenities, cuisine types, parking, payment methods, and more.
priceRange
Requirement: OptionalType:
integer
A price level indicator from one to four.
Example
Example
costForTwo
Requirement: OptionalType: MonetaryValue object The estimated average cost for two people at this establishment.
Example
Example
alexaSupportedActions
Requirement: RecommendedType: array of
string enum
Specifies which task-completion actions Alexa+ can perform for this POI. Currently supports two values: BOOKING, DELIVERY. If you omit this field, Alexa+ can’t perform task-completion actions for this POI.
Example
Example
actionUrls
Requirement: OptionalType: ActionUrls object Deep-link URLs that users can use to initiate task-completion actions for this POI, such as booking or food ordering.
Example
Example
lastUpdated
Requirement: OptionalType:
string (ISO 8601 date-time)
The timestamp of the last update to this POI record. Format: yyyy-MM-ddTHH:mm:ssZ.
Example
Example
Object definitions
Name · Address · Location · OperatingInfo · OperatingHours · SpecialHours · Media · Photo · Ratings · Review · User · Award · Ranking · Relationships · Attribute · ServiceLists · EVChargingPort · EVConnector · MonetaryValue · ActionUrls · DescriptionName object
Represents a business name in a specific locale.Example
Example
Address object
Represents a physical address for a POI.Conditional rule for stateOrRegion
stateOrRegion is required for all countries except France (FR), Spain (ES), and Great Britain (GB). For those three countries, stateOrRegion is optional.
Example (US)
Example (US)
Example (France): stateOrRegion not required
Example (France): stateOrRegion not required
Location object
Geographic coordinate data for the POI.Example
Example
OperatingInfo object
Describes the hours of operation and closure status for a POI.Example
Example
OperatingHours object
Represents operating hours for a single day of the week.Example
Example
SpecialHours object
Represents operating hours for a specific date (for example, a public holiday or special event).Example (holiday closure)
Example (holiday closure)
Example (reduced hours)
Example (reduced hours)
Media object
Container for business photos and imagery.Example
Example
Photo object
Represents a single photo or image.Example
Example
Ratings object
Aggregated ratings, reviews, awards, and ranking information for the POI.Example
Example
Review object
Represents a single customer review.Example
Example
User object
Represents a reviewer.Example
Example
Award object
Represents an award or recognition received by the POI.Example
Example
Ranking object
Represents curated ranking information for the POI.Example
Example
Relationships object
Defines how a POI relates to other POIs or business entities.Example (store inside a mall)
Example (store inside a mall)
Attribute object
Detailed characteristics of the POI. All sub-fields are objects with string key-value pairs unless otherwise noted.Example
Example
ServiceLists object
For EV charging station POIs, useattributes.services.chargingPorts to provide detailed port-level data.
EVChargingPort object
Represents a single EV charging port.EVConnector object
Represents a specific charging connector.Example
Example
MonetaryValue object
Represents a monetary amount with currency.Example
Example
ActionUrls object
Deep-link URLs that users can use to initiate task-completion actions.Example
Example
Description object
A locale-specific text description of the business.Example
Example
Format and validation rules
Date and time formats
Coordinate format
Geographic coordinates must use thegeo: URI scheme:
- Latitude: -90.0 to 90.0
- Longitude: -180.0 to 180.0
-
geo:47.5951,-122.3326 -
geo:-33.8688,151.2093
-
47.5951,-122.3326(missinggeo:prefix) -
geo:47.5951, -122.3326(space not allowed)
URL format
All URL fields must:- Begin with
http://orhttps:// - Contain no spaces
Locale codes
Regular expression pattern:^[a-z]{2}-[A-Z]{2}$
Country codes
Regular expression pattern:^[A-Z]{2}$ — two uppercase letters.
Currency codes
Regular expression pattern:^[A-Z]{3}$ — three uppercase letters.
Monetary value
Thevalue field in MonetaryValue objects must be a decimal string.
Sample JSON data
The following is a complete sample POI record demonstrating all key fields:Sample JSON POI data
Sample JSON POI data
FAQs
The following FAQs cover common questions about the POI data schema. Q: When isstateOrRegion required?
stateOrRegion is required for all countries except France (FR), Spain (ES), and Great Britain (GB). For all other countries, such as the United States, Canada, Germany, Japan, and Australia, you must include a value for stateOrRegion.
Q: My business doesn’t have fixed hours. What should I submit?
If hours vary significantly or are unavailable, omit the operatingInfo.hours array entirely. Don’t submit placeholder or estimated hours. If the business has no set hours but is always open, set each day’s entry with "isOpen": true, "open": "00:00:00", and "close": "23:59:59".
Q: What happens if I don’t provide location coordinates?
Alexa+ attempts to geocode the address to derive coordinates. However, geocoded coordinates may be less precise than Global Positioning System (GPS)-accurate coordinates. This is particularly true for businesses in dense urban areas, large campuses, or malls. Amazon strongly recommends that you provide location.navigationPosition for all records. If you omit displayPosition, Alexa+ automatically uses navigationPosition as the display position.
Q: Can a POI have multiple addresses?
Yes. The address field is an array that accepts multiple entries to support locale-specific translations of the same physical address. For example, a Japanese POI can include the same address in both English and Japanese locales. Don’t use this array to submit different physical addresses.
Q: Should I include alexaSupportedActions?
Yes. For enabling booking or appointments, set this to ["BOOKING"]. For enabling food ordering, set this to ["DELIVERY"]. If you support both, set it to ["BOOKING", "DELIVERY"].
Q: How should I handle permanently closed POIs?
Set operatingInfo.isClosed to true. Don’t delete the record from your feed immediately. Alexa+ needs the record to process the closure and suppress the POI from results. You may remove the record from future feeds after confirming the closure has been processed.
Q: How should I handle temporarily closed POIs?
Use operatingInfo.temporarilyClosedUntil with the last date that the POI is closed in yyyy-MM-dd format. Don’t set isClosed to true for temporary closures, as that signals a permanent closure.
Q: The rating field goes to 10 but most services use a 5-star scale. Should I convert?
Yes, normalize your ratings to the 0–10 scale before submission. For example, submit a 4.25 out of 5 rating as 8.5.
Q: Are there any fields I shouldn’t include if I don’t have data?
Yes, omit fields for which you have no data rather than submitting empty strings or null values. The schema uses additionalProperties: false, which means any unexpected fields or improperly typed values cause validation failures.
Q: What’s the id field used for?
The id is the stable, unique key for this POI across all submissions. Alexa+ uses it to match incoming updates to existing POI records, deduplicate submissions, and manage deletions. If you need to merge two records, contact your Alexa+ Solutions Architect team.

