{"openapi":"3.1.0","info":{"title":"Irisnet API","description":"Artificial Intelligence (AI) for image- and video-processing in real-time. This is an interactive documentation where you can quickly look up the endpoints and their schemas, while having the opportunity to try things out for yourself.\n\nIn the list below, you can see the available endpoints of the API, which can be expanded by clicking on them. Each expanded endpoint lists the request parameters (if available) and the request body (if available). The request body can list some example bodies and the schema, explaining each model in detail.\n\nAdditionally you'll find a 'Try it out' button that allows you to enter your custom parameters and custom body and execute that against the API. <b>Be sure to enter your license key to authorize the requests before using this documentation interactively.</b>\n\nThe responses section in the expanded endpoint lists the possible responses with their corresponding status codes. If you've executed an API call it will also show you the response from the server.\n\nUnderneath the endpoints you'll find the model schemas. These are the models used for the requests and responses. If you click on the right arrow, you can expand the model and get a description of the model and the model parameters. For nested models, you can keep clicking the right arrow for further details.\n\nClicking the link below the title at the top of this page opens the [OpenAPI specification](https://swagger.io/specification/) (OAS3) in JSON format. The OAS3 Spec allows the generation of clients in many programming languages. There are several free client generators available that can be used to get started easily.","termsOfService":"https://shop.airisprotect.com/terms-and-conditions","contact":{"name":"irisnet GmbH","url":"https://shop.airisprotect.com","email":"info@irisnet.de"},"version":"v2"},"servers":[{"url":"https://api.irisnet.de","description":"Live Server"}],"tags":[{"name":"Configuration Management","description":"Configure the basics of the AI."},{"name":"Detailed configuration parameters","description":"Configure the AI in detail with specific parameters."},{"name":"AI check operations","description":"AI related checks."},{"name":"Balance endpoints","description":"Retrieve license key information or find out how many credits a check operation will cost."}],"paths":{"/v2/face-authentication/{configId}":{"post":{"tags":["AI check operations"],"summary":"Perform a face authentication for a given selfie with the AI.","description":"The response (_CheckResult_ schema) containing only the checkId and possibly ApiNotices is returned immediately after the request. The actual body (_CheckResult_ schema) is sent to the _callbackUrl_ after the AI has finished processing.","operationId":"faceAuthentication","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The BiometricCheckRequestData containing data needed for the face authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BiometricCheckRequestData"},"examples":{"Selfie":{"description":"Selfie","value":{"callback":{"callbackUrl":"https://www.example.com/callback?ageestimation"},"selfieImage":"/9j/4AAQSkZJRgABAQEASABIAAD..."}}}}},"required":true},"responses":{"202":{"description":"Input accepted: Wait for callback.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"},"example":{"checkId":"1a8ee62a-41a6-4319-a14e-0b97dac21faf"}}}},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["IDENT"]},"/v2/config/parameters/{configId}":{"get":{"tags":["Detailed configuration parameters"],"summary":"Get the parameters of the AI configuration.","description":"Returns the parameters stored in the given configuration.","operationId":"getParameters","parameters":[{"name":"configId","in":"path","description":"The id of the configuration for which the parameters are being requested.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParamSet"}}}},"404":{"description":"configuration with given id not found or parameters for configuration not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"post":{"tags":["Detailed configuration parameters"],"summary":"Set parameters to the given AI configuration.","description":"Save or modify the parameters stored in the AI configuration.","operationId":"setParameters","parameters":[{"name":"configId","in":"path","description":"The id of the configuration where the parameters should be added.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Define the parameters to use for an AI check operation. View the _ParamSet_ and _Param_ schema to see the available parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParamSet"},"examples":{"Reject explicit content":{"description":"Rejects and blurs all classifications showing explicit content. (Requires 'nudityCheck' prototype)","value":{"params":[{"classification":"breast","drawMode":3},{"classification":"vulva","drawMode":3},{"classification":"penis","drawMode":3},{"classification":"vagina","drawMode":3},{"classification":"buttocks","drawMode":3},{"classification":"anus","drawMode":3},{"classification":"toy","drawMode":3},{"classification":"oral","drawMode":3},{"classification":"penetration","drawMode":3}]}},"Mask children":{"description":"Draws a black mask over children without rejecting. (Requires 'nudityCheck' and 'ageEstimation' prototypes)","value":{"params":[{"classification":"child","min":0,"max":-1,"drawMode":2,"grey":255}]}},"Profile picture":{"description":"Only allow pictures with one face. (Requires 'nudityCheck' prototype)","value":{"params":[{"classification":"face","min":1,"max":1}]}},"Reject breast showing nipple":{"description":"Allow breasts not showing nipple (e.g. cleavage), but reject and blur breasts showing nipple. (Requires 'nudityCheck' and 'nippleCheck' prototypes)","value":{"params":[{"classification":"breast","ignore":true},{"classification":"hasNipple","min":0,"max":0,"drawMode":6}]}},"Abort on severity":{"description":"Aborts a video or stream check when a severity of '200' is reached. Only 'breast' and 'buttocks' is considered OK in this example.","value":{"abortOnSeverity":200,"params":[{"classification":"breast","severity":150},{"classification":"buttocks","severity":150},{"classification":"vulva","severity":200},{"classification":"penis","severity":200},{"classification":"vagina","severity":200},{"classification":"anus","severity":200},{"classification":"oral","severity":200},{"classification":"penetration","severity":200}]}},"Event duration":{"description":"Configure the event duration of 250ms for the child classification before the rule is considered to be broken.","value":{"minDuration":250,"params":[{"classification":"child","min":0,"max":0}]}},"Kyc ui parameter":{"description":"Configure the colors and the logo for the ui driven flow.","value":{"kycUiParameters":{"primaryColor":"57a632","backgroundColor":"36662b","textColor":"000000","logo":"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"}}}}}},"required":true},"responses":{"200":{"description":"successful operation. Previous user configured parameters are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParamSet"}}}},"204":{"description":"successful operation. No previously configured parameters exist."},"400":{"description":"Bad request. Check for badly formatted request body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"delete":{"tags":["Detailed configuration parameters"],"summary":"Delete the parameters of the AI configuration.","description":"Clears the parameters and restores the defaults for all classifications.","operationId":"clearParameters","parameters":[{"name":"configId","in":"path","description":"The id of the configuration where the parameters should be deleted.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"successful operation."},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]}},"/v2/config":{"get":{"tags":["Configuration Management"],"summary":"List all saved AI configurations.","description":"Returns a list of all configurations with their ids and configured prototypes. There is a limit to the number of configurations that can be stored per license key. You can find this limit in the response of the info operation.","operationId":"getAllConfigs","responses":{"200":{"description":"successful operation.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Config"}}}}}},"security":[{"LICENSE-KEY":[]}]},"post":{"tags":["Configuration Management"],"summary":"Create a new AI configuration.","description":"Create a new AI configuration with the desired prototypes.","operationId":"setConfig","requestBody":{"description":"Define the prototypes to use for an AI check operation. View the _Config_ schema to see the available prototypes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"},"examples":{"All checks":{"description":"This example shows the configuration with all checks/prototypes.","value":{"name":"first attempt","prototypes":["nudityCheck","ageEstimation","illegalSymbols","attributesCheck","nippleCheck","textRecognition","bodyAttributes","unwantedSubstances","violenceCheck","selfieCheck"]}},"Most common checks":{"description":"This example shows a typical configuration to start with.","value":{"name":"most used","prototypes":["nudityCheck","ageEstimation","attributesCheck","textRecognition"]}},"Identity document check":{"description":"This example shows how to configure an identity document check and a biometric check of the provided selfie.","value":{"name":"Identity document check","kycCheckParameters":["identityDocumentCheck","biometricCheck"]}},"Live identification with redirect flow and check images provided":{"description":"This example shows how to configure a live identification check for a redirect flow with check images attached to the CheckResult.","value":{"name":"Live identification with redirect flow and check images provided","kycCheckParameters":["liveIdentification","redirectFlow","addEncodingsToResult"]}},"Live identification with live selfie and redirect flow and check images provided":{"description":"This example shows how to configure a live identification check for a redirect flow with live selfie enabled and check images attached to the CheckResult.","value":{"name":"Live identification with live selfie and redirect flow and check images provided","kycCheckParameters":["liveIdentification","liveSelfie","redirectFlow","addEncodingsToResult"]}}}}},"required":true},"responses":{"200":{"description":"successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"400":{"description":"Bad request. Check for a badly formatted request body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"403":{"description":"Maximum number of stored AI configurations reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]}},"/v2/check-video/{configId}":{"post":{"tags":["AI check operations"],"summary":"Check a video with the AI.","description":"An empty response is returned immediately. The actual body (_CheckResult_ schema) is send to the _callbackUrl_ after the AI has finished processing.\n\n<b>NOTICE: Depending on your configuration and parameters this operation can be quite expensive on your credit balance.<b>","operationId":"checkVideo","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"url","in":"query","description":"The url to the video that needs to be checked.","required":true,"schema":{"type":"string"}},{"name":"detail","in":"query","description":"Set the detail level of the response.\n * _1_ - The response only contains the _Summary_ and possibly the _Encoded_ schemas for basic information's (better API performance).\n* _2_ - Additionally lists all broken rules (_BrokenRule_ schema) according to the configuration parameters that were requested.\n* _3_ - Also shows events (_Event_ schema) that contains extended features to each found object.","required":false,"schema":{"type":"integer","format":"int32","default":1,"maximum":3,"minimum":0}},{"name":"imageEncode","in":"query","description":"Specifies whether or not to draw an output video that can be downloaded afterwards. The output video format will be MP4 containing H.264 encoding independent of the input format. The _Encoded_ schema will be available in the response.","required":false,"schema":{"type":"boolean","default":false}},{"name":"checkRate","in":"query","description":"The milliseconds between each AI check. E.g. The AI will check 1 frame per second when checkRate is set to '1000'.","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Callback"},"examples":{"Simple basic-auth authorization":{"description":"Url will be accessed with the 'Authorization' header. Any key/value pair can be added to the 'header' block.","value":{"callbackUrl":"http://www.example.com/callback?video","headers":{"Authorization":"Basic Rm9yemEgTmFwb2xpLCBzZW1wcmUh"}}},"Simple callback":{"description":"This example shows a typical callback object to start with.","value":{"callbackUrl":"http://www.example.com/callback?video"}},"Callback with custom id":{"description":"Adds a custom id to the 'header' block. The id will be accessible as header when the callback is received.","value":{"callbackUrl":"http://www.example.com/callback?video","headers":{"my-custom-id":"TmFwdWwz"}}}}}},"required":true},"responses":{"202":{"description":"operation accepted: wait for callback."},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["PROTECT"]},"/v2/check-text/{configId}":{"post":{"tags":["AI check operations"],"summary":"Check a text with the AI.","description":"The response (_CheckResult_ schema) is returned immediately after the request.","operationId":"checkText","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"detail","in":"query","description":"Set the detail level of the response.\n * _1_ - The response only contains the _Summary_ and possibly the _Encoded_ schemas for basic information's (better API performance).\n* _2_ - Additionally lists all broken rules (_BrokenRule_ schema) according to the configuration parameters that were requested.\n* _3_ - Also shows detections (e.g. _BaseDetection_ schema) that contains extended features to each found object.","required":false,"schema":{"type":"integer","format":"int32","default":1,"maximum":3,"minimum":0}}],"requestBody":{"description":"The text that needs to be checked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Data"},"examples":{"Text":{"description":"Text","value":{"data":"This is an example text."}}}}},"required":true},"responses":{"200":{"description":"successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"}}}},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["PROTECT"]},"/v2/check-stream/{configId}":{"post":{"tags":["AI check operations"],"summary":"Check a stream with the AI.","description":"The body is continuously send per JSON stream until completion of the video stream. Only then the full _CheckResult_ schema will be shown (past _Events_ omitted).\n\n<b>NOTICE: Depending on your configuration and parameters this operation can be quite expensive on your credit balance.<b>\n\n<b>WARNING: Please do not use the 'Try it out' for this operation. The browser is not able to refresh the response preview until the completion of the video stream.<b>","operationId":"checkStream","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"inUrl","in":"query","description":"The URL of the video stream that the AI should check.","required":true,"schema":{"type":"string"}},{"name":"outUrl","in":"query","description":"The URL of where the AI should send the encoded stream.","required":false,"schema":{"type":"string"}},{"name":"cycleLength","in":"query","description":"Determine how often (value in milliseconds) the the AI should give a feedback.","required":false,"schema":{"type":"integer","format":"int32","default":500,"minimum":100}},{"name":"checkRate","in":"query","description":"The milliseconds between each AI check. E.g. The AI will check 1 frame per second when checkRate is set to '1000'.","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}}],"responses":{"200":{"description":"successful operation.","content":{"application/x-ndjson":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CheckResult"}}}}},"402":{"description":"Not enough credits.","content":{"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"404":{"description":"configId not found.","content":{"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["PROTECT"]},"/v2/check-poa-document/{configId}":{"post":{"tags":["AI check operations"],"summary":"Perform a proof of address check with the AI.","description":"The response (_CheckResult_ schema) containing only the checkId and possibly ApiNotices is returned immediately after the request. The actual body (_CheckResult_ schema) is sent to the _callbackUrl_ after the AI has finished processing.","operationId":"checkPoaDocument","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The PoaCheckRequestData containing data needed for the proof of address check. The DocumentType in the request data must be either 'utility_bill' or 'bank_statement'.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoaCheckRequestData"},"examples":{"PoA with utility bill":{"description":"PoA with utility bill","value":{"callback":{"callbackUrl":"https://www.example.com/callback?poacheck"},"documentType":"utility_bill","frontImage":"/9j/4AAQSkZJRgABAQEASABIAAD..."}}}}},"required":true},"responses":{"202":{"description":"Input accepted: Wait for callback.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"},"example":{"checkId":"caa14daf-287e-4729-85cb-62c1dd212e07"}}}},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["IDENT"]},"/v2/check-live-id-document/{configId}":{"post":{"tags":["AI check operations"],"summary":"Start a guided live id document check with the AI.","description":"The synchronous response (_LiveDocumentCheckResponseData_ schema) contains an eventId, possibly a token and an URL to send the enduser to. The actual result (_CheckResult_ schema) of the document check is sent to the provided _callbackUrl_ after the AI has finished processing.","operationId":"liveDocumentCheck","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The LiveDocumentCheckRequestData containing data needed for the live id document check.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveDocumentCheckRequestData"},"examples":{"Simple Callback":{"description":"Simple Callback","value":{"callback":{"callbackUrl":"https://www.example.com/callback?liveident"},"endUserRedirectUrl":"https://www.example.com/user"}}}}},"required":true},"responses":{"202":{"description":"Input accepted: Send enduser to endUserIdentUrl and wait for status/callback.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveDocumentCheckResponseData"},"example":{"identToken":"eyJhbGciOiJIUzI1NiJ9.eyJtc2ciOiJ5b3UgYXJlIGFibGUgdG8gZGVjb2RlIGJhc2U2NCJ9.peoj1-UI-1c-3D7Zqc4DwgM4gLIu-6vQgdQc833BC3g","eventId":"6b26872e-cb1b-4265-ab1d-198412c44ef7","endUserIdentUrl":"https://irisidentity.ui/identify?token=eyJhbGciOiJIUzI1NiJ9.eyJtc2ciOiJ5b3UgYXJlIGFibGUgdG8gZGVjb2RlIGJhc2U2NCJ9.peoj1-UI-1c-3D7Zqc4DwgM4gLIu-6vQgdQc833BC3g"}}}},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["IDENT"]},"/v2/check-image/{configId}":{"post":{"tags":["AI check operations"],"summary":"Check an image with the AI.","description":"The response (_CheckResult_ schema) is returned immediately after the request.","operationId":"checkImage","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"url","in":"query","description":"<s>The url to the image that needs to be checked.</s> Deprecated: Use request body instead. <b>This parameter will be removed in future releases.</b>","required":false,"deprecated":true,"schema":{"type":"string"}},{"name":"detail","in":"query","description":"Set the detail level of the response.\n * _1_ - The response only contains the _Summary_ and possibly the _Encoded_ schemas for basic information's (better API performance).\n* _2_ - Additionally lists all broken rules (_BrokenRule_ schema) according to the configuration parameters that were requested.\n* _3_ - Also shows detections (e.g. _BaseDetection_ schema) that contains extended features to each found object.","required":false,"schema":{"type":"integer","format":"int32","default":1,"maximum":3,"minimum":0}},{"name":"imageEncode","in":"query","description":"Specifies whether or not to draw an output image that will be delivered in the response body as base64 encoded string. The _Encoded_ schema will be available in the response.","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"description":"The http(s) url or base64 encoded body uri of the image that needs to be checked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Data"},"examples":{"Image url":{"description":"Image url","value":{"data":"https://example.com/path/to/your/image.png"}},"Base64 encoded image":{"description":"Base64 encoded image","value":{"data":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAwHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjabVBBEsIwCLznFT4BWJqS50RbZ/yBz5cIdRp1Z7KQLNkQyv583MtlQFiLLqvVVis5tGmT7olRoL+ZSd98gJOn8/JJxSM8IgSrees458mGuHu2nIzslsJ1FppGFPsykggYHY18S6OWRpAQOA16fItqs/X8hetOMyxWGaQ2t/2zX3162+LvQGQHg5wBjQYwFgq6C+JMUC9kL+hAckszH8i/OR0oL9VMWQoOkAyEAAABhGlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw1AUhU/TSkUqDnYQcYhQnSyIijhqFYpQIdQKrTqYvPQPmjQkKS6OgmvBwZ/FqoOLs64OroIg+APi6uKk6CIl3pcUWsT44PI+znvncN99gNCoMM0KjQOabpvpZELM5lbF8CsiCFENY0BmljEnSSn4rq97BPh+F+dZ/vf+XL1q3mJAQCSeZYZpE28QT2/aBud94igrySrxOfGYSQ0SP3Jd8fiNc9FlgWdGzUx6njhKLBY7WOlgVjI14inimKrplC9kPVY5b3HWKjXW6pO/MJLXV5a5TjWEJBaxBAkiFNRQRgU24rTrpFhI03nCxz/o+iVyKeQqg5FjAVVokF0/+B/8nq1VmJzwkiIJoOvFcT5GgPAu0Kw7zvex4zRPgOAzcKW3/dUGMPNJer2txY6Avm3g4rqtKXvA5Q4w8GTIpuxKQSqhUADez+ibckD/LdCz5s2tdY7TByBDs0rdAAeHwGiRstd93t3dObd/77Tm9wNGH3KVLxpYXwAADXhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NGZiNTQyYTAtYjQ3Mi00ZGIzLThlY2YtZDg1YzQ1MDdhZWE1IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmMxNmM2NjgwLTE5YjQtNDg1Mi05NmQ5LWE1NjU1NDc5OTE5NSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjQ4MThjNGI3LTM2MzMtNGJhYy04MWQ4LTdhYmQwN2Y5NmVjOCIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0iMTcwMTY5MzIxOTMwNDU2OSIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM0IgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMzoxMjowNFQxMzozMzozOSswMTowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjM6MTI6MDRUMTM6MzM6MzkrMDE6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5YTlkZjNlYS1kYTVjLTRlMDAtODBhNC0wYmE1ODc5NjI1ZTYiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIyMDIzLTEyLTA0VDEzOjMzOjM5KzAxOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PipGGiUAAAAGYktHRAAAAAAAAPlDu38AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfnDAQMISetiKIgAAAgAElEQVR42u19e3xU1bn2s+dE5gPMKDAJSAKSRBKQiwqN0AgcEqBKBbT0AvSDw/FQPT/T9PzqJ9gWSwXx1KOC9fuM6NFSarWKVOWmBeV6uEQghksgQAJDMCSEJEOAiRBHUvb3x1wyk6y1Z++ZPXv25X3605KR7Nl7r/d93ud917vWEkRRFEEgECwJG70CAoEIgEAgWBBJ9AoIAbS0euBpvYILV86j9fq14Oet317D2UunJH93cO+7wn7u2a0XbunWA/YkO5yOVHq5OoVANQDrwe1phKf1Cs5fqcXFr5vQePU8ttW+E9fvnJA+B6nd+6LXzSnIcN4BR9dbkNzVQYNBBECIN+qaz6HafRonGo7E3dGVIMWeheEpeRjQYyDu7DscaT370WARARDM6vByCGHigB9hYOogZPXJgT3JToNJBECQ5/Q1+PLsPmw9+yGavC5TPFOucyrG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"}}}}}},"responses":{"200":{"description":"successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"}}}},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["PROTECT"]},"/v2/check-id-document/{configId}":{"post":{"tags":["AI check operations"],"summary":"Check an id document with the AI.","description":"The response (_CheckResult_ schema) containing only the checkId and possibly ApiNotices is returned immediately after the request. The actual body (_CheckResult_ schema) is sent to the _callbackUrl_ after the AI has finished processing.","operationId":"checkIdDocument","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The DocumentCheckRequestData containing data needed for the id document check.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentCheckRequestData"},"examples":{"German ID":{"description":"German ID","value":{"callback":{"callbackUrl":"https://www.example.com/callback?idcheck"},"documentCountry":"DE","documentType":"national_identity_card","frontImage":"/9j/4AAQSkZJRgABAQEASABIAAD...","backImage":"/9j/4AAQSkZJRgABAQEASABIAAD...","selfieImage":"/9j/4AAQSkZJRgABAQEASABIAAD..."}}}}},"required":true},"responses":{"202":{"description":"Input accepted: Wait for callback.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"},"example":{"checkId":"b1588f66-1b12-4cef-9d4e-ab8fdf96b7bb"}}}},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["IDENT"]},"/v2/age-verification/{configId}":{"post":{"tags":["AI check operations"],"summary":"Perform an age verfication check for a given selfie with the AI.","description":"The response (_CheckResult_ schema) containing only the checkId and possibly ApiNotices is returned immediately after the request. The actual body (_CheckResult_ schema) is sent to the _callbackUrl_ after the AI has finished processing.","operationId":"ageVerification","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The BiometricCheckRequestData containing data needed for the age verification check.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BiometricCheckRequestData"},"examples":{"Selfie":{"description":"Selfie","value":{"callback":{"callbackUrl":"https://www.example.com/callback?ageestimation"},"selfieImage":"/9j/4AAQSkZJRgABAQEASABIAAD..."}}}}},"required":true},"responses":{"202":{"description":"Input accepted: Wait for callback.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"},"example":{"checkId":"1a8ee62a-41a6-4319-a14e-0b97dac21faf"}}}},"402":{"description":"Not enough credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"x-api-brand":["IDENT"]},"/v2/info":{"get":{"tags":["Balance endpoints"],"summary":"Get information for the given license key.","description":"Get the LicenseInfo schema for the given license key in the authorization header.","operationId":"getLicenseInfo","responses":{"200":{"description":"successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseInfo"}}}},"404":{"description":"The entered license key was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]}},"/v2/cost/{configId}/{frames}":{"get":{"tags":["Balance endpoints"],"summary":"Get the cost of the configuration for moving images.","description":"The cost is subtracted from the license key after a successful check operation for moving images.\n\n<b>NOTICE: The returned cost is an approximation. The exact cost can only be determined during the check operation.<b>","operationId":"getVideoCost","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"frames","in":"path","description":"The number of frames that the AI should check.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"The cost of the given configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"429":{"description":"The ai could not handle the request because it is either overloaded or currently down for maintenance. This is a temporary state. A 'Retry-After' Header is included in the response to signal the client to retry after a certain amount of seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]}},"/v2/cost/{configId}/{fps}/{duration}":{"get":{"tags":["Balance endpoints"],"summary":"Get the cost of the configuration for moving images.","description":"The cost is subtracted from the license key after a successful check operation for moving images.\n\n<b>NOTICE: The returned cost is an approximation. The exact cost can only be determined during the check operation.<b>","operationId":"getVideoCost_1","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"fps","in":"path","description":"The frames per second of the video or stream.","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"duration","in":"path","description":"The duration in seconds of the video or stream.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"The cost of the given configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"429":{"description":"The ai could not handle the request because it is either overloaded or currently down for maintenance. This is a temporary state. A 'Retry-After' Header is included in the response to signal the client to retry after a certain amount of seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]}},"/v2/cost/{configId}":{"get":{"tags":["Balance endpoints"],"summary":"Get the cost of the configuration for a single image.","description":"The cost is subtracted from the license key after a successful check-image operation.","operationId":"getCost","parameters":[{"name":"configId","in":"path","description":"The configuration id from the Basic Configuration operations.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The cost of the given configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}},"429":{"description":"The ai could not handle the request because it is either overloaded or currently down for maintenance. This is a temporary state. A 'Retry-After' Header is included in the response to signal the client to retry after a certain amount of seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]}},"/v2/config/{configId}":{"get":{"tags":["Configuration Management"],"summary":"Get a specific AI configuration.","description":"Returns a specific AI configuration for the requested id.","operationId":"getConfig","parameters":[{"name":"configId","in":"path","description":"The id of the configuration that is being requested.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"404":{"description":"configId not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]},"delete":{"tags":["Configuration Management"],"summary":"Delete an AI configuration.","description":"Deletes the AI configuration with the given id.","operationId":"deleteConfig","parameters":[{"name":"configId","in":"path","description":"The id of the configuration that should be deleted.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"successful operation."},"404":{"description":"configId not found.","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiNotice"}}}}},"security":[{"LICENSE-KEY":[]}]}}},"components":{"schemas":{"AgeAttribute":{"allOf":[{"$ref":"#/components/schemas/Attribute"},{"type":"object","properties":{"age":{"type":"integer","format":"int32","description":"The estimated age of the person in years."},"ageMin":{"type":"integer","format":"int32","description":"The estimated minimum age of the person in years."},"ageMax":{"type":"integer","format":"int32","description":"The estimated maximum age of the person in years."},"probability":{"type":"integer","format":"int32","description":"The probability of the estimated age.","example":94}}}],"description":"Attributes qualifying the _numericAgeEstimation_ classification."},"AgeVerificationAttribute":{"type":"object","description":"Attributes qualifying the _ageVerification_ classification.","properties":{"type":{"type":"string","description":"Used as a type discriminator for json to object conversion.","example":"BaseAttribute"},"age":{"type":"integer","format":"int32","description":"The estimated age of the person in the selfie in years."},"ageMin":{"type":"integer","format":"int32","description":"The estimated minimum age of the person in the selfie in years."},"ageMax":{"type":"integer","format":"int32","description":"The estimated maximum age of the person in the selfie in years."}}},"AgeVerificationDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"checkId":{"type":"string","description":"The id of the check that lead to the detection"},"faceSimilarity":{"type":"integer","format":"int32","description":"Indicates the similarity-level of whether two faces belong to the same person"},"faceLivenessCheckScore":{"type":"integer","format":"int32","description":"Indicates the liveness score of the selfie image"},"processedChecks":{"$ref":"#/components/schemas/AgeVerificationSubChecks","description":"The sub-checks that were processed"},"attributes":{"type":"array","description":"Attributes of the _ageVerification_ detection.","items":{"$ref":"#/components/schemas/AgeVerificationAttribute"}}}}],"description":"Contains other features specific to _ageVerification_ detection."},"AgeVerificationSubChecks":{"type":"object","description":"Contains information on ageVerification sub-checks","properties":{"faceLivenessCheck":{"type":"string","description":"Indicates if the selfie image is genuine and not a photo of an image or of a screen","enum":["passed","failed","not_processed"]},"ageValidationCheck":{"type":"string","description":"Indicates if the estimated age is greater than or equal to a predefined minimum accepted age","enum":["passed","failed","not_processed"]}}},"ApiNotice":{"type":"object","properties":{"code":{"type":"integer","format":"int32","description":"The status code of the response.","example":418},"level":{"type":"string","description":"The severity level of the notice.","enum":["INFO","WARN","ERROR"],"example":"WARN"},"message":{"type":"string","description":"A hopefully detailed message describing what went wrong.","example":"Here´s an example of what I can do, I can turn my handle into a spout, Tip me over and pour me out!"}}},"Attribute":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"type":{"type":"string","description":"Used as a type discriminator for json to object conversion.","example":"BaseAttribute"}}},"BaseAttribute":{"type":"object","description":"An attribute describes a quality or characteristic that a detection object has.","properties":{"type":{"type":"string","description":"Used as a type discriminator for json to object conversion.","example":"BaseAttribute"},"classification":{"type":"string","description":"The classification of the recognized attribute.","example":"female"},"probability":{"type":"integer","format":"int32","description":"The probability that the attribute found matches the classification.","example":94}}},"BaseDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"attributes":{"type":"array","anyOf":[{"$ref":"#/components/schemas/BaseAttribute"},{"$ref":"#/components/schemas/ValueAttribute"}],"description":"Attributes characterizing the _base_ detection.","items":{"$ref":"#/components/schemas/Attribute"}}}}],"description":"A detection describes the object found with all its details."},"BiometricCheckRequestData":{"type":"object","properties":{"callback":{"$ref":"#/components/schemas/Callback"},"frontImage":{"type":"string","description":"The base64-encoded front image of the document to be checked in either jpg or png file format."},"selfieImage":{"type":"string","description":"The base64-encoded selfie image to be checked in either jpg or png file format.","minLength":1},"minimumAcceptedAge":{"type":"integer","format":"int32","description":"The minimum age in years accepted for a DocumentCheck, if applicable. Defaults to 18 if not specified."},"documentHolderId":{"type":"string","description":"The documentHolderId from a previous successful DocumentCheck."}},"required":["callback","selfieImage"]},"BreastDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"attributes":{"type":"array","description":"Attributes characterizing the _breast_ detection. Mainly contains attributes that were activated with the _nippleCheck_ prototype.","items":{"$ref":"#/components/schemas/BaseAttribute"}}}}],"description":"Contains further characteristics particular to _breast_ detection."},"BrokenRule":{"type":"object","description":"Describes what and why a rule was broken according the the applied during the configuration.","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"found":{"type":"integer","format":"int32","description":"The count of how many instances of the classification object were found.","example":1},"min":{"type":"integer","format":"int32","description":"The minimum allowed instances of the classification object.","example":1},"max":{"type":"integer","format":"int32","description":"The maximum allowed instances of the classification object.","example":1},"severity":{"type":"integer","format":"int32","description":"The severity of the classification object set while configuring the AI.","example":100},"duration":{"type":"number","format":"float","description":"The overall duration of the found classification. Not available for still images.","example":8.32}}},"Callback":{"type":"object","description":"Callback options to send a response to.","properties":{"callbackUrl":{"type":"string","format":"uri","description":"Define a URL where a response should be sent.","example":"http://www.example.com/callback?video"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Define headers to send to the URL.","example":{"Authorization":"Basic Rm9yemEgTmFwb2xpLCBzZW1wcmUh"}}},"required":["callbackUrl"]},"CheckResult":{"type":"object","description":"The root object returned after a check operation.","properties":{"summary":{"$ref":"#/components/schemas/Summary"},"encodings":{"type":"array","items":{"$ref":"#/components/schemas/Encoded"}},"brokenRules":{"type":"array","items":{"$ref":"#/components/schemas/BrokenRule"}},"detections":{"type":"array","anyOf":[{"$ref":"#/components/schemas/BaseDetection"},{"$ref":"#/components/schemas/FaceDetection"},{"$ref":"#/components/schemas/BreastDetection"},{"$ref":"#/components/schemas/HairDetection"},{"$ref":"#/components/schemas/IdDocumentDetection"},{"$ref":"#/components/schemas/AgeVerificationDetection"}],"items":{"oneOf":[{"$ref":"#/components/schemas/AgeVerificationDetection"},{"$ref":"#/components/schemas/BaseDetection"},{"$ref":"#/components/schemas/BreastDetection"},{"$ref":"#/components/schemas/FaceDetection"},{"$ref":"#/components/schemas/HairDetection"},{"$ref":"#/components/schemas/IdDocumentDetection"},{"$ref":"#/components/schemas/ImageAnalysisDetection"},{"$ref":"#/components/schemas/PoaDocumentDetection"},{"$ref":"#/components/schemas/TextDetection"}]}},"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"notifications":{"type":"array","items":{"$ref":"#/components/schemas/ApiNotice"}},"checkId":{"type":"string","description":"The id of the async running check"}}},"Config":{"type":"object","description":"Can be used to set a multitude of pre-defined commonly used rules without the need of specifying each parameter set.","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the AI configuration. Use this for any check operation to tell the AI how to behave."},"name":{"type":"string","description":"The name of the AI configuration.","example":"Profile picture configuration","maxLength":100,"pattern":"^[0-9a-zA-Z _-]{0,100}$"},"kycCheckParameters":{"type":"array","description":"Configures your kyc checks. You can combine certain parameters to customize a single check operation.","items":{"type":"string","description":"Names of kyc related parameters, that can be used to configure check behaviour.\n* _identityDocumentCheck_ - Checks for validity and integrity of an official document.\n* _biometricCheck_ - Checks if the provided selfie matches the provided document. If used stand-alone the document holder has to be previously identified by an identityDocumentCheck\n* _considerKnownFaces_ - If this flag is present, the identityDocumentChecks, the biometricChecks and the liveIdentification would take already known selfies from documentHolders into consideration.\n* _formAutoFill_ - Performs an autofill for a given document image without performing a validity or integrity check.\n* _ageVerificationCheck_ - Performs an age verification check for a provided selfie.\n* _proofOfAddressCheck_ - Performs a proof of address check for a document.\n* _liveIdentification_ - Performs a guided live identification via a UI resulting in an identityDocumentCheck and biometricCheck.\n* _liveIdentityDocumentCheck_ - Performs a guided live identification via a UI resulting in an identityDocumentCheck.\n* _liveSelfie_ - Flag for the liveIdentification signaling to take a selfie video instead of a selfie image.\n* _liveProofOfAddress_ - Can be used standalone or as a flag for the liveIdentification to also take a proof of address document into account.\n* _liveAgeVerificationCheck_ - Performs a guided live age verification check via a UI. If used together with liveIdentification or liveIdentityDocumentCheck, liveAgeVerificationCheck will run first and if age is too low a liveIdentification or liveIdentityDocumentCheck is made as well.\n* _videoUploadIdentification_ - Upload a video to perform an identityDocumentCheck and biometricCheck via a UI.\n* _videoUploadAgeVerificationCheck_ - Upload a video to perform an ageVerificationCheck via a UI.\n* _iFrameFlow_ - Flag to signal that the iFrame flow should be used for the UI driven identification. Either iFrameFlow or redirectFlow must be present if liveIdentification, liveAgeVerificationCheck or videoUploadIdentification is configured.\n* _redirectFlow_ - Flag to signal that the redirect flow should be used for the UI driven identification. Either iFrameFlow or redirectFlow must be present if liveIdentification, liveAgeVerificationCheck or videoUploadIdentification is configured.\n* _addEncodingsToResult_ - Flag to signal that document and selfie images of the check should be attached to the CheckResult.\n","enum":["identityDocumentCheck","automatedDocumentRecognition","biometricCheck","formAutofill","ageVerificationCheck","proofOfAddressCheck","faceAuthentication","liveIdentification","liveIdentityDocumentCheck","liveSelfie","liveProofOfAddressCheck","liveAgeVerificationCheck","liveFaceAuthentication","videoUploadIdentification","videoUploadAgeVerificationCheck","considerKnownFaces","addEncodingsToResult","iFrameFlow","redirectFlow"]},"uniqueItems":true},"prototypes":{"type":"array","description":"Configures your detection. As there are literally hundreds of parameters, prototypes can be used to get useful behaviour. This includes a default setting for parameters and rules that should be applied to the check operations. You can use multiple prototypes for a single check operation.","enum":["nudityCheck","ageEstimation","illegalSymbols","textRecognition","attributesCheck","bodyAttributes","nippleCheck","unwantedSubstances","violenceCheck","selfieCheck","celebrityCheck","advancedTextRecognition","imageCategorization","textModeration","languageDetection"],"example":["nudityCheck"],"items":{"type":"string","description":"Name of commonly used rule sets (prototypes). That can be used to speed up the setup process.\n\n* _nudityCheck_ - Commonly used prototype to check for nudity.\n* _ageEstimation_ - Checks if there are children, adults or seniors recognizable. This is intended to be a suggestion to help you implement further steps.\n* _illegalSymbols_ - Checks for symbols that are not permitted in Germany.\n* _textRecognition_ - Checks for text occurrences.\n* _attributesCheck_ - Checks for attributes of a person (e.g. female, male, glasses, hair, etc).\n* _bodyAttributes_ - Checks for attributes of the persons body.\n* _nippleCheck_ - Check for determining if the object recognized as breast has a nipple.\n* _unwantedSubstances_ - Check for undesired or unwanted substances.\n* _violenceCheck_ - Checks for recognizing weapons, camouflage, etc.\n* _selfieCheck_ - Checks for pre-defined gestures in a selfie.\n* _celebrityCheck_ - Checks for presence of well-known celebrity faces in images.\n* _advancedTextRecognition_ - Performs advanced text extraction with contextual analysis.\n* _imageCategorization_ - Classifies images into categories such as objects, scenes, or styles.\n* _textModeration_ - Detects and flags sensitive or prohibited text content including personal information and profanity.\n* _languageDetection_ - Detects the language of the given text or text contained in an image.\n\n\n"},"uniqueItems":true}}},"Coordinates":{"type":"object","description":"Describes the position and bounds of the classification object.","properties":{"rectangles":{"type":"array","items":{"$ref":"#/components/schemas/Rectangle"}},"segments":{"type":"array","items":{"$ref":"#/components/schemas/Segment"}}}},"Data":{"type":"object","description":"The data to be checked.","properties":{"data":{"type":"string","description":"The http(s) url or base64 encoded data uri of the image that needs to be checked.","example":"https://example.com/path/to/your/image.png"}},"required":["data"]},"Detection":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"type":{"type":"string","description":"Used as a type discriminator for json to object conversion.","example":"FaceDetection"}}},"DocumentCheckRequestData":{"type":"object","properties":{"callback":{"$ref":"#/components/schemas/Callback"},"frontImage":{"type":"string","description":"The base64-encoded front image of the document to be checked in either jpg or png file format.","minLength":1},"backImage":{"type":"string","description":"The base64-encoded back image of the document to be checked in either jpg or png file format."},"selfieImage":{"type":"string","description":"The base64-encoded selfie image to be checked in either jpg or png file format."},"minimumAcceptedAge":{"type":"integer","format":"int32","description":"The minimum age in years accepted for a DocumentCheck, if applicable. Defaults to 18 if not specified."},"documentType":{"type":"string","description":"The type of the document","enum":["passport","driving_license","national_identity_card","residence_permit","visa","bank_statement","utility_bill","tax_document","unidentified","unknown"],"example":"national_identity_card"},"documentCountry":{"type":"string","description":"The country of the document in ISO 3166-1 alpha-2 format.","example":"DE"}},"required":["callback","frontImage"]},"Encoded":{"type":"object","description":"Contains the resulting media as a data URL (RFC 2397) encoded string or an URL to download that media.","properties":{"name":{"type":"string","description":"Contains a randomly generated filename, might be null."},"data":{"type":"string","format":"binary","description":"The encoded image in data URL format (RFC 2397)."},"downloadUrl":{"type":"string","description":"A one time URL to download the resulting video. The URL is only valid for 24 hours."}}},"Event":{"type":"object","description":"Describes an event that lead to a broken rule.","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"start":{"type":"number","format":"float","description":"The start in seconds where the classification object is found.","example":8.32},"duration":{"type":"number","format":"float","description":"The duration of the event in seconds until the classification object is no longer in frame. The current event is ongoing if the duration is not set.","example":3.12},"severity":{"type":"integer","format":"int32","description":"The severity of the classification object set while configuring the AI.","example":100}}},"FaceDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"attributes":{"type":"array","anyOf":[{"$ref":"#/components/schemas/BaseAttribute"},{"$ref":"#/components/schemas/ValueAttribute"}],"description":"Attributes characterizing the _face_ detection. Mainly contains attributes that were activated with the _ageEstimation_ prototype.","items":{"$ref":"#/components/schemas/Attribute"}},"subDetections":{"type":"array","anyOf":[{"$ref":"#/components/schemas/BaseDetection"},{"$ref":"#/components/schemas/HairDetection"}],"description":"A set of sub-detection that are particular to the _face_ detection. Mainly contains detections that were activated with the _attributesCheck_ prototype.","items":{"$ref":"#/components/schemas/Detection"}}}}],"description":"Contains further characteristics particular to _face_ detection."},"HairAttribute":{"type":"object","description":"Attributes qualifying the _hair_ classification.","properties":{"type":{"type":"string","description":"Used as a type discriminator for json to object conversion.","example":"BaseAttribute"},"color":{"type":"string","description":"The color of the hair.","enum":["black","darkBrown","brown","lightBrown","darkBlonde","blonde","darkGrey","grey","red","white","other"]},"style":{"type":"string","description":"The hair style.","enum":["longHaired","shortHaired"]}}},"HairDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"attributes":{"type":"array","description":"Contains attributes for the _hair_ classification.","items":{"$ref":"#/components/schemas/HairAttribute"}}}}],"description":"Contains further characteristics particular to _hair_ detection."},"IdDocumentAttribute":{"type":"object","description":"Attributes qualifying the _idDocument_ classification.","properties":{"type":{"type":"string","description":"Used as a type discriminator for json to object conversion.","example":"BaseAttribute"},"documentType":{"type":"string","description":"The type of the document","enum":["passport","driving_license","national_identity_card","residence_permit","visa","bank_statement","utility_bill","tax_document","unidentified","unknown"],"example":"national_identity_card"},"documentNumber":{"type":"string","description":"The number of the document"},"isTwoSided":{"type":"boolean","description":"Indicates whether the document is two-sided"},"issuingAuthority":{"type":"string","description":"The issuing authority"},"issuingDate":{"type":"string","format":"date","description":"The issuing date"},"issuingCountry":{"type":"string","description":"The document's country in ISO 3166-1 alpha-2 format","example":"DE"},"expirationDate":{"type":"string","format":"date","description":"The expiration date"},"accessNumber":{"type":"string","description":"The access number"},"firstNames":{"type":"array","description":"The document holder's first name(s)","items":{"type":"string"}},"lastNames":{"type":"array","description":"The document holder's last name(s)","items":{"type":"string"}},"birthName":{"type":"string","description":"The document holder's birth name"},"dateOfBirth":{"type":"string","format":"date","description":"The document holder's date of birth"},"placeOfBirth":{"type":"string","description":"The document holder's place of birth"},"nationality":{"type":"string","description":"The document holder's nationality in ISO 3166-1 alpha-2 format","example":"DE"},"gender":{"type":"string","description":"The document holder's gender","enum":["male","female","other"],"example":"male"},"height":{"type":"string","description":"The document holder's height"},"address":{"type":"string","description":"The document holder's address"},"machineReadableZone":{"type":"array","description":"The document's machine readable zone (MRZ), at most 3 lines","items":{"type":"string"}}}},"IdDocumentDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"checkId":{"type":"string","description":"The id of the check that lead to the detection"},"hasOfficialDocument":{"type":"boolean","description":"Indicates whether the identified document is official"},"comparable":{"type":"boolean","description":"Indicates whether the provided selfie-image is comparable to the document"},"faceSimilarity":{"type":"integer","format":"int32","description":"Indicates the similarity-level of whether two faces belong to the same person"},"faceLivenessCheckScore":{"type":"integer","format":"int32","description":"Indicates the liveness score of the selfie image"},"documentFrontLivenessScore":{"type":"integer","format":"int32","description":"Indicates the liveness score of the front side image of the document"},"documentBackLivenessScore":{"type":"integer","format":"int32","description":"Indicates the liveness score of the back side image of the document"},"processedChecks":{"$ref":"#/components/schemas/IdDocumentSubChecks","description":"The sub-checks that were processed"},"attributes":{"type":"array","description":"Attributes of the _idDocument_ detection.","items":{"$ref":"#/components/schemas/IdDocumentAttribute"}},"documentHolderId":{"type":"string","description":"The id of the documentHolder"},"knownFaces":{"type":"array","description":"A list of known faces, describing which other documentHolders match this documentHolder with a certain similarity","items":{"$ref":"#/components/schemas/KnownFace"}}}}],"description":"Contains further characteristics particular to _idDocument_ detection."},"IdDocumentSubChecks":{"type":"object","description":"Contains information on idDocument sub-checks","properties":{"mrzChecksum":{"type":"string","description":"Indicates whether the MRZ checksum is correct","enum":["passed","failed","not_processed"]},"mrzFormat":{"type":"string","description":"Indicates whether the MRZ format is correct","enum":["passed","failed","not_processed"]},"mrzConsistency":{"type":"string","description":"Indicates whether the MRZ is consistent with the document type","enum":["passed","failed","not_processed"]},"expirationDate":{"type":"string","description":"Indicates whether the expirationDate is valid","enum":["passed","failed","not_processed"]},"securityElements":{"type":"string","description":"Indicates whether the document's security elements are valid","enum":["passed","failed","not_processed"]},"photoLocation":{"type":"string","description":"Indicates whether the photo is in the correct location for a given document type","enum":["passed","failed","not_processed"]},"blacklistCheck":{"type":"string","description":"Indicates whether a competent authority deny-listed the ID document","enum":["passed","failed","not_processed"]},"photocopyCheck":{"type":"string","description":"Indicates whether the document is a photocopy","enum":["passed","failed","not_processed"]},"tamperingCheck":{"type":"string","description":"Indicates whether the document image has been digitally tampered with","enum":["passed","failed","not_processed"]},"specimenCheck":{"type":"string","description":"Indicates whether the document has been copied from the Internet","enum":["passed","failed","not_processed"]},"documentModelIdentification":{"type":"string","description":"Indicates whether the document model has been identified and whether or not the document conforms to official specifications","enum":["passed","failed","not_processed"]},"documentLivenessCheck":{"type":"string","description":"Indicates if the document image is genuine and not a photo of an image or of a screen","enum":["passed","failed","not_processed"]},"dataIntegrityCheck":{"type":"string","description":"Indicates whether the data fields contain the correct type of content","enum":["passed","failed","not_processed"]},"dataConsistencyCheck":{"type":"string","description":"Indicates whether the information on both sides of the document is consistent","enum":["passed","failed","not_processed"]},"ageValidationCheck":{"type":"string","description":"Indicates if the extracted age is greater than or equal to a predefined minimum accepted age","enum":["passed","failed","not_processed"]},"spoofedImageAnalysis":{"type":"string","description":"Indicates whether the selfie image is spoofed, copied from the Internet, or is a known deny-listed image","enum":["passed","failed","not_processed"]},"faceLivenessCheck":{"type":"string","description":"Indicates if the selfie image is genuine and not a photo of an image or of a screen","enum":["passed","failed","not_processed"]},"voiceChallengeCheck":{"type":"string","description":"Indicates if the enduser had answered correctly during the voice challenge","enum":["passed","failed","not_processed"]},"actionChallengeCheck":{"type":"string","description":"Indicates if the enduser had moved correctly during the actions challenge","enum":["passed","failed","not_processed"]},"firstNameConsistency":{"type":"string","description":"Indicates if the first name on the document and the MRZ are consistent","enum":["passed","failed","not_processed"]},"lastNameConsistency":{"type":"string","description":"Indicates if the last name on the document and the MRZ are consistent","enum":["passed","failed","not_processed"]},"dobConsistency":{"type":"string","description":"Indicates if the date of birth on the document and the MRZ are consistent","enum":["passed","failed","not_processed"]},"documentNumberConsistency":{"type":"string","description":"Indicates if the document number on the document and the MRZ are consistent","enum":["passed","failed","not_processed"]},"issuingDateConsistency":{"type":"string","description":"Indicates if the issuing date on the document and the MRZ are consistent","enum":["passed","failed","not_processed"]},"expirationDateConsistency":{"type":"string","description":"Indicates if the expiration date on the document and the MRZ are consistent","enum":["passed","failed","not_processed"]},"knownFacesCheck":{"type":"string","description":"Indicates if the selfie image matches an aready existing client/customer","enum":["passed","failed","not_processed"]},"faceSimilarityCheck":{"type":"string","description":"Indicates if the selfie image and the ID document image belong to the same person","enum":["passed","failed","not_processed"]}}},"ImageAnalysisDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"attributes":{"type":"array","description":"Attributes characterizing the _image_ detection.","items":{"$ref":"#/components/schemas/Attribute"}}}}],"description":"Contains further characteristics of the image itself."},"KnownFace":{"type":"object","properties":{"documentHolderId":{"type":"string","description":"The id of the documentHolder"},"faceSimilarity":{"type":"integer","format":"int32","description":"Indicates the similarity-level between the known face and the documentHolder's selfie"}}},"KycUiParameter":{"type":"object","description":"A collection of parameters that determine the appearance and behaviour of the user interface (UI).","properties":{"primaryColor":{"type":"string","default":"4caf50","description":"The primary color of the UI in hex format (rrggbb)."},"backgroundColor":{"type":"string","default":"333333","description":"The background color of the UI in hex format (rrggbb)."},"textColor":{"type":"string","default":"000000","description":"The text color of the UI in hex format (rrggbb)."},"logo":{"type":"string","description":"The company logo for the UI in PNG fileformat (512 px * 512 px) as a base64 encoded string."},"logoBackgroundColor":{"type":"string","default":"ffffff","description":"The logo background color in hex format (rrggbb)."},"language":{"type":"string","description":"The language related settings for the UI as a JSON."}}},"LanguageAttribute":{"allOf":[{"$ref":"#/components/schemas/Attribute"},{"type":"object","properties":{"isoLanguage":{"type":"string","description":"The ISO 639-1 language code.","example":"en"},"probability":{"type":"integer","format":"int32","description":"The probability that the text matches the language.","example":94}}}],"description":"Attribute that contains the language of a text or spoken words."},"LicenseInfo":{"type":"object","description":"Describes the current balance of the given license key. A key has a certain amount of credits that can be used for any kind of AI recognition. The license key is invalid, when all of the credits have been used, the license was disabled or expired.","example":{"creditsUsed":14,"creditsRemaining":86,"totalCredits":100,"licenseKey":"ABc-123-DeF-456","privileges":{"has-video-privilege":"true","has-stream-privilege":"false","max-config-storage":"10"}},"properties":{"creditsUsed":{"type":"integer","format":"int32","description":"Credits used for the license key.","example":14},"creditsRemaining":{"type":"integer","format":"int32","description":"Credits remaining for the license key.","example":86},"totalCredits":{"type":"integer","format":"int32","description":"Total credits contained within the license key.","example":100},"licenseKey":{"type":"string","description":"The license key"},"privileges":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of privileges"}},"title":"LicenseInfo"},"LiveDocumentCheckRequestData":{"type":"object","description":"Data containing neccessary information to handle the enduser live check.","properties":{"callback":{"$ref":"#/components/schemas/Callback","description":"The URL the final check result is being sent to."},"statusUrl":{"type":"string","format":"uri","description":"The URL to send the intermediate status requests to. If not set, no intermediate status requests will be sent."},"endUserRedirectUrl":{"type":"string","format":"uri","description":"If set the enduser is being redirected to this URL after the check is finished."},"tokenValidityInSeconds":{"type":"integer","format":"int64","description":"The validity duration of a started ident process in seconds. Defaults to 3600 seconds = 60 minutes."},"documentHolderId":{"type":"string","description":"The documentHolderId from a previous successful live identification."},"minimumAcceptedAge":{"type":"integer","format":"int32","description":"The minimum age in years accepted for a check, if applicable. Defaults to 18 if not specified."}},"required":["callback"]},"LiveDocumentCheckResponseData":{"type":"object","description":"Response object containing necessary information to start the enduser live document check on the client side.","properties":{"eventId":{"type":"string","description":"unique id of this live document check"},"identToken":{"type":"string","description":"token to secure the live document check, might be null since already incorporated into endUserIdentUrl"},"endUserIdentUrl":{"type":"string","format":"uri","description":"URL to send the enduser to, to start the live document check"}}},"Param":{"type":"object","description":"A single parameter set for one classification, for example face, describing the behaviour of the AI. Each classification has default parameters that are set if these are empty.","properties":{"classification":{"type":"string","description":"The classification of the object, that the element refers to. The following is a tree representation of the prototypes and their containing classifications. Default parameter values are defined per classification object. The default values of 'min', 'max' and 'drawMode' are witten after the name of the classification object in that order. Use the prototype names to set parameters to all of the containing classifications.\n\n##### nudityCheck\n> _A prototype containing classifications for basic human attributes and sexual contents. This prototype and the containing classifications are activated by default._\n* _face_ _(1, 3, 0)_\n* _hand_ _(0, -1, 0)_\n* _foot_ _(0, -1, 0)_\n* _footwear_ _(0, -1, 0)_\n* _chest_ _(0, -1, 0)_\n* _breast_ _(0, 0, 2)_\n* _vulva_ _(0, 0, 2)_\n* _penis_ _(0, 0, 2)_\n* _vagina_ _(0, 0, 2)_\n* _buttocks_ _(0, 0, 2)_\n* _anus_ _(0, 0, 2)_\n* _oral_ _(0, 0, 2)_\n* _penetration_ _(0, 0, 2)_\n* _toy_ _(0, -1, 0)_\n* _bondage_ _(0, -1, 0)_\n* _gag_ _(0, -1, 0)_\n##### ageEstimation\n> _Contains classification objects for estimating the age of a human face. This prototype activates nudityCheck._\n* _child (*)_ _(0, 0, 6)_\n* _adult (*)_ _(0, -1, 0)_\n* _senior (*)_ _(0, -1, 0)_\n* _pose (*)_ _(0, 0, 0)_ - The age can not be estimated, due to a pose that hides facial features.\n##### illegalSymbols\n> _Contains various classification objects of symbols that are prohibited in Germany (e.g. Hakenkreuz, SS, etc). These are grouped under a single name._\n* _illegalSymbols_ _(0, 0, 1)_\n##### textRecognition\n> _Contains letters, numbers and some symbols (e.g. @, #, etc) as classification objects. These are grouped under a single name._\n* _textRecognition_ _(0, 6, 6)_\n##### attributesCheck\n> _Contains classification objects for various attributes of the human face. This prototype activates nudityCheck._\n* _female_ _(0, -1, 0)_\n* _male_ _(0, -1, 0)_\n* _hair_ _(0, -1, 0)_\n* _hairless_ _(0, -1, 0)_\n* _beard_ _(0, -1, 0)_\n* _moustache_ _(0, -1, 0)_\n* _headpiece_ _(0, -1, 0)_\n* _glasses_ _(0, -1, 0)_\n* _sunglasses_ _(0, -1, 0)_\n* _mask_ _(0, -1, 0)_\n* _slimSizedFace (*)_ _(0, -1, 0)_\n* _realSizedFace (*)_ _(0, -1, 0)_\n* _plusSizedFace (*)_ _(0, -1, 0)_\n##### bodyAttributes\n> _Contains classification objects for determining the body size._\n* _slimSized_ _(0, -1, 0)_\n* _realSized_ _(0, -1, 0)_\n* _plusSized_ _(0, -1, 0)_\n##### nippleCheck\n> _Contains classifications for determining if the object recognized as breast has a nipple. This prototype activates nudityCheck_\n* _noNipple_ _(0, -1, 0)_\n* _hasNipple_ _(0, 0, 0)_\n##### unwantedSubstances\n> _Contains classification objects for different substances._\n* _beer_ _(0, -1, 0)_\n* _beerBottle_ _(0, -1, 0)_\n* _beerCan_ _(0, -1, 0)_\n* _wine_ _(0, -1, 0)_\n* _wineBottle_ _(0, -1, 0)_\n* _cocktail_ _(0, -1, 0)_\n* _alcohol_ _(0, -1, 0)_\n* _cannabis_ _(0, 0, 0)_\n* _cigarette_ _(0, 0, 0)_\n* _cocaine_ _(0, 0, 0)_\n* _heroine_ _(0, 0, 0)_\n* _coffee_ _(0, -1, 0)_\n##### violenceCheck\n> _Contains classification objects for violent items or acts._\n* _camouflage_ _(0, -1, 0)_\n* _club_ _(0, -1, 0)_\n* _knife_ _(0, 0, 0)_\n* _sword_ _(0, 0, 0)_\n* _pistol_ _(0, 0, 0)_\n* _rifle_ _(0, 0, 0)_\n* _cannon_ _(0, 0, 0)_\n* _fire_ _(0, -1, 0)_\n##### selfieCheck\n> _Classification objects representing various pre-defined poses for the selfie task._\n* _hand2mouth_ _(0, 1, 0)_\n* _point2nose_ _(0, 1, 0)_\n* _relaxed_ _(0, 1, 0)_\n* _point2chin_ _(0, 1, 0)_\n* _hand2cheek_ _(0, 1, 0)_\n* _excellent_ _(0, 1, 0)_\n* _nice_ _(0, 1, 0)_\n* _thinking_ _(0, 1, 0)_\n* _thumbUp_ _(0, 1, 0)_\n* _victory_ _(0, 1, 0)_\n* _lookout_ _(0, 1, 0)_\n* _fingerUp_ _(0, 1, 0)_\n* _middleFinger_ _(0, 0, 0)_\n##### celebrityCheck\n> _Detects and identifies popular celebrities in the image. This prototype activates nudityCheck._\n* _celebrity_ _(0, 0, 0)_\n##### advancedTextRecognition\n> _Performs advanced text extraction with contextual analysis._\n* _text_ _(0, 0, 0)_\n##### imageCategorization\n##### textModeration\n> _Identifies phone numbers, social media handles, emails, websites, and offensive words for moderation purposes._\n* _phoneNumber_ _(0, 0, 0)_\n* _socialHandle_ _(0, 0, 0)_\n* _email_ _(0, 0, 0)_\n* _website_ _(0, 0, 0)_\n* _badWord_ _(0, 0, 0)_\n##### languageDetection\n\n\n_Classification objects that are marked with (*) are sub-classifications of face. Both face and the marked classification are affected by the given parameter values._\n\n_Please be aware that the default values can be subject to change. This is due to the difficulty of recognizing certain objects e.g. objects that are classified as toy._","enum":["nudityCheck","face","hand","foot","footwear","chest","breast","vulva","penis","vagina","buttocks","anus","oral","penetration","toy","bondage","gag","ageEstimation","child","adult","senior","pose","illegalSymbols","textRecognition","attributesCheck","female","male","hair","hairless","beard","moustache","headpiece","glasses","sunglasses","mask","slimSizedFace","realSizedFace","plusSizedFace","bodyAttributes","slimSized","realSized","plusSized","nippleCheck","noNipple","hasNipple","unwantedSubstances","beer","beerBottle","beerCan","wine","wineBottle","cocktail","alcohol","cannabis","cigarette","cocaine","heroine","coffee","violenceCheck","camouflage","club","knife","sword","pistol","rifle","cannon","fire","selfieCheck","hand2mouth","point2nose","relaxed","point2chin","hand2cheek","excellent","nice","thinking","thumbUp","victory","lookout","fingerUp","middleFinger","celebrityCheck","celebrity","advancedTextRecognition","text","textModeration","phoneNumber","socialHandle","email","website","badWord"],"example":"face"},"prototype":{"type":"string","description":"The prototype that the classification object belongs to. Setting the prototype will specify the parameters for the classification belonging to the prototype."},"min":{"type":"integer","format":"int32","description":"The minimum amount of objects allowed on the image. Setting the value to -1 will cause the AI to ignore this rule. For moving images this value is applied to a single frame.","minimum":-1},"max":{"type":"integer","format":"int32","description":"The maximum amount of objects allowed on the image. Setting the value to -1 will cause the AI to ignore this rule. For moving images this value is applied to a single frame.","minimum":-1},"severity":{"type":"integer","format":"int32","default":100,"description":"Set a value to define the severity of a broken rule of the given classification object.","example":100,"maximum":999,"minimum":0},"drawMode":{"type":"integer","format":"int32","description":"Set if and how a classification object should be drawn over. \n* _0_ - will draw nothing,\n* _1_ - will draw a frame with class name surrounding the object,\n* _2_ - will draw a filled rectangle that will mask the object,\n* _3_ - is a combination between _1_ and _2_ (frame/name + mask),\n* _6_ - will blur the object and\n* _7_ - is a combination between _1_ and _6_ (frame/name + blur).","maximum":7,"minimum":0},"grey":{"type":"integer","format":"int32","default":127,"description":"A grey scale color used in combination of _drawMode_ '2' or '3'. '0' will represent black, while the maximum '255' will be white.","maximum":255,"minimum":0},"scale":{"type":"number","format":"float","default":"1.0","description":"Scale of the bounds around the classification object. Specify a value to increase or decrease the size of the bounds. This is applied to the resulting media as well as the JSON coordinates.","maximum":4.0,"minimum":0.5},"ignore":{"type":"boolean","default":false,"description":"A shorthand to ignore the classification object. This is equal to setting _min=0_, _max=-1_ and _drawMode=0_."}},"required":["classification"]},"ParamSet":{"type":"object","description":"A set of parameters/rules that describe how the AI should behave.","properties":{"thresh":{"type":"number","format":"float","default":"0.5","description":"Threshold when an object can be recognized. Lowering the value will increase the probability of recognizing objects. A threshold of 0.5 would mean, that 50% of an object like a face must be visible, to be detected.Setting the value too low however, can cause false positives.","maximum":1.0,"minimum":0.0},"grey":{"type":"integer","format":"int32","default":127,"description":"A grey scale color to use for frame or masking. '0' will represent black, while the maximum '255' will be white.","maximum":255,"minimum":0},"minDuration":{"type":"integer","format":"int32","default":100,"description":"Set the overall minimum duration in milliseconds for a rule to be broken in moving images.","maximum":250,"minimum":50},"abortOnSeverity":{"type":"integer","format":"int32","default":-1,"description":"Set a severity on which to automatically stop the check operation. Works with moving images.Use '-1' to ignore this option.","minimum":-1},"params":{"type":"array","description":"A list of parameter sets that describe the rules of the objects.","items":{"$ref":"#/components/schemas/Param"}},"kycUiParameters":{"$ref":"#/components/schemas/KycUiParameter"}}},"PoaCheckRequestData":{"type":"object","properties":{"callback":{"$ref":"#/components/schemas/Callback"},"frontImage":{"type":"string","description":"The base64-encoded front image of the document to be checked in either jpg or png file format."},"documentType":{"type":"string","description":"The type of the document","enum":["passport","driving_license","national_identity_card","residence_permit","visa","bank_statement","utility_bill","tax_document","unidentified","unknown"],"example":"national_identity_card"},"documentHolderId":{"type":"string","description":"The documentHolderId from a previous successful check."}},"required":["callback","documentType"]},"PoaDocumentAttribute":{"type":"object","description":"Attributes qualifying the _poaDocument_ classification.","properties":{"type":{"type":"string","description":"Used as a type discriminator for json to object conversion.","example":"BaseAttribute"},"name":{"type":"string","description":"The document holder's name"},"documentType":{"type":"string","description":"The type of the document","enum":["passport","driving_license","national_identity_card","residence_permit","visa","bank_statement","utility_bill","tax_document","unidentified","unknown"],"example":"national_identity_card"},"issuer":{"type":"string","description":"The issuer of the document"},"issuingDate":{"type":"string","format":"date","description":"The issuing date"},"address":{"type":"string","description":"The document holder's address"},"addressCountry":{"type":"string","description":"The document holders's address country in ISO 3166-1 alpha-2 format","example":"DE"}}},"PoaDocumentDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"checkId":{"type":"string","description":"The id of the check that lead to the detection"},"processedChecks":{"$ref":"#/components/schemas/PoaDocumentSubChecks","description":"The sub-checks that were processed"},"attributes":{"type":"array","description":"Attributes of the _poaDocument_ detection.","items":{"$ref":"#/components/schemas/PoaDocumentAttribute"}},"documentHolderId":{"type":"string","description":"The id of the documentHolder"}}}],"description":"Contains further characteristics particular to _poaDocument_ detection."},"PoaDocumentSubChecks":{"type":"object","description":"Contains information on poaDocument sub-checks","properties":{"firstName":{"type":"string","description":"Indicates whether the first name is valid","enum":["passed","failed","not_processed"]},"lastName":{"type":"string","description":"Indicates whether the last name is valid","enum":["passed","failed","not_processed"]},"documentAge":{"type":"string","description":"Indicates whether the age of the document is valid (not older than 3 months)","enum":["passed","failed","not_processed"]},"ipOriginatesInAddressCountry":{"type":"string","description":"Indicates whether the client IP originates in the country of the address","enum":["passed","failed","not_processed"]},"ipNearbyAddress":{"type":"string","description":"Indicates whether the client IP is in reasonable distance from the address","enum":["passed","failed","not_processed"]}}},"Pricing":{"type":"object","description":"Contains information about the credit cost of a check operation.","properties":{"cost":{"type":"integer","format":"int64"}}},"Rectangle":{"type":"object","description":"Describes the bounds of a rectangle starting from the center.","properties":{"x0":{"type":"number","format":"float","description":"The center of the rectangle in the horizontal (x) direction.","example":0.1},"y0":{"type":"number","format":"float","description":"The center of the rectangle in the vertical (y) direction.","example":0.1},"width":{"type":"number","format":"float","description":"The total width of the rectangle in the horizontal (x) direction. Use _x0 - width / 2_ and _x0 + width / 2_ to get the left and right edges of the rectangle.","example":0.1},"height":{"type":"number","format":"float","description":"The total height of the rectangle in the vertical (y) direction. Use _y0 - height / 2_ and _y0 + height / 2_ to get the top and bottom edges of the rectangle.","example":0.1}}},"Segment":{"type":"object","description":"Describes the bounds of a segment.","properties":{"start":{"type":"integer","format":"int32","description":"The starting point of the segment.","example":0},"end":{"type":"integer","format":"int32","description":"The ending point of the segment.","example":3}}},"Summary":{"type":"object","description":"Summarizing the result of the AI.","properties":{"status":{"type":"string","description":"A simple status string that can be either _accept_ or _reject_.","example":"reject"},"brokenRulesCount":{"type":"integer","format":"int32","description":"The amount of broken rules that are contained in the source media.","example":0},"helpSuggested":{"type":"integer","format":"int32","description":"In cases where the AI is uncertain, this attribute is set (1), indication that it could be useful to double check the source media by a human.","example":0},"severity":{"type":"integer","format":"int32","description":"The highest severity value found amongst the broken rules.","example":100},"creditsConsumed":{"type":"integer","format":"int32","description":"The amount of credits that was consumed for the check.","example":3},"tags":{"type":"array","description":"A list of classification names that were found.","items":{"type":"string"},"uniqueItems":true},"rejectTags":{"type":"array","description":"A list of classification names that caused a rule to be broken.","items":{"type":"string"},"uniqueItems":true},"rejectReasons":{"type":"array","description":"The names of the classification groups that caused a rule to be broken.","items":{"type":"string"},"uniqueItems":true}}},"TextDetection":{"allOf":[{"$ref":"#/components/schemas/Detection"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized object.","example":"face"},"group":{"type":"string","description":"The group of the classification.","example":"human"},"id":{"type":"integer","format":"int32","description":"The id of the detection object.","example":1003},"probability":{"type":"integer","format":"int32","description":"The probability that the object found matches the classification.","example":94},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"content":{"type":"string","description":"The text that was detected","example":"This is my number 1234 56789"},"attributes":{"type":"array","anyOf":[{"$ref":"#/components/schemas/ValueAttribute"},{"$ref":"#/components/schemas/LanguageAttribute"}],"description":"Attributes characterizing the text.","items":{"$ref":"#/components/schemas/Attribute"}},"subDetections":{"type":"array","description":"A set of sub-detection for text moderation.","items":{"$ref":"#/components/schemas/BaseDetection"}}}}],"description":"Contains further characteristics regarding the moderation of text."},"ValueAttribute":{"allOf":[{"$ref":"#/components/schemas/Attribute"},{"type":"object","properties":{"classification":{"type":"string","description":"The classification of the recognized attribute.","example":"female"},"value":{"description":"The content value of the recognized attribute.","example":"A value"},"probability":{"type":"integer","format":"int32","description":"The probability that the value matches the classification.","example":94}}}],"description":"An attribute describes a quality or characteristic that a detection object has."}},"securitySchemes":{"LICENSE-KEY":{"type":"apiKey","description":"License Key access","name":"LICENSE-KEY","in":"header"}}}}