Skip to main content

Object Analytics

Faces, licence plates, subjects, tags, zones and detections.

Every path on this page is plugin-scoped: {pluginInstalledId} is the id of the module instance you are talking to, from Plugins. A deployment can run more than one instance of the same module, and the id is what tells them apart.

140 endpoints. Every one needs Authorization: Bearer <access token>; see Getting Started.

Permissions

The server authorises every call against the signed-in user's permission keys — the same keys the client is held to. For this module they are the ObjectAnalytics*, FaceRec* and Oa* key families. See the Permission Keys reference.

Aggregate get fields​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-get-fieldsAggregate get fields

Aggregate get numeric fields​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-get-numeric-fieldsAggregate get numeric fields

Aggregate grouping get fields​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-grouping-get-fieldsAggregate grouping get fields

Aggregate grouping get fields2​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-grouping-get-fields2Aggregate grouping get fields2

Aggregate grouping submit query​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-grouping-submit-queryAggregate grouping submit query

Aggregate grouping summary query​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-grouping-summary-queryAggregate grouping summary query

Aggregate numeric segments submit query​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-numeric-segments-submit-queryGets all possible numeric aggregated values for the requested aggregate fields, broken up by number of seconds.

Aggregate numeric submit query​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-numeric-submit-queryGets all possible numeric aggregated values for the requested aggregate fields

Aggregate report​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/aggregate-reportAggregate report

POST oa/plugins/{pluginInstalledId}/aggregate-report​

Aggregate report.

Payload

Request body

{
"queryType": "string",
"entities": [
"3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
],
"columnQueries": [
{
"columnName": "Example",
"columnQuery": "string",
"columnQueryTypeId": 42,
"columnQueryId": 42,
"referenceDenominator": true
}
],
"uptoTime": "2026-10-02T21:14:05Z",
"blockMinuteResolution": 42,
"iterations": 42
}

Response

{
"whereParameters": [
"string"
],
"options": [
"string"
],
"uptoTime": "2026-10-02T21:14:05Z",
"blockResolution": 42,
"iterations": 42,
"aggregateReportGroupItems": [
{
"startingTime": "2026-10-02T21:14:05Z",
"endingTime": "2026-10-02T21:14:05Z",
"iteration": 42,
"entities": [
{}
]
}
],
"processingTime": 42,
"columnQueries": [
{
"columnName": "Example",
"columnQuery": "string",
"columnQueryTypeId": 42,
"columnQueryId": 42,
"referenceDenominator": true
}
]
}

Aggregate report2​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/aggregate-report2Aggregate report2

POST oa/plugins/{pluginInstalledId}/aggregate-report2​

Aggregate report2.

Payload

Request body

{
"queryType": "string",
"entities": [
"3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
],
"columnQueries": [
{
"columnName": "Example",
"columnQuery": "string",
"columnQueryTypeId": 42,
"columnQueryId": 42,
"referenceDenominator": true
}
],
"uptoTime": "2026-10-02T21:14:05Z",
"blockMinuteResolution": 42,
"iterations": 42,
"whereParams": [
"string"
],
"options": [
"string"
]
}

Response

{
"whereParameters": [
"string"
],
"options": [
"string"
],
"uptoTime": "2026-10-02T21:14:05Z",
"blockResolution": 42,
"iterations": 42,
"aggregateReportGroupItems": [
{
"startingTime": "2026-10-02T21:14:05Z",
"endingTime": "2026-10-02T21:14:05Z",
"iteration": 42,
"entities": [
{}
]
}
],
"processingTime": 42,
"columnQueries": [
{
"columnName": "Example",
"columnQuery": "string",
"columnQueryTypeId": 42,
"columnQueryId": 42,
"referenceDenominator": true
}
]
}

Aggregate submit query​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/aggregate-submit-queryAggregate submit query

Entity attachments​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/entity-attachmentsEntity attachment get all
DELETEoa/plugins/{pluginInstalledId}/entity-attachments/{publicId}Entity attachment remove
PUToa/plugins/{pluginInstalledId}/entity-attachments/{publicId}Entity attachment update
GEToa/plugins/{pluginInstalledId}/entity-attachments/limitsEntity attachment limits get

PUT oa/plugins/{pluginInstalledId}/entity-attachments/{publicId}​

Entity attachment update.

ParameterInRequiredType
publicIdpathyesuuid
Payload

Request body

{
"fileName": "Example",
"description": "Example description"
}

Response

{
"publicId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"ownerType": 1,
"ownerId": 42,
"fileName": "Example",
"description": "Example description",
"mimeType": "string",
"byteSize": 42,
"contentSha256": "string",
"createdByUserId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"updatedByUserId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"createdUtc": "2026-10-02T21:14:05Z",
"updatedUtc": "2026-10-02T21:14:05Z",
"hasPreview": true
}

Expired records​

MethodPathWhat it does
DELETEoa/plugins/{pluginInstalledId}/expired-recordsRemove expired records

Face rec​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/face-rec/server-settingsFace rec server settings get

Fusion data​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/fusion-data/queryFusion data view query

POST oa/plugins/{pluginInstalledId}/fusion-data/query​

Fusion data view query.

ParameterInRequiredType
oldestTimequerynodate-time
newestTimequerynodate-time
queryIdquerynouuid
maxRecordsquerynoint32
pagequerynoint32
recordsPerPagequerynoint32
orderByquerynostring
Payload

Request body

[
"string"
]

Response

{
"resultsList": [
{
"dataOwnerId": 42,
"dataTimeStamp": "2026-10-02T21:14:05Z",
"fusionId": 42,
"keyId": 42,
"name": "Example",
"pluginInstalledId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"regionId": 42,
"rowId": 42,
"seconds": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"valueDec": 125.5,
"utcOffset": 42
}
],
"totalRecordCount": 125.5,
"currentPage": 42,
"recordsPerPage": 42,
"whereParameters": [
"string"
],
"orderBy": "string",
"queryTime": 42,
"queryId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"timeNewest": "2026-10-02T21:14:05Z",
"timeOldest": "2026-10-02T21:14:05Z"
}

Fusion references​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/fusion-referencesFusion reference get all

Job action delete​

MethodPathWhat it does
DELETEoa/plugins/{pluginInstalledId}/job-action-deleteJob action delete

Job action execute​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/job-action-executeJob action execute

POST oa/plugins/{pluginInstalledId}/job-action-execute​

Job action execute.

Payload

Request body

{
"jobActionId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}

Job action get all​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/job-action-get-allJob action get all

Job action get by id​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/job-action-get-by-idJob action get by id

Job action save​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/job-action-saveJob action save

POST oa/plugins/{pluginInstalledId}/job-action-save​

Job action save.

Payload

Request body

{
"utcOffset": 42,
"userJobs": [
{
"jobId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"cronExpression": "string",
"jobActionId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"jobName": "Example",
"jobType": 42,
"pluginInstalledId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"schedulerJobId": "string",
"timeZone": "string",
"userGroupId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"userId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"createdByUserName": "Example",
"jobActionId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"createdBy": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"createdOn": "2026-10-02T21:14:05Z",
"jobActionConfig": "string",
"jobActionType": "string",
"lastUpdatedOn": "2026-10-02T21:14:05Z",
"parentId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"parentType": "string"
}

Response

{
"utcOffset": 42,
"userJobs": [
{
"jobId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"cronExpression": "string",
"jobActionId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"jobName": "Example",
"jobType": 42,
"pluginInstalledId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"schedulerJobId": "string",
"timeZone": "string",
"userGroupId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"userId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"createdByUserName": "Example",
"jobActionId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"createdBy": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"createdOn": "2026-10-02T21:14:05Z",
"jobActionConfig": "string",
"jobActionType": "string",
"lastUpdatedOn": "2026-10-02T21:14:05Z",
"parentId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"parentType": "string"
}

License plate detections​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/license-plate-detectionsLicense plates detected view query
POSToa/plugins/{pluginInstalledId}/license-plate-detectionsLicense plates detected insert batch

POST oa/plugins/{pluginInstalledId}/license-plate-detections​

License plates detected insert batch.

Payload

Request body

[
{
"dataTimeStamp": "2026-10-02T21:14:05Z",
"detector": "string",
"images": [
{
"cropSizeId": 42,
"imageData": "BASE64DATA",
"imageTypeId": 42
}
],
"plate": "string",
"timeZone": "string",
"direction": 42,
"make": "string",
"model": "string",
"color": "string",
"state": "string"
}
]

License plate detectors​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/license-plate-detectorsLicense plate detector get all
PUToa/plugins/{pluginInstalledId}/license-plate-detectorsLicense plate detector save
DELETEoa/plugins/{pluginInstalledId}/license-plate-detectors/{lpDetectorId}License plate detector remove
GEToa/plugins/{pluginInstalledId}/license-plate-detectors/{lpDetectorId}License plate detector get
POSToa/plugins/{pluginInstalledId}/license-plate-detectors/{targetDetectorId}/mergeLicense plate detectors merge

PUT oa/plugins/{pluginInstalledId}/license-plate-detectors​

License plate detector save.

Payload

Request body

{
"timeZoneString": "string",
"pluginEntityItem": {
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
},
"capabilities": [
42
],
"pluginAssociations": [
{
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
}
],
"lpDetectorId": 42,
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"detectorType": "string",
"familiarId": "string",
"familiarName": "Example",
"isDisabled": true,
"timeZone": "string",
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"updated": "2026-10-02T21:14:05Z"
}

Response

{
"timeZoneString": "string",
"pluginEntityItem": {
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
},
"capabilities": [
42
],
"pluginAssociations": [
{
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
}
],
"lpDetectorId": 42,
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"detectorType": "string",
"familiarId": "string",
"familiarName": "Example",
"isDisabled": true,
"timeZone": "string",
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"updated": "2026-10-02T21:14:05Z"
}

POST oa/plugins/{pluginInstalledId}/license-plate-detectors/{targetDetectorId}/merge​

License plate detectors merge.

ParameterInRequiredType
targetDetectorIdpathyesint32
sourceDetectorIdsquerynoarray
Payload

License plate notify tags​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/license-plate-notify-tagsLicense plate notify tags view query
GEToa/plugins/{pluginInstalledId}/license-plate-notify-tags/similarLicense plate notify tags similar view query

License plate tag associations​

MethodPathWhat it does
PUToa/plugins/{pluginInstalledId}/license-plate-tag-associationsLicense plate tag association update

PUT oa/plugins/{pluginInstalledId}/license-plate-tag-associations​

License plate tag association update.

Payload

Request body

{
"timeZone": "string",
"lpId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}

Response

{
"timeZone": "string",
"lpId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}

License plates​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/license-platesLicense plate get all
PUToa/plugins/{pluginInstalledId}/license-platesLicense plate save
GEToa/plugins/{pluginInstalledId}/license-plates/{licensePlateId}/tags/{subjectTagId}License plate tag association get
DELETEoa/plugins/{pluginInstalledId}/license-plates/{lpId}License plate remove
GEToa/plugins/{pluginInstalledId}/license-plates/{lpId}License plate get
PUToa/plugins/{pluginInstalledId}/license-plates/{lpId}/tags/{subjectTagId}License plate tag associate
GEToa/plugins/{pluginInstalledId}/license-plates/queryLicense plate query
GEToa/plugins/{pluginInstalledId}/license-plates/similarLicense plate generate similar1
GEToa/plugins/{pluginInstalledId}/license-plates/statsLicense plate stats view query
GEToa/plugins/{pluginInstalledId}/license-plates/tag-statsLicense plate tag stats view query

PUT oa/plugins/{pluginInstalledId}/license-plates​

License plate save.

Payload

Request body

{
"apiVersion": 42,
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"licensePlateTagsAssoc": [
{
"timeZone": "string",
"lpId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"lpId": 42,
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"notes": "string",
"plate": "string",
"similar1": "string",
"updated": "2026-10-02T21:14:05Z",
"vehicleColor": "string",
"vehicleMake": "string",
"vehicleModel": "string",
"vehicleState": "string"
}

Response

{
"apiVersion": 42,
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"licensePlateTagsAssoc": [
{
"timeZone": "string",
"lpId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"lpId": 42,
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"notes": "string",
"plate": "string",
"similar1": "string",
"updated": "2026-10-02T21:14:05Z",
"vehicleColor": "string",
"vehicleMake": "string",
"vehicleModel": "string",
"vehicleState": "string"
}

PUT oa/plugins/{pluginInstalledId}/license-plates/{lpId}/tags/{subjectTagId}​

License plate tag associate.

ParameterInRequiredType
lpIdpathyesint32
subjectTagIdpathyesint32
addquerynoboolean
Payload

Logical group filter add​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/logical-group-filter-addLogical group filter add

POST oa/plugins/{pluginInstalledId}/logical-group-filter-add​

Logical group filter add.

Payload

Request body

[
{
"filterId": 42,
"logicalGroupId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"referenceId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
]

Logical group filter get all​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/logical-group-filter-get-allLogical group filter get all

Logical group filter get all by logical group ids​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/logical-group-filter-get-all-by-logical-group-idsLogical group filter get all by logical group ids

Logical group filter remove​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/logical-group-filter-removeLogical group filter remove

POST oa/plugins/{pluginInstalledId}/logical-group-filter-remove​

Logical group filter remove.

Payload

Request body

[
{
"filterId": 42,
"logicalGroupId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"referenceId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
]

Logical group filter remove by logical group id​

MethodPathWhat it does
DELETEoa/plugins/{pluginInstalledId}/logical-group-filter-remove-by-logical-group-idLogical group filter remove by logical group id

Logical group filter remove by reference id​

MethodPathWhat it does
DELETEoa/plugins/{pluginInstalledId}/logical-group-filter-remove-by-reference-idLogical group filter remove by reference id

Notify options​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/notify-optionsSubject notify options get all
PUToa/plugins/{pluginInstalledId}/notify-optionsSubject notify option save
DELETEoa/plugins/{pluginInstalledId}/notify-options/{subjectNotifyId}Subject notify option remove

PUT oa/plugins/{pluginInstalledId}/notify-options​

Subject notify option save.

Payload

Request body

{
"apiVersion": 42,
"associatedDetectorIds": [
42
],
"associatedLprDetectorIds": [
42
],
"subjectNotifyId": 42,
"advancedConfig": "string",
"alertPriority": 42,
"appEmail": "string",
"appPopup": true,
"appSms": "string",
"dataOwnerId": 42,
"debounceSeconds": 42,
"description": "Example description",
"instructions": "string",
"isDisabled": true,
"notifyName": "Example"
}

Response

{
"apiVersion": 42,
"associatedDetectorIds": [
42
],
"associatedLprDetectorIds": [
42
],
"subjectNotifyId": 42,
"advancedConfig": "string",
"alertPriority": 42,
"appEmail": "string",
"appPopup": true,
"appSms": "string",
"dataOwnerId": 42,
"debounceSeconds": 42,
"description": "Example description",
"instructions": "string",
"isDisabled": true,
"notifyName": "Example"
}

Object data​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/object-dataObject data insert batch
POSToa/plugins/{pluginInstalledId}/object-data/queryObject data view query

POST oa/plugins/{pluginInstalledId}/object-data​

Object data insert batch.

Payload

Request body

[
{
"regionId": 42,
"objectCount": 3,
"objectIn": 42,
"objectOut": 42,
"dataTimeStamp": "2026-10-02T21:14:05Z"
}
]

POST oa/plugins/{pluginInstalledId}/object-data/query​

Object data view query.

ParameterInRequiredType
oldestTimequerynodate-time
newestTimequerynodate-time
queryIdquerynouuid
maxRecordsquerynoint32
pagequerynoint32
recordsPerPagequerynoint32
orderByquerynostring
Payload

Request body

[
"string"
]

Response

{
"resultsList": [
{
"analyticType": "string",
"dataOwnerId": 42,
"dataTimeStamp": "2026-10-02T21:14:05Z",
"name": "Example",
"objectCount": 3,
"objectIn": 42,
"objectOut": 42,
"regionId": 42,
"rowId": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"utcOffset": 42
}
],
"totalRecordCount": 125.5,
"currentPage": 42,
"recordsPerPage": 42,
"whereParameters": [
"string"
],
"orderBy": "string",
"queryTime": 42,
"queryId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"timeNewest": "2026-10-02T21:14:05Z",
"timeOldest": "2026-10-02T21:14:05Z"
}

Query count query​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/query-count-queryQuery count query

Query get all​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/query-get-allQuery get all

Query get by id​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/query-get-by-idQuery get by id

Query remove​

MethodPathWhat it does
DELETEoa/plugins/{pluginInstalledId}/query-removeQuery remove

Query save​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/query-saveQuery save

POST oa/plugins/{pluginInstalledId}/query-save​

Query save.

Payload

Request body

{
"createdByName": "Example",
"queryId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"alertsEnabled": true,
"createdByUserId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"dataOwnerID": 42,
"isDisabled": true,
"isPrivate": true,
"queryData": "string",
"queryDescription": "Example description",
"queryEditorData": "string",
"queryName": "Example",
"queryTypeId": 42,
"viewId": 42
}

Response

{
"createdByName": "Example",
"queryId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"alertsEnabled": true,
"createdByUserId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"dataOwnerID": 42,
"isDisabled": true,
"isPrivate": true,
"queryData": "string",
"queryDescription": "Example description",
"queryEditorData": "string",
"queryName": "Example",
"queryTypeId": 42,
"viewId": 42
}

Query subscription add​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/query-subscription-addAllow user to add subscription to different BI events

Query subscription add batch​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/query-subscription-add-batchQuery subscription add batch

POST oa/plugins/{pluginInstalledId}/query-subscription-add-batch​

Query subscription add batch.

Payload

Request body

[
{
"queryId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"entityUniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"userId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
]

Query subscription get all​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/query-subscription-get-allAllow user to remove subscription

Query subscription remove​

MethodPathWhat it does
DELETEoa/plugins/{pluginInstalledId}/query-subscription-removeQuery subscription remove

Query subscription remove batch​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/query-subscription-remove-batchQuery subscription remove batch

POST oa/plugins/{pluginInstalledId}/query-subscription-remove-batch​

Query subscription remove batch.

Payload

Request body

[
{
"queryId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"entityUniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"userId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
]

Region setting lookups​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/region-setting-lookupsRegion setting lookup get all
PUToa/plugins/{pluginInstalledId}/region-setting-lookupsRegion setting lookup save all

PUT oa/plugins/{pluginInstalledId}/region-setting-lookups​

Region setting lookup save all.

Payload

Request body

[
{
"dataOwnerId": 42,
"systemTypeName": "Example",
"analyticType": "string",
"settingKey": "string",
"settingDescription": "Example description"
}
]

Regions​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/regionsRegion get all
PUToa/plugins/{pluginInstalledId}/regionsRegion save
DELETEoa/plugins/{pluginInstalledId}/regions/{regionId}Region remove
GEToa/plugins/{pluginInstalledId}/regions/{regionId}Region get by region id
GEToa/plugins/{pluginInstalledId}/regions/by-fusion-id/{fusionId}Region get by fusion id

PUT oa/plugins/{pluginInstalledId}/regions​

Region save.

Payload

Request body

{
"settings": [
{
"regionId": 42,
"keyName": "Example",
"keyValue": "string"
}
],
"pluginEntityItem": {
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
},
"capabilities": [
42
],
"pluginAssociations": [
{
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
}
],
"timeZoneString": "string",
"regionId": 42,
"analyticType": "string",
"dataOwnerId": 42,
"isDisabled": true,
"name": "Example",
"systemTypeName": "Example",
"timeZone": "string",
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}

Response

{
"settings": [
{
"regionId": 42,
"keyName": "Example",
"keyValue": "string"
}
],
"pluginEntityItem": {
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
},
"capabilities": [
42
],
"pluginAssociations": [
{
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
}
],
"timeZoneString": "string",
"regionId": 42,
"analyticType": "string",
"dataOwnerId": 42,
"isDisabled": true,
"name": "Example",
"systemTypeName": "Example",
"timeZone": "string",
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/semantic-searchStreams similarity-ranked semantic search results (text or image query) from the AI engine. This is a streaming operation: the generated HTTP action returns the enumerable directly and SignalR streams each row. Results are fully open (session-validated, no per-camera filtering) and the call is audit-logged. Pre-stream failures (feature disabled, invalid session, engine unavailable) throw before the first row; mid-stream failures terminate the stream.
GEToa/plugins/{pluginInstalledId}/semantic-search/availabilityReports whether semantic search is available for this plugin instance: enable-gate, message-bus configuration, and the active AI model's identity and text-matching capability.
GEToa/plugins/{pluginInstalledId}/semantic-search/classificationsSemantic search get classifications
GEToa/plugins/{pluginInstalledId}/semantic-search/detectorsSemantic search get detectors
POSToa/plugins/{pluginInstalledId}/semantic-search/embedSemantic search embed
POSToa/plugins/{pluginInstalledId}/semantic-search/images/fetchFetches a single semantic search result crop by (ImageSource, SourceImageId), using the on-disk resize cache first and the distributed AI image RPC on a miss.

POST oa/plugins/{pluginInstalledId}/semantic-search​

Streams similarity-ranked semantic search results (text or image query) from the AI engine. This is a streaming operation: the generated HTTP action returns the enumerable directly and SignalR streams each row. Results are fully open (session-validated, no per-camera filtering) and the call is audit-logged. Pre-stream failures (feature disabled, invalid session, engine unavailable) throw before the first row; mid-stream failures terminate the stream..

Payload

Request body

{
"queryText": "string",
"queryImage": "BASE64DATA",
"fromUnixMs": 42,
"toUnixMs": 42,
"includeDetectorNames": [
"string"
],
"excludeDetectorNames": [
"string"
],
"minScore": 125.5,
"maxResults": 42,
"includeClassifiers": [
"string"
],
"excludeClassifiers": [
"string"
],
"includeClassifications": [
"string"
],
"imageSources": [
"string"
],
"queryEmbedding": [
125.5
],
"modelContentHash": "string",
"prompts": [
{
"text": "string",
"weight": 125.5,
"isNegative": true
}
]
}

Response

[
{
"imageSource": "string",
"sourceImageId": "string",
"detectorName": "Example",
"capturedAtUnixMs": 42,
"score": 125.5,
"hasLocalImage": true,
"modelName": "Example",
"classification": "string",
"dataKind": "string",
"parentImageId": "string"
}
]

POST oa/plugins/{pluginInstalledId}/semantic-search/embed​

Semantic search embed.

Payload

Request body

{
"texts": [
"string"
],
"images": [
"BASE64DATA"
]
}

Response

{
"textEmbeddings": [
{
"index": 42,
"text": "string",
"embedding": [
125.5
]
}
],
"imageEmbeddings": [
{
"index": 42,
"text": "string",
"embedding": [
125.5
]
}
],
"modelName": "Example",
"modelContentHash": "string",
"embeddingDim": 42
}

POST oa/plugins/{pluginInstalledId}/semantic-search/images/fetch​

Fetches a single semantic search result crop by (ImageSource, SourceImageId), using the on-disk resize cache first and the distributed AI image RPC on a miss..

Payload

Request body

{
"imageSource": "string",
"sourceImageId": "string",
"maxX": 42,
"maxY": 42,
"compression": 42
}

Response

{
"image": "BASE64DATA",
"imageType": "string",
"notFound": true
}

Subject associated data notify​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-associated-data-notifySubject associated data notify

POST oa/plugins/{pluginInstalledId}/subject-associated-data-notify​

Subject associated data notify.

Payload

Request body

{
"detectorIds": [
"3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
]
}

Subject detections​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/subject-detectionsSubject data view query
POSToa/plugins/{pluginInstalledId}/subject-detectionsSubjects detected insert batch
DELETEoa/plugins/{pluginInstalledId}/subject-detections/{detectId}Subject detection delete
POSToa/plugins/{pluginInstalledId}/subject-detections/closeSubject detections close batch
GEToa/plugins/{pluginInstalledId}/subject-detections/demographicsSubject detection demographic view query
GEToa/plugins/{pluginInstalledId}/subject-detections/tagsSubject data tag view query

POST oa/plugins/{pluginInstalledId}/subject-detections​

Subjects detected insert batch.

Payload

Request body

[
{
"subject": "string",
"subjectRef": "string",
"device": "string",
"dataTimeStamp": "2026-10-02T21:14:05Z",
"timeZone": "string",
"age": 42,
"gender": "string",
"detectorType": "string",
"confidence": 125.5
}
]

POST oa/plugins/{pluginInstalledId}/subject-detections/close​

Subject detections close batch.

Payload

Request body

[
{
"subjectRef": "string",
"lastDetectionUtc": "2026-10-02T21:14:05Z"
}
]

Subject detectors​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/subject-detectorsSubject detectors query
PUToa/plugins/{pluginInstalledId}/subject-detectorsSubject detector save
DELETEoa/plugins/{pluginInstalledId}/subject-detectors/{subjectDetectorId}Subject detector remove
POSToa/plugins/{pluginInstalledId}/subject-detectors/{targetDetectorId}/mergeSubject detectors merge

PUT oa/plugins/{pluginInstalledId}/subject-detectors​

Subject detector save.

Payload

Request body

{
"pluginEntityItem": {
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
},
"capabilities": [
42
],
"pluginAssociations": [
{
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
}
],
"timeZoneString": "string",
"detectorId": 42,
"dataOwnerId": 42,
"detectorType": "string",
"familiarId": "string",
"familiarName": "Example",
"isDisabled": true,
"timeZone": "string",
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}

Response

{
"pluginEntityItem": {
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
},
"capabilities": [
42
],
"pluginAssociations": [
{
"pluginInstalledID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"pluginType": 42,
"remoteID": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"properties": 42,
"orderIndex": 42
}
],
"timeZoneString": "string",
"detectorId": 42,
"dataOwnerId": 42,
"detectorType": "string",
"familiarId": "string",
"familiarName": "Example",
"isDisabled": true,
"timeZone": "string",
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}

POST oa/plugins/{pluginInstalledId}/subject-detectors/{targetDetectorId}/merge​

Subject detectors merge.

ParameterInRequiredType
targetDetectorIdpathyesint32
sourceDetectorIdsquerynoarray
Payload

Subject face enroll additional​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-face-enroll-additionalSubject face enroll additional

POST oa/plugins/{pluginInstalledId}/subject-face-enroll-additional​

Subject face enroll additional.

Payload

Request body

{
"faceId": "string",
"imageBytes": "BASE64DATA",
"minimumSimilarity": 125.5
}

Subject face incorrect match​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-face-incorrect-matchSubject face incorrect match

POST oa/plugins/{pluginInstalledId}/subject-face-incorrect-match​

Subject face incorrect match.

Payload

Request body

{
"faceId": "string",
"detectId": "string"
}

Response

{
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{
"address": {
"addressId": 42,
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"country": "string",
"locality": "string",
"postalCode": "ABC123",
"region": "string"
},
"subjectId": 42,
"addressId": 42,
"associatedDate": "2026-10-02T21:14:05Z",
"primary": true
}
],
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"subjectTagsAssoc": [
{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
}

Subject face query matches​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-face-query-matchesSubject face query matches

POST oa/plugins/{pluginInstalledId}/subject-face-query-matches​

Subject face query matches.

Payload

Request body

{
"imageBytes": "BASE64DATA",
"maxResults": 42,
"minimumConfidence": 125.5
}

Response

[
{
"confidence": 125.5,
"faceId": "string"
}
]

Subject faces​

MethodPathWhat it does
DELETEoa/plugins/{pluginInstalledId}/subject-faces/{faceId}Subject face unenroll
POSToa/plugins/{pluginInstalledId}/subject-faces/{faceId}/detections/{detectId}/incorrect-matchSubject face incorrect match2
POSToa/plugins/{pluginInstalledId}/subject-faces/{faceId}/detections/{detectId}/reprocessSubject reprocess2
POSToa/plugins/{pluginInstalledId}/subject-faces/{faceId}/detections/{detectId}/splitSubject split detection2
GEToa/plugins/{pluginInstalledId}/subject-faces/{faceId}/enrollmentsSubject face get enrollment images
DELETEoa/plugins/{pluginInstalledId}/subject-faces/{faceId}/enrollments/{detectId}Subject face un enroll additional
POSToa/plugins/{pluginInstalledId}/subject-faces/images/fetchSubject face get image

POST oa/plugins/{pluginInstalledId}/subject-faces/{faceId}/detections/{detectId}/incorrect-match​

Subject face incorrect match2.

ParameterInRequiredType
faceIdpathyesstring
detectIdpathyesstring
tagNamequerynostring
Payload

Response

{
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{
"address": {
"addressId": 42,
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"country": "string",
"locality": "string",
"postalCode": "ABC123",
"region": "string"
},
"subjectId": 42,
"addressId": 42,
"associatedDate": "2026-10-02T21:14:05Z",
"primary": true
}
],
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"subjectTagsAssoc": [
{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
}

POST oa/plugins/{pluginInstalledId}/subject-faces/{faceId}/detections/{detectId}/reprocess​

Subject reprocess2.

ParameterInRequiredType
faceIdpathyesstring
detectIdpathyesstring
tagNamequerynostring
Payload

POST oa/plugins/{pluginInstalledId}/subject-faces/{faceId}/detections/{detectId}/split​

Subject split detection2.

ParameterInRequiredType
faceIdpathyesstring
detectIdpathyesstring
newFaceIdquerynostring
confidencequerynodouble
splitActionquerynoFrSplitActionEnum
Payload

POST oa/plugins/{pluginInstalledId}/subject-faces/images/fetch​

Subject face get image.

Payload

Request body

{
"detectId": "string",
"excludePhoto": true,
"faceId": "string"
}

Response

{
"faceId": "string",
"detectId": "string",
"image": "BASE64DATA",
"matchedConfidence": 125.5,
"quality": 125.5,
"enrolledImage": true,
"manualEnrollment": true,
"favoriteImage": true,
"faceStorageNotFound": true
}

Subject faces compare​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-faces-compareSubject faces compare

POST oa/plugins/{pluginInstalledId}/subject-faces-compare​

Subject faces compare.

Payload

Request body

{
"image1": "BASE64DATA",
"image2": "BASE64DATA",
"detectMatches": true
}

Response

{
"matchConfidence": 125.5,
"face1": {
"acceptable": true,
"x": 42,
"y": 42,
"width": 42,
"height": 42,
"faceId": "string",
"confidence": 125.5,
"subject": {
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{}
],
"subjectTags": [
{}
],
"subjectTagsAssoc": [
{}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
},
"quality": 125.5,
"faceImage": "BASE64DATA"
},
"face2": {
"acceptable": true,
"x": 42,
"y": 42,
"width": 42,
"height": 42,
"faceId": "string",
"confidence": 125.5,
"subject": {
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{}
],
"subjectTags": [
{}
],
"subjectTagsAssoc": [
{}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
},
"quality": 125.5,
"faceImage": "BASE64DATA"
}
}

Subject faces detect​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-faces-detectSubject faces detect

POST oa/plugins/{pluginInstalledId}/subject-faces-detect​

Subject faces detect.

Payload

Request body

{
"imageBytes": "BASE64DATA",
"detectMatches": true
}

Response

[
{
"acceptable": true,
"x": 42,
"y": 42,
"width": 42,
"height": 42,
"faceId": "string",
"confidence": 125.5,
"subject": {
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{}
],
"subjectTags": [
{}
],
"subjectTagsAssoc": [
{}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
},
"quality": 125.5,
"faceImage": "BASE64DATA"
}
]

Subject faces detect2​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-faces-detect2Subject faces detect2

POST oa/plugins/{pluginInstalledId}/subject-faces-detect2​

Subject faces detect2.

Payload

Request body

{
"imageBytes": "BASE64DATA",
"detectionOptions": {
"includeMatches": true,
"minFaceAcceptability": 125.5,
"minFaceQuality": 125.5
}
}

Response

[
{
"acceptable": true,
"x": 42,
"y": 42,
"width": 42,
"height": 42,
"faceId": "string",
"confidence": 125.5,
"subject": {
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{}
],
"subjectTags": [
{}
],
"subjectTagsAssoc": [
{}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
},
"quality": 125.5,
"faceImage": "BASE64DATA"
}
]

Subject faces enroll​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-faces-enrollSubject faces enroll

POST oa/plugins/{pluginInstalledId}/subject-faces-enroll​

Subject faces enroll.

Payload

Request body

{
"imageBytes": "BASE64DATA",
"forceEnrollment": true
}

Response

[
{
"acceptable": true,
"x": 42,
"y": 42,
"width": 42,
"height": 42,
"faceId": "string",
"confidence": 125.5,
"subject": {
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{}
],
"subjectTags": [
{}
],
"subjectTagsAssoc": [
{}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
},
"quality": 125.5,
"faceImage": "BASE64DATA"
}
]

Subject fusion​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-fusion/detectors/{detectorUniqueId}/restartSubject fusion restart detector

POST oa/plugins/{pluginInstalledId}/subject-fusion/detectors/{detectorUniqueId}/restart​

Subject fusion restart detector.

ParameterInRequiredType
detectorUniqueIdpathyesuuid
clearHistoryquerynoboolean
Payload

Subject fusion data​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/subject-fusion-dataSubject fusion view query

Subject license plate associations​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/subject-license-plate-associationsSubject license plate association query

Subject merge​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-merge/operationsStart a detached, tenant-scoped subject merge. Fields must already be saved via SubjectSave2.
GEToa/plugins/{pluginInstalledId}/subject-merge/operations/{operationId}Polling fallback; unknown and cross-tenant operation ids fault identically.
POSToa/plugins/{pluginInstalledId}/subject-merge/operations/{operationId}/cancelCooperative cancel; requires the same permissions as start.

POST oa/plugins/{pluginInstalledId}/subject-merge/operations​

Start a detached, tenant-scoped subject merge. Fields must already be saved via SubjectSave2..

Payload

Request body

{
"destinationSubjectId": 42,
"sourceSubjectIds": [
42
],
"options": {
"testMatchSkipConfidence": 125.5,
"enrollSimilarityFloor": 125.5,
"pruneQualityMax": 125.5
}
}

Response

{
"operationId": "string",
"queuePosition": 42
}

POST oa/plugins/{pluginInstalledId}/subject-merge/operations/{operationId}/cancel​

Cooperative cancel; requires the same permissions as start..

ParameterInRequiredType
operationIdpathyesstring
Payload

Subject notify tags​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/subject-notify-tagsSubject notify tags view query

Subject reprocess​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-reprocessSubject reprocess

POST oa/plugins/{pluginInstalledId}/subject-reprocess​

Subject reprocess.

Payload

Request body

{
"faceId": "string",
"detectId": "string"
}

Subject save​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-saveSubject save

POST oa/plugins/{pluginInstalledId}/subject-save​

Subject save.

Payload

Request body

{
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{
"address": {
"addressId": 42,
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"country": "string",
"locality": "string",
"postalCode": "ABC123",
"region": "string"
},
"subjectId": 42,
"addressId": 42,
"associatedDate": "2026-10-02T21:14:05Z",
"primary": true
}
],
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"subjectTagsAssoc": [
{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
}

Response

{
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{
"address": {
"addressId": 42,
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"country": "string",
"locality": "string",
"postalCode": "ABC123",
"region": "string"
},
"subjectId": 42,
"addressId": 42,
"associatedDate": "2026-10-02T21:14:05Z",
"primary": true
}
],
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"subjectTagsAssoc": [
{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
}

Subject split detection​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-split-detectionSubject split detection

POST oa/plugins/{pluginInstalledId}/subject-split-detection​

Subject split detection.

Payload

Request body

{
"faceId": "string",
"detectId": "string",
"newFaceId": "string",
"confidence": 125.5
}

Subject tag associate​

MethodPathWhat it does
POSToa/plugins/{pluginInstalledId}/subject-tag-associateSubject tag associate

POST oa/plugins/{pluginInstalledId}/subject-tag-associate​

Subject tag associate.

Payload

Request body

{
"subjectId": 42,
"subjectTagId": 42,
"add": true
}

Subject tag associations​

MethodPathWhat it does
PUToa/plugins/{pluginInstalledId}/subject-tag-associationsSubject tag association update

PUT oa/plugins/{pluginInstalledId}/subject-tag-associations​

Subject tag association update.

Payload

Request body

{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}

Response

{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}

Subject tags​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/subject-tagsSubject tags get all
PUToa/plugins/{pluginInstalledId}/subject-tagsSubject tag save
DELETEoa/plugins/{pluginInstalledId}/subject-tags/{subjectTagId}Subject tag remove
GEToa/plugins/{pluginInstalledId}/subject-tags/{subjectTagId}/license-platesLicense plates get by tag id
PUToa/plugins/{pluginInstalledId}/subject-tags/{subjectTagId}/notify-options/{subjectNotifyId}Subject notify option associate
GEToa/plugins/{pluginInstalledId}/subject-tags/{subjectTagId}/subjectsSubjects get by tag id
GEToa/plugins/{pluginInstalledId}/subject-tags/by-nameSubject tag get by name
GEToa/plugins/{pluginInstalledId}/subject-tags/statsSubject tag stats view query

PUT oa/plugins/{pluginInstalledId}/subject-tags​

Subject tag save.

Payload

Request body

{
"subjectNotifyOptions": [
{
"apiVersion": 42,
"associatedDetectorIds": [
42
],
"associatedLprDetectorIds": [
42
],
"subjectNotifyId": 42,
"advancedConfig": "string",
"alertPriority": 42,
"appEmail": "string",
"appPopup": true,
"appSms": "string",
"dataOwnerId": 42,
"debounceSeconds": 42,
"description": "Example description",
"instructions": "string",
"isDisabled": true,
"notifyName": "Example"
}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}

Response

{
"subjectNotifyOptions": [
{
"apiVersion": 42,
"associatedDetectorIds": [
42
],
"associatedLprDetectorIds": [
42
],
"subjectNotifyId": 42,
"advancedConfig": "string",
"alertPriority": 42,
"appEmail": "string",
"appPopup": true,
"appSms": "string",
"dataOwnerId": 42,
"debounceSeconds": 42,
"description": "Example description",
"instructions": "string",
"isDisabled": true,
"notifyName": "Example"
}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}

PUT oa/plugins/{pluginInstalledId}/subject-tags/{subjectTagId}/notify-options/{subjectNotifyId}​

Subject notify option associate.

ParameterInRequiredType
subjectTagIdpathyesint32
subjectNotifyIdpathyesint32
addquerynoboolean
Payload

Subjects​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/subjectsSubjects query
PUToa/plugins/{pluginInstalledId}/subjectsSubject save2
GEToa/plugins/{pluginInstalledId}/subjects/{subjectId}Subject get by subject id
DELETEoa/plugins/{pluginInstalledId}/subjects/{subjectId}/license-plates/{licensePlateId}Subject license plate association remove
PUToa/plugins/{pluginInstalledId}/subjects/{subjectId}/license-plates/{licensePlateId}Subject license plate association add
POSToa/plugins/{pluginInstalledId}/subjects/{subjectId}/merge-statePer-subject merge state: instant None; retained terminal; or replay+live progress.
POSToa/plugins/{pluginInstalledId}/subjects/{subjectId}/similar-facesSimilar enrolled subjects for a subject, streamed progressively. No image bytes.
GEToa/plugins/{pluginInstalledId}/subjects/{subjectId}/tags/{subjectTagId}Subject tag association get
PUToa/plugins/{pluginInstalledId}/subjects/{subjectId}/tags/{subjectTagId}Subject tag associate2
POSToa/plugins/{pluginInstalledId}/subjects/{subjectId}/zones/reprocessSubject zone subject reprocess
GEToa/plugins/{pluginInstalledId}/subjects/by-face/{faceId}Subject get by face id
GEToa/plugins/{pluginInstalledId}/subjects/searchSubject search

PUT oa/plugins/{pluginInstalledId}/subjects​

Subject save2.

ParameterInRequiredType
originquerynoSubjectSaveOriginEnum
Payload

Request body

{
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{
"address": {
"addressId": 42,
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"country": "string",
"locality": "string",
"postalCode": "ABC123",
"region": "string"
},
"subjectId": 42,
"addressId": 42,
"associatedDate": "2026-10-02T21:14:05Z",
"primary": true
}
],
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"subjectTagsAssoc": [
{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
}

Response

{
"allowNamePartsChanges": true,
"apiVersion": 42,
"subjectAddresses": [
{
"address": {
"addressId": 42,
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"country": "string",
"locality": "string",
"postalCode": "ABC123",
"region": "string"
},
"subjectId": 42,
"addressId": 42,
"associatedDate": "2026-10-02T21:14:05Z",
"primary": true
}
],
"subjectTags": [
{
"subjectNotifyOptions": [
{}
],
"apiVersion": 42,
"customTagRemovalRule": {
"removeExpiredTags": true,
"removeExpiredTagsAfterXDays": true,
"removeExpiredTagsAfterDays": 125.5,
"removeDueToInactivityAfterXDays": true,
"removeDueToInactivityDays": 125.5
},
"subjectTagId": 42,
"customRemovalRuleJson": "string",
"dataOwnerId": 42,
"defaultExpireInDays": 125.5,
"isDisabled": true,
"tagInstructions": "string",
"tagName": "Example",
"tagRemoveAction": 42,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50"
}
],
"subjectTagsAssoc": [
{
"timeZone": "string",
"subjectId": 42,
"subjectTagId": 42,
"created": "2026-10-02T21:14:05Z",
"expires": "2026-10-02T21:14:05Z"
}
],
"subjectId": 42,
"age": 42,
"alertEnabled": true,
"alertMessage": "string",
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"dateOfBirth": "2026-10-02",
"defaultImageRef": "string",
"department": "string",
"driversLicense": "string",
"eMail": "string",
"employeeID": "E-4471",
"employer": "string",
"firstName": "Example",
"gender": "string",
"incidentNumbers": "string",
"jobTitle": "string",
"knownSubject": true,
"lastName": "Example",
"lastUpdated": "2026-10-02T21:14:05Z",
"membershipNumber": "string",
"membershipTier": "string",
"middleName": "Example",
"mobileNumber": "string",
"notes": "string",
"notesShared": "string",
"subject": "string",
"subjectName": "Example",
"title": "string",
"unEnrolled": true
}

PUT oa/plugins/{pluginInstalledId}/subjects/{subjectId}/license-plates/{licensePlateId}​

Subject license plate association add.

ParameterInRequiredType
subjectIdpathyesint32
licensePlateIdpathyesint32
Payload

Response

{
"subjectId": 42,
"lpId": 42,
"created": "2026-10-02T21:14:05Z"
}

POST oa/plugins/{pluginInstalledId}/subjects/{subjectId}/merge-state​

Per-subject merge state: instant None; retained terminal; or replay+live progress..

ParameterInRequiredType
subjectIdpathyesint32
Payload

Response

[
{
"involvement": 0,
"operationId": "string",
"destinationSubjectId": 42,
"destinationSubjectName": "Example",
"progress": {
"operationId": "string",
"sequence": 42,
"state": 0,
"message": "string",
"imagesTotal": 125.5,
"imagesProcessed": 42,
"terminal": true,
"error": "string"
},
"terminal": true
}
]

POST oa/plugins/{pluginInstalledId}/subjects/{subjectId}/similar-faces​

Similar enrolled subjects for a subject, streamed progressively. No image bytes..

ParameterInRequiredType
subjectIdpathyesint32
maxResultsquerynoint32
minimumConfidencequerynodouble
Payload

Response

[
{
"faceId": "string",
"confidence": 125.5,
"subjectId": 42,
"subjectName": "Example",
"knownSubject": true,
"unEnrolled": true,
"hasNotes": true,
"hasAlertTags": true,
"mergeInProgress": true,
"defaultImageRef": "string"
}
]

PUT oa/plugins/{pluginInstalledId}/subjects/{subjectId}/tags/{subjectTagId}​

Subject tag associate2.

ParameterInRequiredType
subjectIdpathyesint32
subjectTagIdpathyesint32
addquerynoboolean
originquerynoSubjectSaveOriginEnum
Payload

POST oa/plugins/{pluginInstalledId}/subjects/{subjectId}/zones/reprocess​

Subject zone subject reprocess.

ParameterInRequiredType
subjectIdpathyesint32
Payload

Zones​

MethodPathWhat it does
GEToa/plugins/{pluginInstalledId}/zonesSubject zones query
PUToa/plugins/{pluginInstalledId}/zonesSubject zone save
DELETEoa/plugins/{pluginInstalledId}/zones/{zoneId}Subject zone remove
POSToa/plugins/{pluginInstalledId}/zones/{zoneId}/reprocessSubject zone reprocess
GEToa/plugins/{pluginInstalledId}/zones/visitsSubject zone visits query

PUT oa/plugins/{pluginInstalledId}/zones​

Subject zone save.

Payload

Request body

{
"apiVersion": 42,
"tagFilters": [
{
"zoneTagFilterId": 42,
"dataOwnerId": 42,
"filterType": 42,
"subjectTagId": 42,
"zoneId": 42
}
],
"detectors": [
{
"zoneDetectorId": 42,
"dataOwnerId": 42,
"detectorId": 42,
"direction": 42,
"zoneId": 42
}
],
"zoneId": 42,
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"entrySelectionMode": 42,
"exitSelectionMode": 42,
"isDisabled": true,
"lastUpdated": "2026-10-02T21:14:05Z",
"maxOpenVisitHours": 42,
"tagCollisionMode": 42,
"tagFilterMode": 42,
"timeZone": "string",
"trackUnknownSubjects": true,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"zoneName": "Example"
}

Response

{
"apiVersion": 42,
"tagFilters": [
{
"zoneTagFilterId": 42,
"dataOwnerId": 42,
"filterType": 42,
"subjectTagId": 42,
"zoneId": 42
}
],
"detectors": [
{
"zoneDetectorId": 42,
"dataOwnerId": 42,
"detectorId": 42,
"direction": 42,
"zoneId": 42
}
],
"zoneId": 42,
"created": "2026-10-02T21:14:05Z",
"dataOwnerId": 42,
"entrySelectionMode": 42,
"exitSelectionMode": 42,
"isDisabled": true,
"lastUpdated": "2026-10-02T21:14:05Z",
"maxOpenVisitHours": 42,
"tagCollisionMode": 42,
"tagFilterMode": 42,
"timeZone": "string",
"trackUnknownSubjects": true,
"uniqueId": "3b7f5c2e-9a41-4d8b-bb0e-7c1a2d3e4f50",
"zoneName": "Example"
}

POST oa/plugins/{pluginInstalledId}/zones/{zoneId}/reprocess​

Subject zone reprocess.

ParameterInRequiredType
zoneIdpathyesint32
Payload