Location display names validation rules for length, locales, primary flags, and content requirements
Change Detection
LocationNameCasingChange
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name casing is unchanged between last version and latest submittal |
UnexpectedDisplayNamesPronunciationChange
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is updated when pronunciation has been updated in latest submittal |
UnexpectedPrimaryLocationNameChange
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the name selected as Primary is unchanged between last version and latest submittal |
Cross-feature
DisplayNamesLocaleNotMatchedByKeywordsOtherLocale
| Preconditions |
|---|
Keywords other is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale matches a Keywords Other locale | Link |
DisplayNamesLocaleNotMatchedByKeywordsProductsLocale
| Preconditions |
|---|
Keywords products is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale matches a Keywords Products locale |
DisplayNamesLocaleNotMatchedByKeywordsServicesLocale
| Preconditions |
|---|
Keywords services is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale matches a Keywords Services locale |
DisplayNamesLocaleNotMatchedByPhoneNumbersDescriptionsLocale
| Preconditions |
|---|
Phone Number descriptions is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale matches a Phone Numbers Descriptions locale |
DisplayNamesLocaleNotMatchedBySpecialHoursDescriptionsLocale
| Preconditions |
|---|
Special Hours descriptions is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale matches a Special Hours Descriptions locale |
DissimilarPrimaryLocationNameLocaleAndMainAddressLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that a primary Name's locale matches the locale associated with the Main Address |
LocationPrimaryDisplayNamesNameNotMatched
| Preconditions |
|---|
| Apple Business portal user |
orgId resolves to organization that is location owner |
Brand Preferences: Allow Location Name Override = NO, Cascade Name = AS_PRIMARY |
| Location and brand primary display name primary language tags match |
| Business type is any |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the location primary display name exactly matches a brand primary display name |
LocationPrimaryDisplayNamesNameNotMatchedWithBrandName
| Preconditions |
|---|
| Not a Apple Business portal user |
orgId resolves to organization that is location owner |
Brand Preferences: Allow Location Name Override = NO, Cascade Name = AS_PRIMARY |
| Location and brand primary display name primary language tags match |
| Business type is any |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the location primary display name exactly matches a brand primary display name | Link |
Display Names
CountOfValuesInDisplayNamesListExceedsThreshold
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the count of displayNames values in a list does not exceed one hundred seventy-eight (178) |
DisplayNamesListMustNotIncludeNulls
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a list does not include null |
DisplayNamesMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that displayNames are present | Link |
DisplayNamesMustNotBeEmptyArray
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that displayNames is not an empty array |
Locale
DisplayNamesIncludesUnsupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that an unsupported locale value is not present | Link |
DisplayNamesLocaleMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is valid | Link |
DisplayNamesLocaleMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is present | Link |
DisplayNamesLocaleMustBeDistinct
| Preconditions |
|---|
Display Names name values match |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that each locale is distinct | Link |
DisplayNamesLocaleMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locale is not an empty string | Link |
DisplayNamesRequiresAtLeastOneSupportedLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) supported locale is present | Link |
MustHaveOnlyOnePrimaryNamePerLocale
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that no more than one (1) locale is primary |
Name
DisplayNamesNameIsEntirelyNumeric
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the name value is not entirely numeric |
Example Validation Report
{
"code": "VALIDATION__DisplayNamesNameIsEntirelyNumeric",
"severity": "INFO",
"message": "'name' value is entirely numeric",
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.displayNames[0].name",
"value": "76"
}
],
"compared": [],
"expected": []
}
}
DisplayNamesNameMustNotBeDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is not exclusively dummy characters | Link |
DisplayNamesNameMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name length does not exceed a maximum value (255) |
DisplayNamesNameMustExceedMinimum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name length exceeds a minimum value (2) |
DisplayNamesNameMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is present | Link |
DisplayNamesNameMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is not an empty string |
DisplayNamesNameMustNotIncludeURL
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name does not include a URL | Link |
DisplayNamesIncludesNounSynonymousWithOperations
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name does not include a noun (synonym) suspected to indicate the operating purpose of the location | Link |
DisplayNamesNameHasSuspectedNounSynonymousWithOperations
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
name is noun (synonym) indicating the operational purpose of the location | Link |
DisplayNamesNameIsAllLowerCase
| Preconditions |
|---|
| Name is at least three (3) alpha characters in length (excluding white space) |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is not entirely lower case |
DisplayNamesNameIsAllUpperCase
| Preconditions |
|---|
| Name is at least three (3) alpha characters in length (excluding white space) |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is not entirely upper case |
DisplayNamesNameMustNotIncludeVulgarWord
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name does not include a vulgar word |
Example Validation Report
{
"code": "VALIDATION__DisplayNamesNameMustNotIncludeVulgarWord",
"message": "'name' includes localized or universally vulgar words: '{{vulgarWords}}'",
"severity": "VIOLATION",
"context": {
"vulgarWords": [
"xxxx"
]
},
"details": {
"submitted": [
{
"field": "$.locationDetails.displayNames[0].name",
"value": "xxxx"
}
],
"createdDate": "2026-06-13T21:29:31.657Z",
"compared": [],
"expected": []
}
}
DisplayNamesNameHasSuspectedUnintentionalSequentialWordRepetition
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name does not include an unintentional repetitive sequence of words | Link |
DisplayNamesNameHasUnsupportedCharacter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name does not include an unsupported character | Link |
Primary
AtLeastOnePrimaryNameMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that at least one (1) primary is present |
DisplayNamesPrimaryFlagMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that primary is present | Link |
Pronunciation
DisplayNamesPronunciationMustNotBeDummyCharacters
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that pronunciation is not exclusively dummy characters | Link |
DisplayNamesPronunciationMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that pronunciation is not an empty string |
DisplayNamesPronunciationMustNotBeEntirelyNumeric
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the pronunciation value is not entirely numeric |
DisplayNamesPronunciationMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that pronunciation length does not exceed a maximum value (255) |
DisplayNamesPronunciationMustExceedMinimum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that pronunciation length exceeds a minimum value (5) |
DisplayNamesPronunciationMustNotIncludeVulgarWord
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that pronunciation does not include a vulgar word |