Location miscellaneous validation rules for feature compatibility and configuration requirements
OrgIsRejected
| Preconditions |
|---|
orgId resolves to organization that is location owner |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that orgId does not resolve to an organization that is REJECTED or if more information has been requested from the organization (REQUEST_FOR_INFO) |
Example Validation Report
{
"code": "VALIDATION__OrgIsRejected",
"message": "Organization must not be rejected",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-03-23T15:48:48.596Z",
"submitted": [],
"compared": [],
"expected": []
}
}
OrgIsNotVerified
| Preconditions |
|---|
orgId resolves to organization that is a third-party partner, not location owner |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that orgId resolves to organization that is verified |
CountOfAgencyLocationsExceedsThreshold
| Preconditions |
|---|
Exclude DELETED resources |
| Organization resolves to third-party partner, not location owner |
| Organization is portal user only. (No API access) |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the count of organization locations does not exceed the limit |
| Environment | Limit |
|---|---|
| Production | 100,000 |
| AIE | 1,000 |
note
Only an approved (verified) agency is permitted to manage locations
Example Validation Report
{
"code": "VALIDATION__CountOfAgencyLocationsExceedsThreshold",
"message": "Count of locations cannot exceed one hundred thousand (100,000)",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-03-23T15:48:48.596Z",
"submitted": [],
"compared": [],
"expected": []
}
}
CountOfUnverifiedOwnerLocationsExceedsThreshold
| Preconditions |
|---|
Exclude DELETED resources |
Organization type is OWNER |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the count of unverified organization locations does not exceed the limit |
| Environment | Limit |
|---|---|
| Production | 100 |
| AIE | 1,000 |
Example Validation Report
{
"code": "VALIDATION__CountOfUnverifiedOwnerLocationsExceedsThreshold",
"message": "Count of locations cannot exceed one hundred (100)",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-03-23T15:48:48.596Z",
"submitted": [],
"compared": [],
"expected": []
}
}
CountOfVerifiedOwnerLocationsExceedsThreshold
| Preconditions |
|---|
Exclude DELETED resources |
orgId resolves to organization that is a third-party partner, not location owner |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the count of verified organization locations does not exceed the limit |
| Environment | Limit |
|---|---|
| Production | 100,000 |
| AIE | 1,000 |
Example Validation Report
{
"code": "VALIDATION__CountOfVerifiedOwnerLocationsExceedsThreshold",
"message": "Count of locations cannot exceed one hundred thousand (100,000)",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-03-23T15:48:48.596Z",
"submitted": [],
"compared": [],
"expected": []
}
}
LocationExcluded
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a location resource is eligible to participate in conflation |
Example Validation Report
{
"code": "VALIDATION__LocationExcluded",
"message": "Location not published for reason '{{reason}}'",
"severity": "VIOLATION",
"context": {
"reason": "VENDOR_PLACE_IGNORED",
"id": "1563008884544638590"
},
"details": {
"createdDate": "2026-03-23T15:48:48.596Z",
"submitted": [],
"compared": [],
"expected": []
}
}
ClaimedLocationSignificantlyModified
| Preconditions |
|---|
| Apple Business portal user |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the submitted displayNames and displayPoint have not significantly diverged from the claimed conflated record |
Example Validation Report
{
"code": "VALIDATION__ClaimedLocationSignificantlyModified",
"message": "Claimed location appears to have been significantly modified from its Apple Maps record",
"severity": "WARNING",
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.claimedLocation.feature",
"value": "123456789"
}
],
"createdDate": "2026-10-10T11:36:02.00Z"
}
}
PoiSuppressedInAppleMaps
| Definition | Severity | Sample Input | Reference | Mode |
|---|---|---|---|---|
| Validate that a POI (conflated record) is not suppressed in Apple Maps |
Example Validation Report
{
"code": "VALIDATION__PoiSuppressedInAppleMaps",
"message": "POI is subject to an Apple Maps suppression condition: '{{reason}}'",
"severity": "INFO",
"context": {
"reason": "SUPPRESSED_GENERAL, SUPPRESSED_NAME"
},
"details": {
"compared": [],
"expected": [],
"submitted": [],
"createdDate": "2026-03-23T15:48:48.596Z"
}
}
Reason Codes
{{reason}} any of | Description | Apple Maps impact |
|---|---|---|
SUPPRESSED_CHINA_SBSM | China SBSM regulatory suppression | POI is not displayed to users inside China. Fully visible outside China. |
SUPPRESSED_GENERAL | General suppression | POI may not be displayed in Apple Maps. Refer to specific reason code(s) for more information. |
SUPPRESSED_NAME | POI legitimately has no name. | POI is not displayed in Apple Maps. |
SUPPRESSED_POLYGON | Polygon suppression | POI is displayed in Apple Maps. |
SUPPRESSED_POLYGON_IN_HIKING_AREA | Polygon suppressed in hiking area | POI is displayed in Apple Maps. |
SUPPRESSED_POLYGON_REVGEO | Reverse geocoding polygon suppression | POI is displayed in Apple Maps. |
SUPPRESSED_POLYGON_UNVALIDATED | Unvalidated polygon suppression | POI is displayed in Apple Maps. |
SUPPRESSED_SHELL | POI no longer has data. Validation report may be followed or preceded by generation of PROCESSING__LocationPlaceCardURLChanged code | POI record exists only as a forwarding reference. POI may not be independently represented in Apple Maps. |
note
{{reason}} may contain one or more comma-separated reason codes if a POI is affected by multiple suppression conditions simultaneously.
Confidence Level
SuspiciousRemovalOfConfidenceLevel
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that confidenceLevel is present when previously submitted |
ConfidenceLevelMustBeWithinValidRange
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the confidenceLevel value is within a valid range | Link |
Geometry
SuspiciousRemovalOfGeometry
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that geometry is present when previously submitted |
GeometryCoordinatesMustBeSufficientlyPrecise
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude and longitude values possess minimum precision (5 decimal places) | Link |
GeometryLatLongMustNotBeZero
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validates that values of latitude and longitude are not both zero |
GeometryMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that geometry has valid formatting |
GeometryMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that geometry is not an empty string |
WkbGeometryMustBeAnAcceptedType
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that geometry is an accepted type |
Location
UndeleteOperationNotSupported
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the location was deleted less than 90 days ago |
Example Validation Report
{
"code": "VALIDATION__UndeleteOperationNotSupported",
"message": "Undelete operation is not supported for locations that have been deleted 90 days ago or more",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-03-23T15:48:48.596Z",
"submitted": [],
"compared": [],
"expected": []
}
}
UpdatedLocationShouldNotMatchExistingLocation
| Preconditions |
|---|
Previous stored record's state is PUBLISHED, REJECTED, or FAILED |
| Request is not a contest submission |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that the updated location does not exactly match the previous stored record |
Example Validation Report
{
"code": "VALIDATION__UpdatedLocationShouldNotMatchExistingLocation",
"severity": "VIOLATION",
"message": "Updated Location exactly matches previous existing stored record",
"details": {
"createdDate": "2026-03-23T15:48:48.596Z",
"submitted": [],
"compared": [],
"expected": []
}
}
Partners Location Version
PartnersLocationVersionMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that partnersLocationVersion is not an empty string |
PartnersLocationVersionIsMatched
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that partnersLocationVersion is not matched |
PartnersLocationVersionHasUnsupportedCharacter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that partnersLocationVersion does not include an unsupported character | Link |
Resource State
Store Code
StoreCodeMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that storeCode is not an empty string |
StoreCodeMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that storeCode length does not exceed a maximum value (255) |
StoreCodeMustNotIncludeURL
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that storeCode does not include a URL | Link |
StoreCodeHasUnsupportedCharacter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that storeCode does not include an unsupported character | Link |