Location keywords validation rules for length, content restrictions, and searchability requirements
Keyword
KeywordComponentHasUnsupportedCharacter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include an unsupported character | Link |
Keyword Other
LocationKeywordsOtherListMustNotIncludeNulls
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a list does not include null |
LocationKeywordsOtherMustNotBeEmptyArray
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that other is not an empty array |
Example Validation Report
{
"code": "VALIDATION__LocationKeywordsOtherMustNotBeEmptyArray",
"message": "'{{field}}' must be omitted or contain at least one element; empty arrays are not allowed.",
"severity": "VIOLATION",
"context": {
"field": "other"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.keywords.other",
"value": "[]"
}
],
"createdDate": "2026-03-03T13:58:43.946Z"
}
}
KeywordsOtherRequiresAtLeastOneSupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) supported locale is present | Link |
KeywordsOther_ExpectedLangTagForCountryNotPresent
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) primary language tag is present corresponding to a language expected to be spoken in the Country identified by countryCode in structuredAddress |
KeywordsOther_ExpectedLangTagForDerivedCountryNotPresent
| Preconditions |
|---|
displayPoint is present |
structuredAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) primary language tag is present corresponding to a language expected to be spoken in the Country derived from reverse geocoding Display Point coordinates |
KeywordsOther_ExpectedRegionSubtagForCountryNotPresent
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) Region Subtag is present that corresponds with countryCode in structuredAddress | Link |
KeywordsOtherIncludesUnsupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that an unsupported locale value is not present |
KeywordsOtherKeywordMustNotBeDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword is not exclusively dummy characters | Link |
KeywordsOtherKeywordMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword is not an empty string |
KeywordsOtherKeywordMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword length does not exceed a maximum value (255) |
KeywordsOtherLocaleMustBeDistinct
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that each locale is distinct |
KeywordsOtherLocaleMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is not an empty string |
KeywordsOtherKeywordMustNotIncludeURL
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include a URL | Link |
KeywordsOtherKeywordHasSuspectedPresenceOfDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include dummy characters |
KeywordsOther_SuspectedUnintentionalSequentialWordRepetition
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include an unintentional repetitive sequence of words |
Keyword Product
LocationKeywordsProductsListMustNotIncludeNulls
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a list does not include null |
LocationKeywordsProductsMustNotBeEmptyArray
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that products is not an empty array |
Example Validation Report
{
"code": "VALIDATION__LocationKeywordsProductsMustNotBeEmptyArray",
"message": "'{{field}}' must be omitted or contain at least one element; empty arrays are not allowed.",
"severity": "VIOLATION",
"context": {
"field": "products"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.keywords.products",
"value": "[]"
}
],
"createdDate": "2026-03-03T13:58:43.946Z"
}
}
KeywordsProductsRequiresAtLeastOneSupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) supported locale is present |
KeywordsProducts_ExpectedLangTagForCountryNotPresent
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) primary language tag is present corresponding to a language expected to be spoken in the Country identified by countryCode in structuredAddress |
KeywordsProducts_ExpectedLangTagForDerivedCountryNotPresent
| Preconditions |
|---|
displayPoint is present |
structuredAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) primary language tag is present corresponding to a language expected to be spoken in the Country derived from reverse geocoding Display Point coordinates |
KeywordsProducts_ExpectedRegionSubtagForCountryNotPresent
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) Region Subtag is present that corresponds with countryCode in structuredAddress | Link |
KeywordsProductsIncludesUnsupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that an unsupported locale value is not present |
KeywordsProductsKeywordHasSuspectedPresenceOfDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include dummy characters |
KeywordsProductsKeywordMustNotBeDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword is not exclusively dummy characters | Link |
KeywordsProductsKeywordMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword is not an empty string |
KeywordsProductsKeywordMustNotIncludeURL
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include a URL | Link |
KeywordsProductsKeywordMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword length does not exceed a maximum value (255) |
KeywordsProductsLocaleMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is not an empty string |
KeywordsProductsLocaleMustBeDistinct
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that each locale is distinct |
KeywordsProductsKeywordHasSuspectedUnintentionalSequentialWordRepetition
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include an unintentional repetitive sequence of words | Link |
Keyword Service
LocationKeywordsServicesListMustNotIncludeNulls
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a list does not include null |
LocationKeywordsServicesMustNotBeEmptyArray
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that services is not an empty array |
Example Validation Report
{
"code": "VALIDATION__LocationKeywordsServicesMustNotBeEmptyArray",
"message": "'{{field}}' must be omitted or contain at least one element; empty arrays are not allowed.",
"severity": "VIOLATION",
"context": {
"field": "services"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.keywords.services",
"value": "[]"
}
],
"createdDate": "2026-03-03T13:58:43.946Z"
}
}
KeywordsServicesRequiresAtLeastOneSupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) supported locale is present |
KeywordsServices_ExpectedLangTagForCountryNotPresent
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) primary language tag is present corresponding to a language expected to be spoken in the Country identified by countryCode in structuredAddress |
KeywordsProducts_ExpectedRegionSubtagForDerivedCountryNotPresent
| Preconditions |
|---|
displayPoint is present |
mainAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) Region Subtag is present that corresponds with a country derived from displayPoint |
KeywordsServices_ExpectedLangTagForDerivedCountryNotPresent
| Preconditions |
|---|
displayPoint is present |
structuredAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) primary language tag is present corresponding to a language expected to be spoken in the Country derived from reverse geocoding Display Point coordinates |
KeywordsServices_ExpectedRegionSubtagForCountryNotPresent
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) Region Subtag is present that corresponds with countryCode in structuredAddress | Link |
KeywordsServices_ExpectedRegionSubtagForDerivedCountryNotPresent
| Preconditions |
|---|
displayPoint is present |
mainAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) Region Subtag is present that corresponds with a country derived from displayPoint |
KeywordsOther_ExpectedRegionSubtagForDerivedCountryNotPresent
| Preconditions |
|---|
displayPoint is present |
mainAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) Region Subtag is present that corresponds with a country derived from displayPoint |
KeywordsServicesIncludesUnsupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that an unsupported locale value is not present |
KeywordsServicesKeywordMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword is not an empty string | Link |
KeywordsServicesLocaleMustBeDistinct
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that each locale is distinct |
KeywordsServicesKeywordMustNotBeDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword is not exclusively dummy characters | Link |
KeywordsServicesKeywordMustNotIncludeURL
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include a URL | Link |
KeywordsServicesKeywordMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword length does not exceed a maximum value (255) | Link |
KeywordsServicesLocaleMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is not an empty string |
KeywordsServicesKeywordHasSuspectedPresenceOfDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include dummy characters | Link |
KeywordsServicesKeywordHasSuspectedUnintentionalSequentialWordRepetition
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include an unintentional repetitive sequence of words |
KeywordValueDuplicatedAcrossLists
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that no keyword value is duplicated across different lists | Link |
KeywordsOtherLocaleMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is valid | Link |
KeywordsProductsLocaleMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is valid | Link |
KeywordsServicesLocaleMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is valid | Link |
SuspiciousRemovalOfKeywords
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locationKeywords is present when previously submitted |
Vulgar Text
KeywordsOtherMustNotIncludeVulgarWord
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include a vulgar word |
KeywordsProductsMustNotIncludeVulgarWord
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include a vulgar word |
KeywordsServicesMustNotIncludeVulgarWord
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that keyword does not include a vulgar word |