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

CategoryMustBePrecise

DefinitionSeverityAPISampleMode
Validate that a value is not a parent node category
VIOLATION
POST_AND_PUT
Link
S
Parent Nodes
Name
travel_and_leisure
association_or_organization
beauty_and_spa
transportation
civil_service
commercial_sector
shopping
dining
consumer_sector
health_care
natural_features
Example Validation Report
{
"code": "VALIDATION__CategoryMustBePrecise",
"severity": "VIOLATION",
"message": "'{{field}}' value '{{value}}' is a parent node. Re-submit with more precise category",
"context": {
"field": "categories",
"value": "shopping"
},
"details": {
"createdDate": "2026-03-20T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.categories"
}
],
"compared": [],
"expected": []
}
}

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

LocationHasSensitiveCategory

Preconditions
orgId resolves to organization that is location owner
DefinitionSeverityAPISampleMode
Validate that location category is not "sensitive" and subject to review
WARNING
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__LocationHasSensitiveCategory",
"severity": "WARNING",
"message": "Location category '{{value}}' is subject to review",
"context": {
"value": "travel_and_leisure.adult_entertainment_venue.strip_club"
},
"details": {
"createdDate": "2026-10-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.categories[3]",
"value": "travel_and_leisure.adult_entertainment_venue.strip_club"
}
],
"compared": [],
"expected": []
}
}

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