Skip to main content

Location categories validation rules for precision, distinctness, country restrictions, and attribute compatibility

Category

CategoriesListMustNotIncludeNulls

DefinitionSeverityAPISampleMode
Validate that a list does not include null
VIOLATION
POST_AND_PUT
S

CategoriesMustBeDistinct

DefinitionSeverityAPISampleMode
Validate that each category is distinct
VIOLATION
POST_AND_PUT
Link
S

CategoriesMustBePresent

DefinitionSeverityAPISampleMode
Validate that categories are present
VIOLATION
POST_AND_PUT
S

CategoriesMustBeValid

DefinitionSeverityAPISampleMode
Validate that category is valid
VIOLATION
POST_AND_PUT
Link
S

CategoryMustNotBeDeprecated

DefinitionSeverityAPISampleMode
Validate that category is not deprecated
VIOLATION
POST_AND_PUT
S

CategoriesMustNotBeEmpty

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

CategoriesMustNotBeEmptyArray

DefinitionSeverityAPISampleMode
Validate that categories is not an empty array
VIOLATION
POST_AND_PUT
S

CountOfItemsInCategoriesListExceedsThreshold

DefinitionSeverityAPISampleMode
Validate that the count of items in categories does not exceed twenty (20)
VIOLATION
POST_AND_PUT
S

ListShouldExcludeRedundantCategory

DefinitionSeverityAPISampleMode
Validate that a top level category is excluded when already included as period delimited value in another category
WARNING
POST_AND_PUT
Link
S

PrimaryCategoryRequiresReview

Preconditions
Brand type is "regular" or "umbrella"
DefinitionSeverityAPISampleMode
Validate that the primary category exactly matches any brand category
WARNING
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__PrimaryCategoryRequiresReview",
"severity": "WARNING",
"message": "'{{value}}' requires review",
"context": {
"value": "dining.dessert_shop.ice_cream_shop.gelato_shop"
},
"details": {
"createdDate": "2026-10-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.categories[0]",
"value": "dining.dessert_shop.ice_cream_shop.gelato_shop"
}
],
"compared": [],
"expected": []
}
}

Change Detection

TopLevelCategoryChanged

DefinitionSeverityAPISampleMode
Validate that each top level category in the latest submittal matches a top level category in the previous submittal
WARNING
PUT
Link
S

TopLevelCategoryUnmatched

DefinitionSeverityAPISampleMode
Validate that a top level category in the previous submittal is matched in the latest submittal
WARNING
PUT
Link
S

Cross-feature

UnexpectedCategoryForLocationAttribute

Preconditions
locationAttributes is present
DefinitionSeverityAPISampleMode
Validate that a listed locationAttributes value is only accompanied by values in a categories list that are expected
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__UnexpectedCategoryForLocationAttribute",
"severity": "VIOLATION",
"message": "Location attribute '{{name}}' is accompanied by unexpected location category",
"context": {
"name": "accolades.golf_digest.100_greatest_courses_in_admin_area_type"
},
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.locationAttributes[0]",
"value": {
"name": "accolades.golf_digest.100_greatest_courses_in_admin_area_type",
"value": "true"
}
},
{
"field": "$.locationDetails.categories[0]",
"value": "commercial_sector.wholesaler.industrial_supplier"
},
{
"field": "$.locationDetails.categories[1]",
"value": "commercial_sector.wholesaler.industrial_supplier.industrial_equipment_supplier.forklift_service"
}
],
"compared": [],
"expected": []
}
}

InvalidCategoryForCountry

Preconditions
structuredAddress is present
DefinitionSeverityAPISampleMode
Validate that category is valid for use with the corresponding country identified by countryCode
VIOLATION
POST_AND_PUT
S
CategoryCode
shopping.food_mart.convenience_store.spatkaufDE
dining.cafe.cannabis_cafeIL, NL
civil_service.government_office.government_department.law_enforcement_agency.police_department.police_boxJP, SG

InvalidCategoryForDerivedCountry

Preconditions
displayPoint is present
structuredAddress is not present
DefinitionSeverityAPISampleMode
Validate that category is valid for use with the corresponding country derived from the displayPoint
VIOLATION
POST_AND_PUT
A