Download OpenAPI specification:Download
API documentation.
API is built on HTTP and is RESTful. It has predictable resource URLs and returns HTTP response codes.
Wenn ASA was founded in 2017 in Stavanger, Norway. Our innovative technology automatically detects damages on cars. By enhancing the assessment of vehicle conditions, Wenn ASA makes the rental experience more efficient and accurate, benefiting both rental companies and customers. We are developing solutions to improve damage handling. Our AI streamlines the process of detecting and documenting car damage for the whole car industry. We are focusing on taking away the pain points in the car rental process, with successful operations on major European car rental locations.
Capture sets are installed at the location and cars drive through the capture sets. There are normally one capture set for RETURN and one capture set for PICKUP. The recordings are sent to the Wenn Cloud solution were the passing is turned into an imageset and sent to the correct tenant based on the license plate assignments. Based on tenant settings, the car will receive ML damage processing
Wenn uses a JWT token. Use to make short-life tokens that expire after one hour. The token authorizes all requests and allows access to the API. A Bearer Token must be set in every API call's Authorization header.
Get statistics about annotator jobs based on timestamp range [startDate, endDate]. These parameters are given in query string. For every annotator with non zero result, it returns total annotated jobs and reviewed jobs. Also returns information about stray annotations / reviews. If startDate and endDate not given, it returns results from last 90 days. If either startDate or endDate is given, then it also returns 90 days range based on provided param.
startDate | integer <int64> Start of date range as a timestamp |
endDate | integer <int64> End of date range as a timestamp |
{- "data": {
- "numberOfStrayAnnotatedJobs": 0,
- "numberOfStrayReviewedJobs": 0,
- "result": {
- "538ef6c9-d7f4-4646-821e-6b66809f4156": {
- "annotated": 1,
- "reviewed": 0
}, - "ac821ae7-c4c5-46cb-bc7a-50ceaee1a43d": {
- "annotated": 0,
- "reviewed": 1
}, - "afe8e2e1-49c4-46db-a4fa-25d1c902f566": {
- "annotated": 7,
- "reviewed": 2
}
}
}, - "message": "statistics about annotator jobs fetched successfully",
- "success": true
}
Allows a reviewer to add themselves to the waiting queue, when no review jobs are available
reviewerId | string <uuid> Reviewer's ID |
{- "reviewerId": "047040ea-c47a-4866-8390-53451374057d"
}
{- "data": {
- "queueTime": 1672234058,
- "reviewerId": "047040ea-c47a-4866-8390-53451374057d"
}, - "message": "Reviewer successfully placed in the queue",
- "success": true
}
Returns list of capture units with it's details. Cannot fetch virtual capture units. Use GET /captureSets to fetch info about virtual rigs.
limit | integer limit number of capture units to be returned |
page | integer page number to be returned |
{- "data": {
- "items": [
- {
- "balenaId": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "captureSetId": "98731a1c-9b85-4b31-a228-f5e09b41323a",
- "defaultTenant": null,
- "id": "eb68886e-cbbb-4681-bef1-3a13a6c6dba6",
- "isVirtual": false,
- "recCount": 0,
- "relatedUnit": "49578ed9-2ea7-42b4-9d2b-79a098265197",
- "tenants": [
- {
- "id": "af91c000-af7e-4adb-a10c-204bfffcd4d5",
- "name": "Insurance Company 1"
}, - {
- "id": "cc49101e-49d1-4ce2-82c6-4f6b1824fe02",
- "name": "Fast Cars Rental"
}
]
}, - {
- "balenaId": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "captureSetId": "98731a1c-9b85-4b31-a228-f5e09b41323a",
- "defaultTenant": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "id": "49578ed9-2ea7-42b4-9d2b-79a098265197",
- "isVirtual": false,
- "recCount": 0,
- "relatedUnit": "eb68886e-cbbb-4681-bef1-3a13a6c6dba6",
- "tenants": [
- {
- "id": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "name": "Tenant"
}, - {
- "id": "cc49101e-49d1-4ce2-82c6-4f6b1824fe02",
- "name": "Fast Cars Rental"
}
]
}
]
}, - "meta": {
- "currentItemsPerPage": 2,
- "currentPage": 1,
- "lastPage": 37,
- "maxPerPage": 100,
- "totalItems": 74
}, - "success": true
}
Returns details of capture unit. Cannot fetch virtual capture unit. Use GET /captureSets to fetch info about virtual rig
id required | string <uuid> identifier of capture unit |
{- "data": {
- "balenaId": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "defaultTenant": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "id": "49578ed9-2ea7-42b4-9d2b-79a098265197",
- "isVirtual": false,
- "recCount": 0,
- "tenants": [
- {
- "id": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "name": "Tenant"
}, - {
- "id": "cc49101e-49d1-4ce2-82c6-4f6b1824fe02",
- "name": "Fast Cars Rental"
}
]
}, - "message": "Fetched capture unit details successfully",
- "success": true
}
Assign tenants to capture unit. You cannot modify virtual capture unit using this endpoint.
id required | string <uuid> identifier of capture unit |
tenants | Array of strings <uuid> [ items <uuid > ] Tenants uuids to assign |
{- "tenants": [
- "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "cb5c706b-500e-48a2-b01b-7f3e1459d381"
]
}
{- "data": {
- "balenaId": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "defaultTenant": null,
- "id": "49578ed9-2ea7-42b4-9d2b-79a098265197",
- "isVirtual": false,
- "recCount": 0,
- "tenants": [
- {
- "id": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "name": "Tenant"
}, - {
- "id": "cb5c706b-500e-48a2-b01b-7f3e1459d381",
- "name": "Fast Cars Rental"
}
]
}, - "message": "Assigned tenants to capture unit successfully",
- "success": true
}
Set default tenant for capture units. You cannot modify virtual capture unit using this endpoint.
id required | string <uuid> identifier of capture unit |
tenant | string <uuid> |
{- "tenant": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5"
}
{- "data": [
- {
- "balenaId": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "defaultTenant": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "id": "49578ed9-2ea7-42b4-9d2b-79a098265197",
- "isVirtual": false,
- "recCount": 0,
- "tenants": [
- {
- "id": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "name": "Tenant"
}, - {
- "id": "cb5c706b-500e-48a2-b01b-7f3e1459d381",
- "name": "Fast Cars Rental"
}
]
}, - {
- "balenaId": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "defaultTenant": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "id": "eb68886e-cbbb-4681-bef1-3a13a6c6dba6",
- "isVirtual": false,
- "recCount": 0,
- "tenants": [
- {
- "id": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "name": "Tenant"
}, - {
- "id": "cb5c706b-500e-48a2-b01b-7f3e1459d381",
- "name": "Fast Cars Rental"
}
]
}
], - "message": "The capture units default tenant is set successfully",
- "success": true
}
Unassign tenants from capture unit. You cannot modify virtual capture unit using this endpoint.
id required | string <uuid> ID of the unit |
tenants | Array of strings <uuid> [ items <uuid > ] |
{- "tenants": [
- "49578ed9-2ea7-42b4-9d2b-79a098265197",
- "3292185a-2fd3-46b8-9885-f433f13a4a6d"
]
}
{- "data": {
- "balenaId": "3292185a-2fd3-46b8-9885-f433f13a4a6d",
- "defaultTenant": null,
- "id": "49578ed9-2ea7-42b4-9d2b-79a098265197",
- "isVirtual": false,
- "recCount": 0,
- "tenants": [
- {
- "id": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "name": "Tenant"
}, - {
- "id": "cb5c706b-500e-48a2-b01b-7f3e1459d381",
- "name": "Fast Cars Rental"
}
]
}, - "message": "Successfully unassigned tenants from capture unit",
- "success": true
}
List regular or virtual capture sets from all or specified tenant (s
virtual | boolean Default: null Either true or false, depends on capture set type |
logos | boolean Default: null Requests signed urls of tenant logos if turned on |
fromAllTenants | boolean Default: false Either true or false, only for Global Admin |
limit | integer Default: 10 limit number of capture sets to be returned |
page | integer Default: 1 page number to be returned |
{- "data": {
- "items": [
- {
- "camerasCount": 4,
- "captureUnits": [
- {
- "side": "left",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}, - {
- "side": "right",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}
], - "countryCode": "NO",
- "createdAt": 1652366073,
- "defaultAlprImage": "rear",
- "id": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0",
- "isVirtual": false,
- "label": "return",
- "lenses": {
- "lens0": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens1": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens2": {
- "focalLength": 8,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lensFront": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}, - "lensRear": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}
}, - "location": "Norway",
- "modifiedAt": 1652366073,
- "name": "My first capture set",
- "pipelineMask": [
- "damage_detection"
], - "priority": 0
}
]
}, - "meta": {
- "currentItemsPerPage": 10,
- "currentPage": 1,
- "lastPage": 100,
- "maxPerPage": 100,
- "totalItems": 1000
}, - "success": true
}
Creates a capture set from given capture units. You can also create virtual capture sets using this endpoint. When you want create virtual capture sets, do not provide "captureUnits" field in body and use "virtual" flag in query params. You need to be either global admin or tenant admin to perform this operation. You can have maximum 1000 virtual rigs per tenant. By default, passages generated by that device set will have the same machine learning pipeline what the related tenant. If the "lenses" parameter is not provided, the default values for lenses will be used.
virtual | boolean Either true or false, depends on capture set type. By default set to false |
Array of objects | |
countryCode | string Enum: "NO" "DE" "DK" "AT" "ES" "FR" "GB" "SE" "CH" Country code |
defaultAlprImage | string Default: "rear" Enum: "rear" "front" Default image used for license plate detection by the ALPR system |
label | string Enum: "return" "pickup" Label for the capture set |
object | |
location | string Capture set location |
name | string Capture set name |
pipelineMask | Array of strings ML pipeline mask. If you add ML job name to this mask, this job will be not started even if it is in tenant's settings. Must contain elements within [damage_detection, part_detection] |
priority | integer >= 0 Default: 0 Define priority of the processing passages. The higher the priority is, the sooner the passage will be processed |
camerasCount | integer Number of cameras |
{- "camerasCount": 6,
- "captureUnits": [
- {
- "side": "left",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}, - {
- "side": "right",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}
], - "countryCode": "NO",
- "label": "return",
- "lenses": {
- "lens0": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens1": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens2": {
- "focalLength": 8,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lensFront": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}, - "lensRear": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}
}, - "location": "Norway",
- "name": "My first capture set",
- "pipelineMask": [
- "damage_detection"
], - "priority": 0
}
{- "message": "New capture set created",
- "success": true
}
Returns all fields values that contains given pattern (e.g. 'Norway' for 'no')
location | string Example: location=it location value pattern |
name | string Example: name=ex name value pattern |
{- "data": {
- "locations": [
- "Italy",
- "Great Britain"
], - "names": [
- "name example",
- "ex-name"
]
}, - "success": true
}
Get capture set details and related units
id required | string <uuid> The ID of the capture set |
{- "data": {
- "camerasCount": 4,
- "captureUnits": [
- {
- "side": "left",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}, - {
- "side": "right",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}
], - "countryCode": "NO",
- "createdAt": 1652366073,
- "defaultAlprImage": "rear",
- "id": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0",
- "isVirtual": false,
- "label": "return",
- "lenses": {
- "lens0": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens1": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens2": {
- "focalLength": 8,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lensFront": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}, - "lensRear": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}
}, - "location": "Norway",
- "minLicensePlateArea": 25000,
- "modifiedAt": 1652366073,
- "name": "My first capture set",
- "pipelineMask": [
- "damage_detection"
], - "priority": 0
}, - "message": "Get capture set details",
- "success": true
}
Update the given capture set details. Cannot modify virtual capture set.
id required | string <uuid> The ID of the capture set |
Array of objects | |
countryCode | string Enum: "NO" "DE" "DK" "AT" "ES" "FR" "GB" "SE" "CH" Country code |
defaultAlprImage | string Default: "rear" Enum: "rear" "front" Default image used for license plate detection by the ALPR system |
label | string Enum: "return" "pickup" Label for the capture set |
object | |
location | string Capture set location |
name | string Capture set name |
pipelineMask | Array of strings ML pipeline mask. If you add ML job name to this mask, this job will be not started even if it is in tenant's settings. Must contain elements within [damage_detection, part_detection] |
priority | integer >= 0 Default: 0 Define priority of the processing passages. The higher the priority is, the sooner the passage will be processed |
camerasCount | integer Number of cameras |
{- "camerasCount": 6,
- "captureUnits": [
- {
- "side": "left",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}, - {
- "side": "right",
- "tenantIds": [
- "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
], - "unitId": "5bcd7ff9-99cb-43fa-a975-bdc0bb81c1b0"
}
], - "countryCode": "NO",
- "defaultAlprImage": "rear",
- "label": "return",
- "lenses": {
- "lens0": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens1": {
- "focalLength": 6,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lens2": {
- "focalLength": 8,
- "sensorResolution": 1920,
- "sensorSize": 11.3
}, - "lensFront": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}, - "lensRear": {
- "focalLength": 15.4,
- "sensorResolution": 3472,
- "sensorSize": 8.86
}
}, - "location": "Norway",
- "minLicensePlateArea": 25000,
- "name": "My first capture set",
- "pipelineMask": [
- "damage_detection"
], - "priority": 0
}
{- "message": "Capture set updated",
- "success": true
}
Deletes car from a tenant's list. If car belongs to another tenant, then error occurres. Otherwise car is being deleted.
registrationNo required | string a valid registration number of car to delete |
countryCode | string Default: "NO" Enum: "NO" "DE" "DK" "AT" "ES" "FR" "GB" "SE" "CH" country code of the given registration number. Can be provided in either lowercase or uppercase. If not provided NO will be set. |
masterTenantAction | string Default: "false" Enum: "false" "true" when provided with value |
{- "data": "NO#32167",
- "message": "Car successfully deleted",
- "success": true
}
Get list of cars that are assigned to a tenant, check weather they have recent damages or check if they can be assigned to passages
limit | integer Default: 100 limit number of registration numbers to be returned |
page | integer Default: 1 page number to be returned |
hasDamages | boolean Default: null Either true or false, determines if checking the damages of car |
carIds | string Example: carIds=12345678-abcd-abcd-abcd-123456789012,12345678-wxyz-wxyz-wxyz-123456789012 list of car ids divided by a comma, these would be checked if have damages |
passageIds | string Example: passageIds=12345678-abcd-abcd-abcd-123456789012,12345678-wxyz-wxyz-wxyz-123456789012 list of passages ids divided by a comma- together with country code and registration number checks if a car can be assigned to given passages |
countryCode | string Default: "NO" Enum: "NO" "DE" "DK" "AT" "ES" "FR" "GB" "SE" "CH" country code of the given registration number. Can be provided in either lowercase or uppercase. If not provided NO will be set. |
registrationNo | string a valid registration number of car |
tenantId | string allows for filtering out cars of a given tenant, if not provided the currently logged tenant will be set |
{- "data": {
- "items": [
- {
- "createdAt": 1694092081,
- "deviceSetId": "12345678-abcd-abcd-abcd-12345678",
- "inUse": true,
- "registrationNo": "NO#ABCDE",
- "tenantId": "12345678-abcd-abcd-abcd-12345678"
}
]
}, - "meta": {
- "currentItemsPerPage": 100,
- "currentPage": 1,
- "lastPage": 1,
- "maxPerPage": 100,
- "totalItems": 1
}, - "success": true
}
Allows tenant admin to add cars (registration numbers) to a tenant. Sending an empty list returns error. If the registration number is already assigned to the current tenant, nothing is changed. If a registration number already exist in the DB as assigned to other tenant, an error occurs. Both of newly assigned and already assigned cars are returned in the response. Unassigned passings and imagesSets will be updated. Provide registration numbers list in dictionary where corresponding keys are country codes.
masterTenantAction | string Default: "false" Enum: "false" "true" when provided with value |
Array of objects (carInfo) if you set cars then registrationNumbersByCountryCode will be ignored | |
registrationNumbersByCountryCode required | object Country codes with corresponding lists of registration numbers within them |
{- "cars": [
- {
- "carGroup": "sedan",
- "fuel": "PETROL",
- "licensePlate": "DE#AB1234",
- "make": "Audi",
- "model": "A3",
- "modelCode": "8Y",
- "pictogram": "car_front_180.png",
- "vin": "VIN45678912345678"
}
], - "registrationNumbersByCountryCode": {
- "DE": [
- "AB1234",
- "CD1234"
], - "NO": [
- "WX1234",
- "YZ1234"
]
}
}
{- "data": {
- "d1fdd0e3-b5fc-4148-afd6-c07ca800dd74": {
- "belongsElsewhere": [
- "DE#AB1234",
- "DE#CD1234"
]
}, - "dc49101e-49d1-4ce2-82c6-4f6b1824fe02": {
- "assigned": [
- "NO#LP1234"
], - "belongsElsewhere": [
- "NO#YZ1234"
]
}, - "df2ede50-0717-408e-8c94-225139d839dd": {
- "errors": [
- "No capture sets"
]
}
}, - "message": "Car assignments have been updated",
- "success": true
}
Allows tenant admin to overwrite cars assignments (registration numbers) in a tenant. Sending an empty list removes all existing assignments for the tenant. If a registration number already exist in the DB as assigned to other tenant, then only valid license plates are assigned. Unassigned passings and imagesSets will be updated. Provide registration numbers list in dictionary where corresponding keys are country codes.
masterTenantAction | string Default: "false" Enum: "false" "true" when provided with value |
Array of objects (carInfo) if you set cars then registrationNumbersByCountryCode will be ignored | |
registrationNumbersByCountryCode required | object Country codes with corresponding lists of registration numbers within them |
{- "cars": [
- {
- "carGroup": "sedan",
- "fuel": "PETROL",
- "licensePlate": "DE#AB1234",
- "make": "Audi",
- "model": "A3",
- "modelCode": "8Y",
- "pictogram": "car_front_180.png",
- "vin": "VIN45678912345678"
}
], - "registrationNumbersByCountryCode": {
- "DE": [
- "AB1234",
- "CD1234"
], - "NO": [
- "WX1234",
- "YZ1234"
]
}
}
{- "data": {
- "d1fdd0e3-b5fc-4148-afd6-c07ca800dd74": {
- "belongsElsewhere": [
- "DE#AB1234",
- "DE#CD1234"
]
}, - "dc49101e-49d1-4ce2-82c6-4f6b1824fe02": {
- "assigned": [
- "NO#WX1234"
], - "belongsElsewhere": [
- "NO#YZ1234"
]
}, - "df2ede50-0717-408e-8c94-225139d839dd": {
- "errors": [
- "No capture sets"
]
}
}, - "message": "Car assignments have been updated",
- "success": true
}
ids | string Example: ids=12345678-abcd-abcd-abcd-123456789012,12345678-efgh-efgh-efgh-123456789012 List of damagesIds to be deleted, separated by comas |
deleteRepresentatives | boolean Filter for deleting list of representatives ids; possible values are: |
{- "data": {
- "ids": [
- "12345678-abcd-abcd-abcd-123456789012",
- "12345678-efgh-efgh-efgh-123456789012"
]
}, - "message": "Successfully deleted damages",
- "success": true
}
Returns a paginated list of damages filtered out by given query params values. Different sorting options are possible, like sorting by the proximity to the given frame in the image set or by the time of occurrence. In order to sort results by proximity, please provide values for both query params: closestToImageSetId
and closestToImageId
. Other kind of sorting is available via sortBy
query parameter. By default, if tenantId
and countryCode
+registrationNo
is provided in the query params, in the response all damages with: state created/accepted, firstDamageId equal to null will be returned. If imageSetId
query parameter is provided (and no additional filtering is applied), all the damages with states created/accepted will be returned - including first occurrence damages and damages merged with the first occurrences (meaning: firstDamageId can have null and non-null values). To get damages for a particular car, a pair of tenant ID and the car's registration number has to be provided. filterByState
, isDeleted
, isPotential
and sortBy
query parameters are available only for tenant admins, annotators and reviewers. The included information about size of a damage is always given in mm. returnRepresentatives
query parameter which by default is set to true, provides representative damages from list of damages.
appraisalId | string <uuid> |
imageSetId | string <uuid> |
tenantId | string <uuid> |
countryCode | string Default: "NO" Enum: "NO" "DE" "DK" "AT" "ES" "FR" "GB" "SE" "CH" Country code |
registrationNo | string a valid registration number of car |
closestToImageSetId | string <uuid> Together with 'closestToImageId' enables sorting the results list (potentially closest damages first) |
closestToImageId | string <uuid> Together with 'closestToImageSetId' enables sorting the results list (potentially closest damages first) |
filterByState | string Example: filterByState=accepted,created,suggested selected filter for damage boxes; comma separated values of wanted states, possible values are: |
isPotential | string Enum: "true" "false" selected filter for damage boxes; possible values are: |
isDeleted | string Enum: "true" "false" selected filter for damage boxes; possible values are: |
returnRepresentatives | string Enum: "true" "false" selected filter for damage boxes; possible values are: |
returnFamilyOf | string <uuid> representativeId of requested damage family. |
sortBy | string Enum: "default" "timestamp" possible values are: |
limit | integer limit number of damages to be returned |
page | integer page number to be returned |
masterTenantAction | bool return all damages for related tenants; possible values are: |
{- "data": {
- "items": [
- {
- "appraisalId": null,
- "carId": "12345678-klmn-klmn-klmn-123456789012",
- "category": "areaScratches",
- "convertedImgSize": "1920x1200",
- "createdAt": 1652366073,
- "damageFamilyReviewed": true,
- "damagedParts": [
- {
- "cameraLocation": "roof",
- "cameraSide": "left",
- "certainty": 0.8,
- "id": "12345678-e5f6-e5f6-e5f6-123456789012",
- "imageId": "12345678-c3d4-c3d4-c3d4-123456789012",
- "name": "wheel",
- "pictogram": {
- "name": "car_left.png",
- "x": 0.12,
- "y": 0.34
}, - "points": [
- {
- "x": 123,
- "y": 123
}, - {
- "x": 123,
- "y": 456
}, - {
- "x": 456,
- "y": 123
}, - {
- "x": 456,
- "y": 456
}
]
}
], - "falsePositives": {
- "fakeDamageLight": false,
- "fakePaintChips": false,
- "fakeScratches": false,
- "fakeWheelDamage": false,
- "notOnVehicle": false
}, - "familySize": 1,
- "fileName": "roofLeft_57.webp",
- "firstDamageId": "12345678-a1b2-a1b2-a1b2-123456789012",
- "id": "12345678-wxyz-wxyz-wxyz-123456789012",
- "imageId": "12345678-c3d4-c3d4-c3d4-123456789012",
- "imageSetId": "12345678-fghj-fghj-fghj-123456789012",
- "limitedTenantFields": [
- {
- "isAvailable": true
}, - {
- "isTriggered": false
}
], - "partnerState": "accepted",
- "points": [
- {
- "x": 123,
- "y": 123
}, - {
- "x": 123,
- "y": 456
}, - {
- "x": 456,
- "y": 123
}, - {
- "x": 456,
- "y": 456
}
], - "potentialDamage": false,
- "processing": false,
- "proxPosCamera": 0,
- "proxPosFrame": 0,
- "proxPosSide": 0,
- "representativeId": "12345678-fghj-fghj-fghj-123456789012",
- "size": {
- "height": 12.34,
- "width": 56.78
}, - "state": "accepted",
- "timestamp": 1652366073,
- "truePositives": {
- "areaScratches": false,
- "cracks": false,
- "dentLight": false,
- "dents": false,
- "frontRearDamage": false,
- "lineScratches": false,
- "missingParts": false,
- "paintChips": false,
- "scratchesLight": false,
- "wheelDamage": false
}
}
]
}, - "message": "Successfully fetched damages with related parts",
- "metadata": {
- "currentItemsPerPage": 2,
- "currentPage": 1,
- "lastPage": 1,
- "maxPerPage": 100,
- "totalItems": 2
}, - "success": true
}
Array of objects[ items >= 2 properties ] |
{- "damages": [
- {
- "falsePositives": {
- "notOnVehicle": true
}, - "id": "12345678-a1b2-a1b2-a1b2-123456789012"
}, - {
- "firstDamageId": "12345678-abcd-abcd-abcd-123456789012",
- "id": "12345678-c3d4-c3d4-c3d4-123456789012"
}, - {
- "id": "12345678-e5f6-e5f6-e5f6-123456789012",
- "partnerState": "rejected"
}, - {
- "id": "12345678-g7h8-g7h8-g7h8-123456789012",
- "points": [
- {
- "x": 12.34,
- "y": 56.78
}
]
}, - {
- "id": "12345678-i9j0-i9j0-i9j0-123456789012",
- "potentialDamage": true
}, - {
- "id": "12345678-k1l2-k1l2-k1l2-123456789012",
- "processing": true
}, - {
- "id": "12345678-m3n4-m3n4-m3n4-123456789012",
- "state": "accepted"
}, - {
- "id": "12345678-o5p6-o5p6-o5p6-123456789012",
- "truePositives": {
- "areaScratches": true
}
}, - {
- "damageFamilyReviewed": true,
- "id": "12345678-i9j0-i9j0-i9j0-123456789012"
}, - {
- "id": "12345678-i9j0-i9j0-i9j0-123456789012",
- "representativeId": "12345678-abcd-abcd-abcd-123456789012"
}
]
}
{- "message": "Successfully updated damages",
- "success": true
}
Array of objects | |
Array of objects Array of damages found on pictogram |
{- "damages": [
- {
- "carId": "12345678-abcd-abcd-abcd-123456789012",
- "falsePositives": {
- "fakeDamageLight": false,
- "fakePaintChips": false,
- "fakeScratches": false,
- "fakeWheelDamage": false,
- "notOnVehicle": false
}, - "firstDamageId": "12345678-mnop-mnop-mnop-123456789012",
- "imageId": "12345678-ijkl-ijkl-ijkl-123456789012",
- "imageSetId": "12345678-efgh-efgh-efgh-123456789012",
- "points": [
- {
- "x": 123,
- "y": 123
}, - {
- "x": 123,
- "y": 456
}, - {
- "x": 456,
- "y": 123
}, - {
- "x": 456,
- "y": 456
}
], - "state": "accepted",
- "truePositives": {
- "areaScratches": false,
- "cracks": false,
- "dentLight": false,
- "dents": false,
- "frontRearDamage": false,
- "lineScratches": false,
- "missingParts": false,
- "paintChips": false,
- "scratchesLight": false,
- "wheelDamage": false
}
}
], - "pictogramDamages": [
- {
- "imageSetId": "12345678-wxyz-wxyz-wxyz-123456789012",
- "new": true,
- "pictogramName": "car_front_180.png",
- "x": 0.12,
- "y": 0.34
}
]
}
{- "message": "Successfully created damages",
- "success": true
}
damages | Array of strings <UUID> [ items <UUID > ] Ids of damages first occurrences to merge |
{- "damages": [
- "12345678-abcd-abcd-abcd-12345678",
- "12345678-efgh-efgh-efgh-12345678"
]
}
{- "message": "Successfully merged unique damages",
- "success": true
}
Returns a single damage of given ID.
id required | string <uuid> |
{- "data": {
- "appraisalId": "12345678-abcd-abcd-abcd-123456789012",
- "carId": "12345678-abcd-abcd-abcd-123456789012",
- "category": "wheelDamage",
- "convertedImgSize"": "1920x1200",
- "createdAt": 1715000159,
- "damagedParts": [
- {
- "cameraLocation": "bottom",
- "cameraSide": "left",
- "carEnd": "front",
- "certainty": 0.95,
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "imageId": "12345678-abcd-abcd-abcd-123456789012",
- "name": "wheel",
- "pictogram": {
- "name": "car_left.png",
- "path": "pictograms/assured_europe_version_0/car_left.png",
- "x": 0.12,
- "y": 0.34
}, - "points": [
- {
- "x": 1418,
- "y": 360
}, - {
- "x": 1921,
- "y": 360
}, - {
- "x": 1418,
- "y": 1061
}, - {
- "x": 1921,
- "y": 1061
}
]
}
], - "falsePositives": {
- "fakeDamageLight": false,
- "fakePaintChips": false,
- "fakeScratches": false,
- "fakeWheelDamage": false,
- "notOnVehicle": false
}, - "familySize": 1,
- "fileName": "bottomLeft_28.webp",
- "firstDamageId": null,
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "imageId": "12345678-abcd-abcd-abcd-123456789012",
- "imageSetId": "12345678-abcd-abcd-abcd-123456789012",
- "isManualMatchingExecuted": true,
- "isNew": false,
- "isRecent": true,
- "limitedTenantFields": {
- "isAvailable": false,
- "isTriggered": false
}, - "points"": [
- {
- "x": 1546,
- "y": 529
}, - {
- "x": 1657,
- "y": 529
}, - {
- "x": 1546,
- "y": 800
}, - {
- "x": 1657,
- "y": 800
}
], - "potentialDamage": false,
- "processing": false,
- "proxPosCamera": 0,
- "proxPosFrame": 0,
- "proxPosSide": 0,
- "representativeId": "12345678-abcd-abcd-abcd-123456789012",
- "size": {
- "height": 230,
- "width": 94
}, - "state"": "accepted",
- "timestamp": 1715000030,
- "truePositives": {
- "areaScratches": false,
- "cracks": true,
- "dentLight": false,
- "dents": false,
- "frontRearDamage": false,
- "lineScratches": false,
- "missingParts": false,
- "paintChips": false,
- "scratchesLight": false,
- "wheelDamage": false
}
}, - "message": "Fetched damage details successfully",
- "success": true
}
Lists images related to the imageSet
imageSetId required | string <uuid> Example: imageSetId=12345678-abcd-abcd-abcd-123456789012 ID of an image set |
forReview | boolean Either true or false, returns images with visible damages |
{- "listImages": {
- "data": {
- "items": [
- {
- "camera": "topRight",
- "convertedSize": "1920x1200",
- "createdAt": 755350172,
- "deletedAt": 755350172,
- "fileName": "topRight_23.webp",
- "generatedBy": "frameSelection",
- "id": "12345678-fghj-fghj-fghj-123456789012",
- "imageSetId": "12345678-abcd-abcd-abcd-123456789012",
- "key": "video_frames/12345678-a1b2-a1b2-a1b2-123456789012/12345678-c3d4-c3d4-c3d4-123456789012/1920x1200/topRight_23.webp",
- "limitedTenantFields": {
- "isAvailable": true,
- "isTriggered": false
}, - "parentType": "imagesets",
- "size": {
- "height": 1200,
- "width": 1920
}, - "softDeleted": {
- "timestamp": 755350172,
- "userId": "12345678-wxyz-wxyz-wxyz-123456789012"
}, - "tenantId": "12345678-wxyz-wxyz-wxyz-123456789012"
}
]
}, - "success": true
}, - "listImagesForReview": {
- "data": {
- "items": [
- {
- "camera": "topRight",
- "convertedSize": "1920x1200",
- "createdAt": 755350172,
- "deletedAt": 755350172,
- "fileName": "topRight_23.webp",
- "generatedBy": "frameSelection",
- "hasDamages": true,
- "id": "12345678-fghj-fghj-fghj-123456789012",
- "imageSetId": "12345678-abcd-abcd-abcd-123456789012",
- "key": "video_frames/12345678-a1b2-a1b2-a1b2-123456789012/12345678-c3d4-c3d4-c3d4-123456789012/1920x1200/topRight_23.webp",
- "limitedTenantFields": {
- "isAvailable": true,
- "isTriggered": false
}, - "parentType": "imagesets",
- "size": {
- "height": 1200,
- "width": 1920
}, - "softDeleted": {
- "timestamp": 755350172,
- "userId": "12345678-wxyz-wxyz-wxyz-123456789012"
}, - "tenantId": "12345678-wxyz-wxyz-wxyz-123456789012"
}
]
}, - "success": true
}
}
Deletes single image by ID
id required | string <uuid> Example: 12345678-abcd-abcd-abcd-123456789012 ID of an image |
{- "data": {
- "id": "12345678-abcd-abcd-abcd-123456789012"
}, - "message": "Image deleted successfully",
- "success": true
}
Gets single image by ID. If successful, the endpoint responds with '302 - Found', which redirects to the right image (based on the 'Location' header).
id required | string <uuid> Example: 12345678-abcd-abcd-abcd-123456789012 ID of an image |
{- "message": "URL to the content in the Location header",
- "success": true
}
Get the list of the image sets.
tenantId | string <uuid> Example: tenantId=12345678-fghj-fghj-fghj-123456789012 tenantId as UUID string |
ids | string Example: ids=12345678-abcd-abcd-abcd-123456789012,12345678-wxyz-wxyz-wxyz-123456789012 List of imageSetIds, separated by coma to filter by |
limit | integer Example: limit=50 Limit number of image sets to be returned per page |
page | integer Example: page=1 Page number to be returned |
registrationNo | string Example: registrationNo=ABC123 Filter by car registration number. Please provide also country code |
countryCode | string Enum: "NO" "DE" "DK" "AT" "ES" "FR" "GB" "SE" "CH" Filter by country code of car registration number. If not provided but registrationNo given- 'NO' is the default value |
unassignedItems | boolean filters image sets (not) related to any tenant |
isManualProcessingSkipped | boolean filter image sets with manual annotation (not) skipped |
haveImages | boolean if set to true, returns image set with images only |
haveNewDamagesDetected | boolean if set to true, returns image sets that have new damages detected |
startDate | integer <int64> Example: startDate=1600000000 Timestamp to filter image sets younger than timestamp; should not be later than endDate |
endDate | integer <int64> Example: endDate=1700000000 Timestamp to filter image sets older than timestamp; should not be earlier than startDate |
captureSetLocation | string Example: captureSetLocation=Norway a value for the capture set's location to filter results |
captureSetName | string Example: captureSetName=name a value for the capture set's name to filter results |
searchByCaptureSetLocation | string Example: searchByCaptureSetLocation=nor a value for the capture set's location to search by |
searchByCaptureSetName | string Example: searchByCaptureSetName=na a value for the capture set's name to search by |
searchByRegistrationNo | string Example: searchByRegistrationNo=ABC1 a value for registration number to search by |
groupByRegistrationNo | boolean If set to true returns aggregated results, grouped by registrationNo; for each registrationNo additionally returns fields as imageSetCount, lastRecDate or damagesInLatestPassage |
returnImageCount | boolean If set to true returns image count for every image set |
forManualAnnotation | boolean Available only for the annotator role. If set to true, returns exactly one job (image set) for the annotator. If not provided, it is set to false by default |
forManualReview | boolean Available only for the reviewer role. If set to true, returns exactly one job (image set) for the reviewer. If not given it is set to false by default |
{- "data": {
- "items": [
- {
- "appraisalId": "12345678-abcd-abcd-abcd-123456789012",
- "carId": "12345678-abcd-abcd-abcd-123456789012",
- "carInfo": {
- "color": "blue",
- "displacement": 827.755772596854,
- "fuel": "diesel",
- "gear": "manual",
- "kW": 351,
- "mileage": 93502697.9995856,
- "model": "Subaru Outback",
- "registrationNo": "NO#ABC123",
- "vin": "6EXVZHHV7LN1UEH3Z",
- "year": 2018
}, - "createdAt": 755350172,
- "hasImages": false,
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "limitedTenantFields": {
- "isAvailable": false,
- "isTriggered": false
}, - "manualProcessing": {
- "annotationEnabled": false,
- "annotationTime": 192822572,
- "annotatorDamagesDeletedByReviewer": [
- "12345678-abcd-abcd-abcd-123456789012"
], - "createdAt": 722794885,
- "damagesAddedByAnnotator": [
- "12345678-abcd-abcd-abcd-123456789012"
], - "damagesAddedByReviewer": [
- "12345678-abcd-abcd-abcd-123456789012"
], - "isSkipped": true,
- "lastAnnotationLockTime": 1617373655,
- "lastAnnotatorId": "12345678-abcd-abcd-abcd-123456789012",
- "lastReviewLockTime": 1382423257,
- "lastReviewerId": "12345678-abcd-abcd-abcd-123456789012",
- "reviewEnabled": true,
- "reviewTime": 614231073,
- "status": 2
}, - "mlProcessing": {
- "damageIdentificationFinished": true,
- "dmgDetectProcessing": true,
- "dmgDetectTimestamp": 172049855
}, - "origin": {
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "label": "pickup",
- "location": "Norway",
- "name": "random-name",
- "type": "device"
}, - "passageId": "12345678-abcd-abcd-abcd-123456789012",
- "pipeline": "{('damage_identification', 1): [('start', 0)], ('start', 0): None}",
- "recDate": 121270608,
- "relatedImageSetId": "12345678-abcd-abcd-abcd-123456789012",
- "tenantId": "12345678-abcd-abcd-abcd-123456789012"
}
]
}, - "meta": {
- "currentItemsPerPage": 1,
- "currentPage": 1,
- "lastPage": 1,
- "maxPerPage": 100,
- "totalItems": 1
}, - "success": true
}
Creates a image set for images, which are going to be added later. If country code not provided, NO will be set.
countryCode | string Default: "NO" Enum: "NO" "DE" "DK" "AT" "ES" "FR" "GB" "SE" "CH" Country code |
deviceSetId | string <uuid> Capture set ID |
recDate | string Date timestamp of image set creation |
registrationNo | string a valid registration number of car |
tenantId required | string <uuid> |
vin | string a valid vin number of car |
{- "countryCode": "DK",
- "deviceSetId": "00000000-af9c-4f98-b2dc-c3cfed110000",
- "recDate": "1669982152",
- "registrationNo": "KL9802",
- "tenantId": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5",
- "vin": "JH4KA8162MC010197"
}
{- "data": {
- "items": [
- {
- "id": "cb5c706b-500e-48a2-b01b-7f3e1459d381"
}
]
}, - "message": "Successfully added new image set",
- "success": true
}
Assign unassigned items to the current tenant
required | Array of objects |
{- "imageSets": [
- {
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "registrationNo": "NO#ABC123"
}
]
}
{- "data": [
- {
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "registrationNo": "NO#ABC123"
}
], - "success": true
}
Counts image sets in annotation or review processes. At least one query param- either 'forManualReview' or 'forManualAnnotation' has to be set to 'true'
forManualReview | boolean if set to true, counting review jobs |
forManualAnnotation | boolean if set to true, counting annotation jobs |
{- "forManualAnnotation": {
- "isLockedByCurrentUser": false,
- "locked": 0,
- "unlocked": 11
}, - "forManualReview": {
- "isLockedByCurrentUser": true,
- "locked": 1,
- "unlocked": 5
}, - "message": "Image sets counted successfully",
- "success": true
}
Checks if image sets with given ids are related with damages that first occurrence is within last 120h. If has damages within last 24h - labels them as 'new' If has damages within last 120h - labels them an 'recent'
ids required | string Example: ids=12345678-abcd-abcd-abcd-123456789012,12345678-wxyz-wxyz-wxyz-123456789012 list of image set ids divided by a comma |
{- "data": {
- "12345678-abcd-abcd-abcd-123456789012": {
- "hasNewDamages": true,
- "hasRecentDamages": true
}, - "12345678-wxyz-wxyz-wxyz-123456789012": {
- "hasNewDamages": false,
- "hasRecentDamages": true
}
}, - "message": "Successfully checked if imageSets have new / recent damages",
- "success": true
}
Redirect user to allowed tenant
imageSetIds required | Array of strings <uuid> [ items <uuid > ] |
refreshToken | string |
{- "imageSetIds": [
- "12345678-abcd-abcd-abcd-123456789012"
], - "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
{- "data": {
- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "currentTenant": "12345678-abcd-abcd-abcd-123456789012",
- "expiresIn": 3600,
- "idToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "tokenType": "Bearer"
}, - "success": true
}
Soft delete image set with related damage boxes and images
id required | string <uuid> The ID of the image set you would like to delete |
{- "data": {
- "id": "12345678-abcd-abcd-abcd-123456789012"
}, - "success": true
}
Returns details of given image set
id required | string <uuid> The ID of the image set you would like to access |
{- "data": {
- "appraisalId": "12345678-abcd-abcd-abcd-123456789012",
- "carId": "12345678-abcd-abcd-abcd-123456789012",
- "carInfo": {
- "color": "blue",
- "displacement": 827.755772596854,
- "fuel": "diesel",
- "gear": "manual",
- "kW": 351,
- "mileage": 93502697.9995856,
- "model": "Subaru Outback",
- "registrationNo": "NO#ABC123",
- "vin": "6EXVZHHV7LN1UEH3Z",
- "year": 2018
}, - "createdAt": 755350172,
- "hasImages": false,
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "limitedTenantFields": {
- "isAvailable": false,
- "isTriggered": false
}, - "manualProcessing": {
- "annotationEnabled": false,
- "annotationTime": 192822572,
- "annotatorDamagesDeletedByReviewer": [
- "12345678-abcd-abcd-abcd-123456789012"
], - "createdAt": 722794885,
- "damagesAddedByAnnotator": [
- "12345678-abcd-abcd-abcd-123456789012"
], - "damagesAddedByReviewer": [
- "12345678-abcd-abcd-abcd-123456789012"
], - "isSkipped": true,
- "lastAnnotationLockTime": 1617373655,
- "lastAnnotatorId": "12345678-abcd-abcd-abcd-123456789012",
- "lastReviewLockTime": 1382423257,
- "lastReviewerId": "12345678-abcd-abcd-abcd-123456789012",
- "manualAnnotationAvailable": false,
- "manualReviewAvailable": false,
- "reviewEnabled": true,
- "reviewTime": 614231073,
- "status": 2
}, - "mlProcessing": {
- "damageIdentificationFinished": true,
- "dmgDetectProcessing": true,
- "dmgDetectTimestamp": 172049855
}, - "origin": {
- "id": "12345678-abcd-abcd-abcd-123456789012",
- "label": "pickup",
- "location": "Norway",
- "name": "random-name",
- "type": "device"
}, - "passageId": "12345678-abcd-abcd-abcd-123456789012",
- "pipeline": "{('damage_identification', 1): [('start', 0)], ('start', 0): None}",
- "recDate": 121270608,
- "relatedImageSetId": "12345678-abcd-abcd-abcd-123456789012",
- "tenantId": "12345678-abcd-abcd-abcd-123456789012"
}, - "success": true
}
Update details of given image set
id required | string <uuid> The ID of the image set you would like to access |
object | |
partnerState | string Enum: "accepted" "reviewed" "rejected" Damage state from partners external applications |
{- "carInfo": {
- "color": "blue",
- "displacement": 827.755772596854,
- "fuel": "diesel",
- "gear": "manual",
- "kW": 351,
- "mileage": 93502697.9995856,
- "model": "Subaru Outback",
- "registrationNo": "NO#ABC123",
- "vin": "6EXVZHHV7LN1UEH3Z",
- "year": 2018
}, - "partnerState": "reviewed"
}
{- "data": {
- "id": "12345678-abcd-abcd-abcd-123456789012"
}, - "success": true
}
Lock image set for annotation or review
id required | string <uuid> The ID of the image set you would like to access |
manualProcess | string Enum: "ANNOTATION" "REVIEW" The type of manual process you wold like to lock image set |
{- "manualProcess": "ANNOTATION"
}
{- "data": {
- "id": "12345678-abcd-abcd-abcd-123456789012"
}, - "success": true
}
Update status of given image set
id required | string <uuid> The ID of the image set you would like to access |
isSkipped | boolean |
status | integer Enum: 0 1 2 Manual processing status, 0 - before manual annotation, 1 - after annotation, 2 - after review |
{- "isSkipped": true,
- "status": 2
}
{- "data": {
- "id": "12345678-abcd-abcd-abcd-123456789012"
}, - "success": true
}
Unlock image set for annotation or review
id required | string <uuid> The ID of the image set you would like to access |
manualProcess | string Enum: "ANNOTATION" "REVIEW" |
{- "manualProcess": "ANNOTATION"
}
{- "data": {
- "id": "12345678-abcd-abcd-abcd-123456789012"
}, - "success": true
}
Get list of logos
tenantIds required | string Example: tenantIds=12345678-abcd-abcd-abcd-123456789012,12345678-efgh-efgh-efgh-123456789012 List of tenants ids you would like to fetch logos, separated by coma |
{- "data": {
- "items": {
- "af91c000-af7e-4adb-a10c-204bfffcd400": {
}
}, - "tenantNames": {
- "af91c000-af7e-4adb-a10c-204bfffcd400": "tenant_name"
}
}, - "message": "Images list",
- "success": true
}
Allows to add a new logo to the given tenant. Returns a presigned URL for the file
fileName | string Logo file name |
tenant | string <uuid> |
{- "fileName": "image.jpg",
- "tenantId": "f71e2466-af9c-4f98-b2dc-c3cfed1165f5"
}
{- "data": {
- "fields": {
- "AWSAccessKeyId": "CSDASDASDASDASD",
- "Content-Type": "image/jpeg",
- "acl": "bucket-owner-full-control",
- "key": "cb5c706b-5006adff653eb-image.jpeg",
- "policy": "CVCVCVCVCVCV",
- "signature": "CVCVCVCVC",
- "x-amz-security-token": "XCXCXCXCXC"
},
}, - "message": "Pre-signed URL successfully created",
- "success": true
}
Creates an api key for a given user ID in the body parameter. Description can be added optionally. After creating the Api Key, user can use it instead of authorization token when sending a request by attaching it to the "x-api-key" header value. Created api key exists until it is deleted. The API Key allows users to log in using generated keys. You can allow devices or services to communicate with App Services. If user doesn't exist exception occurs. If user has got already api key exception occurs. User must be a global admin to perform this operation. If operation done successfully endpoint returns information about created api key.
description | string Description for api key as string |
userId required | string <uuid> User ID of which api key should be created. |
{- "description": "Example description",
- "userId": "ac821ae7-c4c5-46cb-bc7a-50ceaee1a43e"
}
{- "data": {
- "apiKey": "bafe0c9c-8c0b-421a-bc1d-de316f83f414"
}, - "message": "Api key successfully created",
- "success": true
}
Deletes api key of given user, based on user ID in path parameter. User must be a global admin to perform this operation.
id required | string <uuid> User ID of whom the api key should be deleted |
{- "message": "User successfully deleted",
- "success": true
}
Gives information about api key and its description, based on given user ID in path parameter. User must be a global admin to perform this operation.
id required | string <uuid> User ID of which apiKey has to be returned |
{- "data": {
- "apiKey": "37e401e4-d77f-49ef-8861-4ea1e4f73cd4",
- "description": "Description attached to this apiKey",
- "userId": "ac821ae7-c4c5-46cb-bc7a-50ceaee1a43d"
}, - "message": "User successfully fetched",
- "success": true
}
Registers a new user. Phone number should include country to be able to receive a one time password for verification during the registration process.
string <email> Email address. | |
firstName | string First name |
lastName | string Second name |
password required | string Password policy uppercase letters, lowercase letters, numbers, minimum password length 8 chars |
phone required | string Phone number of created account. |
{- "firstName": "John",
- "lastName": "Doe",
- "password": "passwordWithLettersNumbers1SpecialsLike!",
- "phone": "+47000000000"
}
{- "message": "User has been created, needs confirmation",
- "success": true
}
Verifies a new user with one time password
code required | string Code sent to provided phone number |
username required | string Valid user phone number |
{- "code": "123ASD",
- "username": "+47000000000"
}
{- "message": "User has been verified",
- "success": true
}
Submit a request for a new password, and start forgot password procedure to obtain a one time password to the verified phone number.
username required | string Valid user phone number |
{- "username": "+47000000000"
}
{- "message": "Please check your registered email or phone for validation code",
- "success": true
}
Confirm a password reset by submitting and verifying one time password from password reset procedure.
code required | string Code sent to provided phone number |
password required | string New password |
username required | string Valid user phone number |
{- "code": "ASD123",
- "password": "NewPasswordWithLettersNumbers1SpecialsLike!",
- "username": "+47000000000"
}
{- "message": "Please check your registered email or phone for validation code",
- "success": true
}
Use a Refresh Token to exchange the one you received during authorization for a new ID Token.
refreshToken required | string Refresh token received during login procedure |
username required | string Valid user phone number |
{- "refreshToken": "eyJhbGciOiCJ9.eyJzdWIIiwiaTE2MjM5MDIyfQ.SflKSMeKKF2Qssw5c",
- "username": "+47000000000"
}
{- "data": {
- "accessToken": "(deprecated)",
- "expiresIn": 3600,
- "idToken": "eyJhbGciOiCJ9.eyJzdWIIiwiaTE2MjM5MDIyfQ.SflKSMeKKF2Qssw5ce",
- "tokenType": "Bearer"
}, - "expiresIn": 3600,
- "success": true
}
List all tenant groups in the system. User must be a global admin to perform this operation.
limit | integer Limit number of tenant groups to be returned |
page | integer Page number to be returned |
{- "data": {
- "items": [
- {
- "id": "594302d9-f090-4dce-b7ad-66043c9ae000",
- "members": [
- {
- "id": "7c81a5ca-3174-4f10-b3b8-9a857fc5d571",
- "name": "Tenant name"
}, - {
- "id": "acf2461b-0160-4d14-b11b-efae4d66c69b",
- "name": "Tenant name 2"
}
], - "name": "Tenant Group A",
- "powerTenantId": "7c81a5ca-3174-4f10-b3b8-9a857fc5d571"
}, - {
- "id": "79d9e895-b96c-4574-a059-f8cb7ea0fc57",
- "members": [
- {
- "id": "acf2461b-0160-4d14-b11b-efae4d66c69b",
- "name": "Tenant name 2"
}
], - "name": "Tenant Group B",
- "powerTenantId": "acf2461b-0160-4d14-b11b-efae4d66c69b"
}
]
}, - "expiresIn": 3600,
- "meta": {
- "currentItemsPerPage": 10,
- "currentPage": 1,
- "lastPage": 1,
- "maxPerPage": 100,
- "totalItems": 2
}, - "success": true
}
Create a new tenant group in the system. User must be a global admin to perform this operation.
members | Array of strings <uuid> [ items <uuid > ] Optional field including tenant ids which will be added to the group |
name required | string Tenant's group name |
powerTenantId | string <uuid> Optional field including ID of tenant which will become power tenant of the group |
{- "members": [
- "acf2461b-0160-4d14-b11b-efae4d66c69b"
], - "name": "Tenant Group C",
- "powerTenantId": "acf2461b-0160-4d14-b11b-efae4d66c69b"
}
{- "message": "Added tenant group",
- "success": true
}
Allow to update tenant groups. User must be a global admin to perform this operation.
id required | string <uuid> Example: b1d9f509-d468-4595-ba23-ca40e4d5d256 Tenant group UUID |
members | Array of strings <uuid> [ items <uuid > ] New list of tenants which will become group members |
name | string New tenant group's name |
powerTenantId | string <uuid> Tenant ID which will become power tenant of the group. |
{- "members": [
- "c1d9f509-d468-4595-ba23-ca40e4d5d256"
], - "name": "Tenant Group Name",
- "powerTenantId": "b1d9f509-d468-4595-ba23-ca40e4d5d256"
}
{- "data": "Updated",
- "success": true
}
List all tenants in the system. User must be a global admin to perform this operation.
limit | integer Limit number of tenants to be returned |
page | integer Page number to be returned |
{- "data": {
- "items": [
- {
- "id": "594302d9-f090-4dce-b7ad-66043c9ae000",
- "name": "Tenant A"
}, - {
- "id": "79d9e895-b96c-4574-a059-f8cb7ea0fc57",
- "name": "Tenant B"
}
]
}, - "expiresIn": 3600,
- "meta": {
- "currentItemsPerPage": 10,
- "currentPage": 1,
- "lastPage": 2,
- "maxPerPage": 100,
- "totalItems": 15
}, - "success": true
}
Create new tenants in the system. User must be a global admin to perform this operation.
description | any |
name required | string |
{- "name": "Tenant C"
}
{- "message": "Added tenant",
- "success": true
}
Assign the specified tenants to given user within the system. User must be a global admin to perform this operation.
required | Array of objects |
user required | string <uuid> User ID to which tenants will be assigned |
{- "tenants": [
- {
- "role": "ADMIN_TENANT",
- "tenantId": "3bfd3a56-c2ea-41e5-92c3-aa295b24637b"
}
], - "user": "582d4140-bfd1-4afc-bb47-420a9694e3fc"
}
{- "data": {
- "0f8ca2a0-ce75-4015-b65a-d731f5b791d1": {
- "availableRoles": [
- "USER",
- "ADMIN_TENANT"
], - "name": "Tenant name",
- "role": "USER",
- "settings": {
- "expiryAfter": 0,
- "manualAnnotationEnabled": true
}
}
}, - "success": true
}
Unassign the tenants for the specified user within the system. User must be a global admin to perform this operation.
tenants required | Array of strings <uuid> [ items <uuid > ] |
user required | string <uuid> User ID from which tenants will be unassigned |
{- "tenants": [
- "3bfd3a56-c2ea-41e5-92c3-aa295b24637b"
], - "user": "682d4140-bfd1-4afc-bb47-420a9694e3fc"
}
{- "data": {
- "0f8ca2a0-ce75-4015-b65a-d731f5b791d1": {
- "availableRoles": [
- "USER",
- "ADMIN_TENANT"
], - "name": "Tenant name",
- "role": "USER",
- "settings": {
- "expiryAfter": 0,
- "manualAnnotationEnabled": true
}
}
}, - "success": true
}
It returns tenants details related to the user and its roles, provided in query params. User must be a global admin to perform this operation.
users required | string Example: users=b1d9f509-d468-4595-ba23-ca40e4d5d256,6eff2dac-e72e-49bd-b269-049650625906 List of users UUID's |
{- "data": {
- "533c1e58-27ed-461b-8ccd-982eb6ca71b8": {
- "groups": [
- "ANNOTATOR"
], - "tenants": {
- "0f8ca2a0-ce75-4015-b65a-d731f5b791d1": {
- "availableRoles": [
- "USER",
- "ADMIN_TENANT"
], - "name": "Witek's Garage",
- "role": "ADMIN_TENANT",
- "settings": {
- "expiryAfter": 0,
- "manualAnnotationEnabled": true
}
}
}
}
}, - "success": true
}
Returns tenants details based on provided ID's. User must be a global admin to perform this operation.
id required | string <uuid> Example: b1d9f509-d468-4595-ba23-ca40e4d5d256 Tenant UUID |
{- "data": {
- "id": "71fdd0e3-b5fc-4148-afd6-c07ca800dd74",
- "name": "germany-testing",
- "settings": {
- "damageDetectionServiceEnabled": true,
- "expiryAfter": 42,
- "faceblurServiceEnabled": {
- "backLeft": false,
- "backRight": false,
- "bottomLeft": false,
- "bottomRight": false,
- "frontLeft": false,
- "frontRight": false,
- "roofLeft": false,
- "roofRight": false,
- "topLeft": false,
- "topRight": false
}, - "isHandicapped": true,
- "manualAnnotationEnabled": false,
- "manualReviewEnabled": false,
- "maxFramesForCameras": {
- "bottomLeft": 32,
- "bottomRight": 32,
- "roofLeft": 16,
- "roofRight": 16,
- "topLeft": 16,
- "topRight": 16
}, - "newDamageNotification": false,
- "separateQueue": false,
- "turnaroundConfiguration": {
- "isEnabled": true,
- "threshold": 14400
}
}
}, - "success": true
}
Updates tenant details fields. Fields allowed to be updated: expiryAfter, manualAnnotationEnabled, manualReviewEnabled, newDamageNotification, faceblurServiceEnabled, damageDetectionServiceEnabled, minDamagesForManualProcessing, separateQueue, isHandicapped or turnaroundConfiguration If turnaroundConfiguration.isEnabled is equal to false, all passages of this tenant will be rental. Otherwise, if the time difference (in seconds) between pickup and return passages is smaller than the given threshold, the passage will be marked as turnaround. User must be a global admin to perform this operation.
id required | string <uuid> Example: b1d9f509-d468-4595-ba23-ca40e4d5d256 Tenant UUID |
object |
{- "settings": {
- "damageDetectionServiceEnabled": true,
- "expiryAfter": 42,
- "faceblurServiceEnabled": {
- "backLeft": false,
- "backRight": false,
- "bottomLeft": false,
- "bottomRight": false,
- "frontLeft": false,
- "frontRight": false,
- "roofLeft": false,
- "roofRight": false,
- "topLeft": false,
- "topRight": false
}, - "isHandicapped": false,
- "manualAnnotationEnabled": true,
- "manualReviewEnabled": false,
- "minDamagesForManualProcessing": 5,
- "newDamageNotification": true,
- "separateQueue": false,
- "turnaroundConfiguration": {
- "isEnabled": true,
- "threshold": 14400
}
}
}
{- "data": "Updated",
- "success": true
}
Assign the given users to the specified group within the system. The available groups are: GLOBAL_ADMIN, ANNOTATOR, REVIEWER. User must be a global admin to perform this operation.
groupName required | string Enum: "GLOBAL_ADMIN" "ANNOTATOR" "REVIEWER" Group which will be assigned to user |
userId required | string <uuid> User ID on which action will be performed |
{- "groupName": "ANNOTATOR",
- "userId": "582d4140-bfd1-4afc-bb47-420a9694e3fc"
}
{- "message": "Modified (POST) group isAnnotator for 6eff1dac-e72e-49bd-b269-049650625906",
- "success": true
}
Unassign the given users from the group within the system. User must be a global admin to perform this operation.
groupName required | string Enum: "GLOBAL_ADMIN" "ANNOTATOR" "REVIEWER" Group name from which user will be removed |
userId required | string <uuid> User ID on which action will be performed |
{- "groupName": "ANNOTATOR",
- "userId": "582d4140-bfd1-4afc-bb47-420a9694e3fc"
}
{- "message": "Modified (POST) group isAnnotator for 6eff1dac-e72e-49bd-b269-049650625906",
- "success": true
}
Delete user account from the system. User must be a global admin to perform this operation.
id required | string <uuid> Example: b1d9f509-d468-4595-ba23-ca40e4d5d256 User UUID's |
{- "message": "User b1d9f509-d468-4595-ba23-ca40e4d5d256 has been deleted",
- "success": true
}
Log in to the system to obtain an authorization token.
password required | string Account's password |
username required | string Valid user phone number |
{- "password": "passwordWithLettersNumbers1SpecialsLike!",
- "username": "+47000000000"
}
{- "data": {
- "accessToken": "(deprecated)",
- "expiresIn": 3600,
- "idToken": "eyJhbGciOiCJ9.eyJzdWIIiwiaTE2MjM5MDIyfQ.SflKSMeKKF2Qssw5ce",
- "refreshToken": "eysdaJhbGciOiCJ9.eyJzdWIIiwsaiaTE2MjM5MDIyfQ.SflKSMeKKF2Qsdasdassw5ce",
- "tokenType": "Bearer"
}, - "expiresIn": 3600,
- "success": true
}
Switch the currently used tenant within the system
refreshToken required | string Refresh token received during login procedure |
tenant required | string <uuid> The ID of the tenant you would like to switch to |
{- "refreshToken": "refreshToken",
- "tenant": "3bfd3a56-c2ea-41e5-92c3-aa295b24637b"
}
{- "data": {
- "accessToken": "accessToken",
- "currentTenant": "3bfd3a56-c2ea-41e5-92c3-aa295b24637b",
- "expiresIn": 3600,
- "idToken": "idToken",
- "tokenType": "Bearer"
}, - "success": true
}
Takes a car registration license plate as input and returns VIN number
id required | string the id of the vehicle, in the form of a registration plate |
{- "data": {
- "VIN": "ASDAWEQWEQWEASDASD"
}, - "message": "Vehicle identification number found",
- "success": true
}
Based on input in the format of a registration number, average list price is returned
id required | string Registration plate number of the car |
km required | integer Mileage on the car in KM |
{- "data": {
- "priceHigh": 105986,
- "priceLow": 93988,
- "priceMedio": 99987
}, - "message": "Vehicle found",
- "success": true
}
Based on input in the format of a VIN number, information is returned from the DMV
id required | string VIN number of the car |
{- "data": {
- "VIN": "ASDAWEQWEQWEASDASD",
- "color": "Grå",
- "displacement": "1598",
- "fuel": "Diesel",
- "gear": "Manuell",
- "kw": "77",
- "make": "SKODA",
- "year": "2012"
}, - "message": "Vehicle found",
- "success": true
}
Use profile to render user details from the Wenn system. It is used for clients to present user information.
Get the list of a users profile.
limit | integer limit number of appraisals to be returned |
page | integer page number to be returned |
tenant | string tenant to fetch |
searchBy | string filter content by using firstName, lastName or phone |
{- "data": {
- "items": [
- {
- "created": "1606748208.535424",
- "email": "maren.lundby@wenn.no",
- "firstName": "Maren",
- "id": "f7ba8034-64a6-425c-8629-b283eac794fe",
- "lastName": "Lundby",
- "modified": "1606748298.086604",
- "phone": "+47666555444"
}, - {
- "created": "1606748208.535424",
- "email": "silje.opseth@wenn.no",
- "firstName": "Silje",
- "id": "afd6dbb0-c811-44bb-a6af-aa1fc9b6b97d",
- "lastName": "Opseth",
- "modified": "1606748298.086604",
- "phone": "+47666555444"
}
]
}, - "meta": {
- "currentItemsPerPage": 2,
- "currentPage": 1,
- "lastPage": 27,
- "maxPerPage": 100,
- "totalItems": 53
}, - "success": true
}
Extract all the information stored in the users profile.
id required | string The id of user you would like fetch from service |
{- "data": {
- "email": "maren.lundby@wenn.no",
- "firstName": "Maren",
- "lastName": "Lundby",
- "partnerId": "f7ba8034-64a6-425c-8629-b283eac794fe",
- "phone": "+47666555444"
}, - "success": true
}
Extract all tenants related to the user.
id required | string The id of user you would like fetch from service |
{- "data": {
- "items": [
- "384f1aaf-2d33-4489-b0d1-d4e8405023de"
]
}, - "success": true
}
Get the list of names of the users
users required | string Array uuid of users that will be fetched example: ?users=533c1e58-27ed-461b-8ccd-982eb6ca71b8,b2d9f509-d468-4595-ba23-ca40e4d5d256 |
{- "data": {
- "items": [
- {
- "email": "maren.lundby@wenn.no",
- "firstName": "Maren",
- "id": "f7ba8034-64a6-425c-8629-b283eac794fe",
- "lastName": "Lundby",
- "phone": "+47666555444"
}
]
}, - "success": true
}