Skip to main content

Location miscellaneous validation rules for feature compatibility and configuration requirements

OrgIsRejected​

Preconditions
orgId resolves to organization that is location owner
DefinitionSeverityAPISampleMode
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)
VIOLATION
POST_AND_PUT
S
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
DefinitionSeverityAPISampleMode
Validate that orgId resolves to organization that is verified
VIOLATION
POST_AND_PUT
S

CountOfAgencyLocationsExceedsThreshold​

Preconditions
Exclude DELETED resources
Organization resolves to third-party partner, not location owner
Organization is portal user only. (No API access)
DefinitionSeverityAPISampleMode
Validate that the count of organization locations does not exceed the limit
VIOLATION
POST
S
EnvironmentLimit
Production100,000
AIE1,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
DefinitionSeverityAPISampleMode
Validate that the count of unverified organization locations does not exceed the limit
VIOLATION
POST
S
EnvironmentLimit
Production100
AIE1,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
DefinitionSeverityAPISampleMode
Validate that the count of verified organization locations does not exceed the limit
VIOLATION
POST
S
EnvironmentLimit
Production100,000
AIE1,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​

DefinitionSeverityAPISampleMode
Validate that a location resource is eligible to participate in conflation
VIOLATION
POST_AND_PUT
A
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
DefinitionSeverityAPISampleMode
Validate that the submitted displayNames and displayPoint have not significantly diverged from the claimed conflated record
WARNING
POST
S
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​

DefinitionSeveritySample InputReferenceMode
Validate that a POI (conflated record) is not suppressed in Apple Maps
INFO
POST_AND_PUT
A
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 ofDescriptionApple Maps impact
SUPPRESSED_CHINA_SBSMChina SBSM regulatory suppressionPOI is not displayed to users inside China. Fully visible outside China.
SUPPRESSED_GENERALGeneral suppressionPOI may not be displayed in Apple Maps. Refer to specific reason code(s) for more information.
SUPPRESSED_NAMEPOI legitimately has no name.POI is not displayed in Apple Maps.
SUPPRESSED_POLYGONPolygon suppressionPOI is displayed in Apple Maps.
SUPPRESSED_POLYGON_IN_HIKING_AREAPolygon suppressed in hiking areaPOI is displayed in Apple Maps.
SUPPRESSED_POLYGON_REVGEOReverse geocoding polygon suppressionPOI is displayed in Apple Maps.
SUPPRESSED_POLYGON_UNVALIDATEDUnvalidated polygon suppressionPOI is displayed in Apple Maps.
SUPPRESSED_SHELLPOI no longer has data. Validation report may be followed or preceded by generation of PROCESSING__LocationPlaceCardURLChanged codePOI 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.

Claim​

LocationAlreadyClaimedBySameOrganization​

Preconditions
orgId resolves to organization that is location owner
DefinitionSeverityAPISampleMode
Validate that a location is not already claimed by the same organization
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__LocationAlreadyClaimedBySameOrganization",
"severity": "VIOLATION",
"message": "Location resolves to a POI that's already claimed by your organization. Delete this duplicate location, or update it if it is intended to represent a different POI.",
"details": {
"createdDate": "2026-10-10T11:36:02.00Z",
"submitted": [
{
"field": "id",
"value": "9467895078742654452" /*Latest claim*/
}
],
"compared": [
{
"field": "id",
"value": "9467895078742654451" /*Existing claimed location*/
}
],
"expected": []
}
}

Confidence Level​

SuspiciousRemovalOfConfidenceLevel​

DefinitionSeverityAPISampleMode
Validate that confidenceLevel is present when previously submitted
WARNING
PUT
S

ConfidenceLevelMustBeWithinValidRange​

DefinitionSeverityAPISampleMode
Validate that the confidenceLevel value is within a valid range
VIOLATION
POST_AND_PUT
Link
S

Geometry​

SuspiciousRemovalOfGeometry​

DefinitionSeverityAPISampleMode
Validate that geometry is present when previously submitted
WARNING
PUT
S

GeometryCoordinatesMustBeSufficientlyPrecise​

DefinitionSeverityAPISampleMode
Validate that latitude and longitude values possess minimum precision (5 decimal places)
VIOLATION
POST_AND_PUT
Link
S

GeometryLatLongMustNotBeZero​

DefinitionSeverityAPISampleMode
Validates that values of latitude and longitude are not both zero
VIOLATION
POST_AND_PUT
S

GeometryMustHaveValidFormat​

DefinitionSeverityAPISampleMode
Validate that geometry has valid formatting
VIOLATION
POST_AND_PUT
S

GeometryMustNotBeEmpty​

DefinitionSeverityAPISampleMode
Validate that geometry is not an empty string
VIOLATION
POST_AND_PUT
S

WkbGeometryMustBeAnAcceptedType​

DefinitionSeverityAPISampleMode
Validate that geometry is an accepted type
WARNING
POST_AND_PUT
A

Location​

UndeleteOperationNotSupported​

DefinitionSeverityAPISampleMode
Validate that the location was deleted less than 90 days ago
VIOLATION
UNDELETE
S
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
DefinitionSeverityAPISampleMode
Validate that the updated location does not exactly match the previous stored record
VIOLATION
PUT
A
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​

DefinitionSeverityAPISampleMode
Validate that partnersLocationVersion is not an empty string
VIOLATION
POST_AND_PUT
S

PartnersLocationVersionIsMatched​

DefinitionSeverityAPISampleMode
Validate that partnersLocationVersion is not matched
WARNING
PUT
A

PartnersLocationVersionHasUnsupportedCharacter​

DefinitionSeverityAPISampleMode
Validate that partnersLocationVersion does not include an unsupported character
VIOLATION
POST_AND_PUT
Link
S

Resource State​

Store Code​

StoreCodeMustNotBeEmpty​

DefinitionSeverityAPISampleMode
Validate that storeCode is not an empty string
VIOLATION
POST_AND_PUT
S

StoreCodeMustNotExceedMaximum​

DefinitionSeverityAPISampleMode
Validate that storeCode length does not exceed a maximum value (255)
VIOLATION
POST_AND_PUT
S

StoreCodeMustNotIncludeURL​

DefinitionSeverityAPISampleMode
Validate that storeCode does not include a URL
VIOLATION
POST_AND_PUT
Link
S

StoreCodeHasUnsupportedCharacter​

DefinitionSeverityAPISampleMode
Validate that storeCode does not include an unsupported character
VIOLATION
POST_AND_PUT
Link
S