Skip to main content

Validation rules for brand URLs including App Store validation, presence requirements, format checks, and UTM restrictions

URLs​

AppStoreUrlMustBeValid​

Preconditions
type is IOS_APP
DefinitionSeverityAPISampleMode
Validate that an App Store url is valid
VIOLATION
POST_AND_PUT
S

CountryCodeTopLevelDomainNotSupported​

DefinitionSeverityAPISampleMode
Validate that a URL's ccTLD corresponds with a supported country
VIOLATION
POST_AND_PUT
Link
S
note

In addition to the countries/regions listed in Unsupported Regions, Brand also rejects the cn (China) ccTLD.

Example Validation Report
{
"code": "VALIDATION__CountryCodeTopLevelDomainNotSupported",
"severity": "VIOLATION",
"message": "Support for 'url' value '{{value}}' not available",
"context": {
"value": "http://example.ru"
},
"details": {
"createdDate": "2026-10-10T21:00:59.865Z",
"submitted": [
{
"field": "$.brandDetails.urls[0].url",
"value": "http://example.ru"
}
],
"compared": [],
"expected": []
}
}

UrlsMustBePresent​

DefinitionSeverityAPISampleMode
Validate that urls is present (organization type OWNER or AGENCY)
WARNING
POST_AND_PUT
Link
S
Validate that urls is present (any other organization type)
VIOLATION
POST_AND_PUT
Link
S

UrlsUrlLengthMustNotExceedMaximum​

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

UrlsTypeMustBeDistinct​

DefinitionSeverityAPISampleMode
Validate that each type is distinct
VIOLATION
POST_AND_PUT
S

UrlsTypeMustBePresent​

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​

DefinitionSeverityAPISampleMode
Validate that url is present
VIOLATION
POST_AND_PUT
Link
S

UrlsUrlMustHaveValidFormat​

DefinitionSeverityAPISampleMode
Validate that url value's format is valid
VIOLATION
POST_AND_PUT
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

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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.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": "$.brandDetails.urls[0].url",
"value": "https://example.com/page"
}
],
"compared": [],
"expected": []
}
}