Skip to main content

Location URLs validation rules for format, security, content restrictions, and accessibility requirements

Brand

BrandHomePageUrlAuthorityNotMatchedInLocationHomePageUrl

Preconditions
Referenced brand's urls lists HOMEPAGE
Location urls lists HOMEPAGE
Location Verification Required is CONDITIONAL and rule that authorities must match applies
DefinitionSeverityAPISampleMode
Validate that respective authorities match
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__BrandHomePageUrlAuthorityNotMatchedInLocationHomePageUrl",
"severity": "VIOLATION",
"message": "Authority in '{{value}}' does not match brand",
"context": {
"value": "https://www.authority.com"
},
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.urls[type = 'HOMEPAGE'].url",
"value": "https://www.authority.com"
}
],
"compared": [
{
"field": "$.brandDetails.urls[type = 'HOMEPAGE'].url",
"value": "https://www.unmatched-authority.com"
}
],
"expected": []
}
}

Change Detection

CountOfUrlTypesIncreased

DefinitionSeverityAPISampleMode
Validate that the count of types in latest submittal is less than or matches the count in the stored record
INFO
POST_AND_PUT
A

SuspiciousRemovalOfUrls

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

UnexpectedHomePageUrlChange

DefinitionSeverityAPISampleMode
Validate that the url selected as HOMEPAGE is unchanged between last version and latest submittal
WARNING
PUT
S

UnexpectedUrlsTypeChange

DefinitionSeverityAPISampleMode
Validate that a url, unchanged between last version and latest submittal, has the same type
WARNING
PUT
S

Security

UrlsUrlIsMalformed

DefinitionSeverityAPISampleMode
Validate that url has expected variables
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlIsMalformed",
"message": "URL is malformed",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "http://www.exam ple.com"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlIsNotParseable

DefinitionSeverityAPISampleMode
Validate that url is parseable
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlIsNotParseable",
"message": "URL is not parseable",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "httpsexamplecom/page"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlIncludesUnsupportedFragment

DefinitionSeverityAPISampleMode
Validate that url does not include an unsupported fragment
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlIsNotParseable",
"message": "URL includes unsupported fragment",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example.com/page#unsupportedfragment"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlProtocolIsNotSupported

DefinitionSeverityAPISampleMode
Validate that the url protocol is https or http
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlProtocolIsNotSupported",
"message": "Protocol must be `https` or `http`",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "ftp://public.ftp-servers.example.com/mydirectory/myfile.txt"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlPortNumberIsNotSupported

DefinitionSeverityAPISampleMode
Validate that the port number is in the range 1 to 65535
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlPortNumberIsNotSupported",
"message": "Port number must be in range 1 to 65535",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example.com/page"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlDomainOrAddressIsNotSupported

DefinitionSeverityAPISampleMode
Validate that the hostname is an FQDN, or IPv4 or IPv6 address
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlDomainOrAddressIsNotSupported",
"message": "Hostname must be FQDN, or IPv4 or IPv6 address",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example_page.com"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlFQDNHostnameIsNotResolvable

DefinitionSeverityAPISampleMode
Validate that an FQDN hostname is resolvable
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlFQDNHostnameIsNotResolvable",
"message": "FQDN hostname is not resolvable",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example_page.com"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlIPAddressIsNotSupported

DefinitionSeverityAPISampleMode
Validate that the resolved IP or the IP within the hostname is supported
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlIPAddressIsNotSupported",
"message": "IP Address is not supported",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example_page.com"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlContentExceedsMaxFileSize

DefinitionSeverityAPISampleMode
Validate that content byte size does not exceed threshold
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlContentExceedsMaxFileSize",
"message": "Content exceeds maximum allowed size",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example.com/page"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlContentNotDownloadedSuccessfully

DefinitionSeverityAPISampleMode
Validate that content is downloaded successfully and that content byte size does not exceed threshold
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlContentNotDownloadedSuccessfully",
"message": "Content could not be downloaded. Or, downloaded content exceeds maximum allowed size",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example.com/page"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlContentMimeTypeNotSupported

DefinitionSeverityAPISampleMode
Validate that MIME type is valid and supported
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlContentMimeTypeNotSupported",
"message": "Content MIME type is invalid or unsupported",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example.com/page"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlContentMimeTypeDiscrepancy

DefinitionSeverityAPISampleMode
Validate that content's detected MIME type matches the expected MIME type
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlContentMimeTypeDiscrepancy",
"message": "Detected MIME type does not match expected MIME type",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example.com/page"
}
],
"compared": [],
"expected": []
}
}

UrlsUrlContentFailedVirusScan

DefinitionSeverityAPISampleMode
Validate that content passes a virus scan check
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__UrlsUrlContentFailedVirusScan",
"message": "Content failed virus scan",
"severity": "VIOLATION",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "https://example.com/page"
}
],
"compared": [],
"expected": []
}
}

URL

CountryCodeTopLevelDomainNotAllowedForOrgType

Preconditions
orgId resolves to organization that is location owner
DefinitionSeverityAPISampleMode
Validate that URL's ccTLD is not cn
WARNING
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__CountryCodeTopLevelDomainNotAllowedForOrgType",
"severity": "WARNING",
"message": "Country support for your organization type is not available"
}

CountOfValuesInUrlsListExceedsThreshold

DefinitionSeverityAPISampleMode
Validate that the count of urls values in a list does not exceed six (6)
VIOLATION
POST_AND_PUT
S

CountryCodeTopLevelDomainNotSupported

DefinitionSeverityAPISampleMode
Validate that a URL's ccTLD corresponds with a supported country
WARNING
POST_AND_PUT
Link
S
Example Validation Report
{
"code": "VALIDATION__CountryCodeTopLevelDomainNotSupported",
"severity": "WARNING",
"message": "Support for 'url' value '{{value}}' not available",
"context": {
"value": "http://example.ru"
},
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.urls[0].url",
"value": "http://example.ru"
}
],
"compared": [],
"expected": []
}
}

LocationUrlsMustNotBeEmptyArray

DefinitionSeverityAPISampleMode
Validate that urls is not an empty array
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__LocationUrlsMustNotBeEmptyArray",
"message": "'{{field}}' must be omitted or contain at least one element; empty arrays are not allowed.",
"severity": "VIOLATION",
"context": {
"field": "urls"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.urls",
"value": "[]"
}
],
"createdDate": "2026-03-03T13:58:43.946Z"
}
}

UrlsListMustNotIncludeNulls

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

UrlsLengthMustNotExceedMaximum

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

UrlsListMustNotContainNulls

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

UrlsMustBeDistinct

DefinitionSeverityAPISampleMode
Validate that each url value is distinct
VIOLATION
POST_AND_PUT
Link
S

UrlsNotPresent

DefinitionSeverityAPISampleMode
Validate that urls (recommended features) are present
WARNING
POST_AND_PUT
Link
S

UrlShouldHaveExpectedAuthority

DefinitionSeverityAPISampleMode
Validate that a url includes the expected authority
VIOLATION
POST_AND_PUT
Link
S
Example Validation Report
{
"code": "VALIDATION__UrlShouldHaveExpectedAuthority",
"severity": "VIOLATION",
"message": "Expected authority for type not present in '{{url}}'",
"context": {
"field": "url",
"value": "https://play.google.com/store/search?q=yelp&c=apps"
},
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.urls[1].url",
"value": "https://play.google.com/store/search?q=yelp&c=apps"
}
],
"compared": [],
"expected": []
}
}

UrlsTypeMustBePresent

Preconditions
urls is present
DefinitionSeverityAPISampleMode
Validate that type is present
VIOLATION
POST_AND_PUT
Link
S

UrlsTypeMustBeValid

DefinitionSeverityAPISampleMode
Validate that type value is valid
VIOLATION
POST_AND_PUT
Link
S

UrlsTypeMustNotBeEmpty

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

UrlsUrlMustBePresent

Preconditions
urls is present
DefinitionSeverityAPISampleMode
Validate that url is present
VIOLATION
POST_AND_PUT
Link
S

UrlsUrlMustNotBeEmpty

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

UrlsUrlMustNotIncludeUtmParameter

DefinitionSeverityAPISampleMode
Validate that url does include UTM parameter(s)
VIOLATION
POST_AND_PUT
Link
S

UrlsUrlMustHaveValidFormat

DefinitionSeverityAPISampleMode
Validate that url has valid formatting
VIOLATION
POST_AND_PUT
Link
S