Validation rules for photo URLs including format validation, change detection, UTM parameters, and length restrictions
Change Detection
PhotosThumbnailMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that all of following are unchanged among versions: url, pixelHeight and pixelWidth |
PhotosSmallMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that all of following are unchanged among versions: url, pixelHeight and pixelWidth |
PhotosMediumMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that all of following are unchanged among versions: url, pixelHeight and pixelWidth |
PhotosLargeMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that all of following are unchanged among versions: url, pixelHeight and pixelWidth |
PhotosXLargeMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that all of following are unchanged among versions: url, pixelHeight and pixelWidth |
PhotosXXLargeMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that all of following are unchanged among versions: url, pixelHeight and pixelWidth |
PhotosOriginalMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that all of following are unchanged among versions: url, pixelHeight and pixelWidth |
ImageIdMustNotBeUpdated
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that imageId is unchanged among versions |
SuspiciousRemovalOfCoordinates
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that coordinates are unchanged among versions |
Filename Extension
FilenameExtensionMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that filename at end of url is valid and entirely in lower case | Link |
URL
PhotosThumbnailURLMustBePresent
| Preconditions |
|---|
thumbnail is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is present | Link |
PhotosSmallURLMustBePresent
| Preconditions |
|---|
small is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is present | Link |
PhotosMediumURLMustBePresent
| Preconditions |
|---|
medium is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is present | Link |
PhotosLargeURLMustBePresent
| Preconditions |
|---|
large is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is present | Link |
PhotosXLargeURLMustBePresent
| Preconditions |
|---|
xlarge is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is present | Link |
PhotosXXLargeURLMustBePresent
| Preconditions |
|---|
xxlarge is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is present | Link |
PhotosOriginalURLMustBePresent
| Preconditions |
|---|
original is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is present | Link |
PhotosThumbnailURLMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is not an empty string |
PhotosSmallURLMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is not an empty string |
PhotosMediumURLMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is not an empty string |
PhotosLargeURLMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is not an empty string |
PhotosXLargeURLMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is not an empty string |
PhotosXXLargeURLMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is not an empty string |
PhotosOriginalURLMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url is not an empty string |
PhotosThumbnailURLMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url value's format is valid |
PhotosSmallURLMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url value's format is valid |
PhotosMediumURLMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url value's format is valid |
PhotosLargeURLMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url value's format is valid |
PhotosXLargeURLMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url value's format is valid |
PhotosXXLargeURLMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url value's format is valid |
PhotosOriginalURLMustHaveValidFormat
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url value's format is valid |
PhotosThumbnailUrlMustNotIncludeUtmParameter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url does not include UTM parameter(s) | Link |
PhotosSmallUrlMustNotIncludeUtmParameter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url does include UTM parameter(s) | Link |
PhotosMediumUrlMustNotIncludeUtmParameter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url does include UTM parameter(s) | Link |
PhotosLargeUrlMustNotIncludeUtmParameter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url does include UTM parameter(s) | Link |
PhotosXLargeUrlMustNotIncludeUtmParameter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url does include UTM parameter(s) | Link |
PhotosXXLargeUrlMustNotIncludeUtmParameter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url does include UTM parameter(s) | Link |
PhotosOriginalUrlMustNotIncludeUtmParameter
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url does include UTM parameter(s) | Link |
PhotosThumbnailUrlLengthMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url length does not exceed a maximum value (255) |
PhotosSmallUrlLengthMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url length does not exceed a maximum value (255) |
PhotosMediumUrlLengthMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url length does not exceed a maximum value (255) |
PhotosLargeUrlLengthMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url length does not exceed a maximum value (255) |
PhotosXLargeUrlLengthMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url length does not exceed a maximum value (255) |
PhotosXXLargeUrlLengthMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url length does not exceed a maximum value (255) |
PhotosOriginalUrlLengthMustNotExceedMaximum
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that url length does not exceed a maximum value (255) |
UrlAccessOrPhotoDownloadFailure
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a photo can be successfully accessed and downloaded from a URL |
| Access/Download Failure Reason |
|---|
| After multiple retry attempts, final attempt returns any of 404 Not Found, 409 Conflict, or 410 Gone HTTP Status |
| After multiple retry attempts, final attempt returns a non-standard error |
| After multiple retry attempts, final connection attempt is timed out |
| Photo size is greater than 20MB |
Example Validation Report
{
"code": "VALIDATION__UrlAccessOrPhotoDownloadFailure",
"severity": "VIOLATION",
"message": "Photo with Apple-generated '{{id}}' rejected.",
"context": {
"id": "9467895078742654976"
},
"details": {
"createdDate": "2026-02-10T11:36:02.000Z",
"compared": [],
"expected": [],
"submitted": []
}
}