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
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__UrlsUrlIncludesUnsupportedFragment",
"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": []
}
}

UrlsUrlMustPassUrlScan​

DefinitionSeverityAPISampleMode
Validate that url passes security checks not covered by the rules above
VIOLATION
POST_AND_PUT
A
{{reason}}
INTERNAL_SERVER_ERROR
Example Validation Report
{
"code": "VALIDATION__UrlsUrlMustPassUrlScan",
"message": "URL rejected for reason: '{{reason}}'",
"severity": "VIOLATION",
"context": {
"reason": "INTERNAL_SERVER_ERROR"
},
"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",
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [],
"compared": [],
"expected": []
}
}

CountOfValuesInUrlsListExceedsThreshold​

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

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

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
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