AssetFaceResponseDto
Asset face with person
| Field | Required | Description |
|---|---|---|
boundingBoxX1 | Yes | Bounding box X1 coordinate |
boundingBoxX2 | Yes | Bounding box X2 coordinate |
boundingBoxY1 | Yes | Bounding box Y1 coordinate |
boundingBoxY2 | Yes | Bounding box Y2 coordinate |
correctedAt | Yes | When a person last corrected this face (moved, resized, reassigned or unassigned it), or null |
hiddenAt | Yes | When the owner hid this face, or null. Hidden faces are only listed with withHidden |
id | Yes | Face ID |
imageHeight | Yes | Image height in pixels |
imageWidth | Yes | Image width in pixels |
person | Yes | See definition below |
revision | Yes | Changes whenever this face changes; send it back as expectedRevision so a correction made against an older face is refused with 409 |
sourceType | No | See definition below |
Complete definition
required lists fields that must be present. nullable allows a null value; it does not make the field optional. Response enums retain exact wire values for compatibility.
Field definitions: PersonResponseDto, SourceType
{
"description": "Asset face with person",
"properties": {
"boundingBoxX1": {
"description": "Bounding box X1 coordinate",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"boundingBoxX2": {
"description": "Bounding box X2 coordinate",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"boundingBoxY1": {
"description": "Bounding box Y1 coordinate",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"boundingBoxY2": {
"description": "Bounding box Y2 coordinate",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"correctedAt": {
"description": "When a person last corrected this face (moved, resized, reassigned or unassigned it), or null",
"format": "date-time",
"nullable": true,
"type": "string"
},
"hiddenAt": {
"description": "When the owner hid this face, or null. Hidden faces are only listed with withHidden",
"format": "date-time",
"nullable": true,
"type": "string"
},
"id": {
"description": "Face ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"imageHeight": {
"description": "Image height in pixels",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"imageWidth": {
"description": "Image width in pixels",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"person": {
"allOf": [
{
"$ref": "#/components/schemas/PersonResponseDto"
}
],
"nullable": true
},
"revision": {
"description": "Changes whenever this face changes; send it back as expectedRevision so a correction made against an older face is refused with 409",
"type": "string"
},
"sourceType": {
"$ref": "#/components/schemas/SourceType"
}
},
"required": [
"boundingBoxX1",
"boundingBoxX2",
"boundingBoxY1",
"boundingBoxY2",
"correctedAt",
"hiddenAt",
"id",
"imageHeight",
"imageWidth",
"person",
"revision"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.