Advanced Forgery
The Advanced Forgery API is a cutting-edge solution designed to verify the authenticity and legitimacy of uploaded documents. Whether it's identity documents, certificates, financial records, or legal contracts, this API empowers businesses to confidently assess the authenticity of their documents in real-time.
Key Features
- Splice Detection: This module can detect any tampering done using an image manipulation software such as Photoshop.
- Text Match: This module performs comprehensive text analysis, comparing document text and the reference text you provide to uncover any text-based inconsistencies.
- Photocopy Detection: It can discern whether a document is an original or a photocopy, crucial for verifying the authenticity of submitted documents.
- Web Check Detection: By cross-referencing online sources, the API detects if the document's content or elements have been plagiarized or scraped from the internet.
- Screenshot Detection: It identifies documents that have been captured as screenshots, ensuring that authentic, original documents are used.
- Metadata Detection: The API scans and analyzes document metadata if present, including creation and modification dates, to uncover any inconsistencies or anomalies.
API Details
Endpoint:
https://api.signzy.app/api/v3/advance-forgery/synchttps://api-preproduction.signzy.app/api/v3/advance-forgery/syncRequest body parameters:
Parameter | Data Type | Description | Required |
|---|---|---|---|
urls | Array of Strings | Publicly accessible URLs of documents on which forgery checks are to be performed. Maximum of 2 URLs allowed. | Mandatory |
threshold | Integer | The threshold value for Forgery check. | Mandatory |
callBackUrl | String | URL to which the results of the document's post-processing will be sent. | optional |
textfields | Object | Contains the Parameter to search for specific text in the document. You can define multiple field names and search for multiple texts in the document. | Optional |
textfields.<field name> | String | The value to be searched in the document. | Optional |
{
"urls": [
"https://<image_to_be_checked>.png"
],
"textfields": {
"field1": "value"
},
"threshold": 20,
"callBackUrl": "https://<url_to_send_the_results>.io"
}Request headers:
Name | Value | Required | Description |
|---|---|---|---|
Content-Type | application/json | Mandatory | The type of content that the request body contains. |
Authorization | XXXXXXXXXXXXXXX | Mandatory | An authentication token to authorize the request. Reach out to the Signzy support team to get one created. |
Code samples:
curl --location 'https://api-preproduction.signzy.app/api/v3/advance-forgery/sync' \
--header 'Content-Type: application/json' \
--header 'Authorization: <Token>' \
--data '{
"urls": [
"https://<image_to_be_checked>.png"
],
"textfields": {
"field1": "value"
},
"threshold": 20,
"callBackUrl": "https://<url_to_send_the_results>.io"
}'Response Body Parameters
Parameter | Data Type | Description |
|---|---|---|
result | Object | An object containing the results of the task. |
result.imageResults | Array of Objects | Contains scores and Information for different forgery checks. |
result.imageResults.copymoveDetection | Object | [Deprecated] Checks that were done as part of copy-move have been combined with the results of splice detection. |
result.imageResults.photocopyDetection | Object | Contains the result of photocopy detection. |
result.result.imageresults.photocopydetection.info | String | Description of photocopy detection. |
result.imageResults.photocopyDetection.score | String | A number specifying the photocopy detection score in the range of 0 to 100. |
result.imageResults.webcheckDetection | Object | Contains the result of webcheck detection. |
result.imageresults.webcheckdetection.info | String | Description of webcheck detection. |
result.imageResults.webcheckDetection.score | String | A number specifying the webcheck detection score in the range of 0 to 100. |
result.imageResults.screenshotDetection | Object | Contains the result of screenshot detection. |
result.imageresults.screenshotdetection.info | String | Description of screenshot detection. |
result.imageResults.screenshotDetection.score | String | A number specifying the screenshot detection score in the range of 0 to 100. |
result.imageResults.metadataDetection | Object | Contains the result of metadata detection. |
result.imageresults.metadatadetection.info | String | Description of metadata detection. |
result.imageResults.metadataDetection.metadata | Object | Contains the image metadata information. |
result.imageResults.metadataDetection.metadata.resolution | Array of strings | The image's resolution, with width and height in pixels. |
result.imageResults.metadataDetection.metadata.metadata | Object | Contains additional image metadata. |
result.imageResults.metadataDetection.metadata.metadata.imageSource | Object | An object for camera and software information. |
result.imageResults.metadataDetection.metadata.metadata.imageSource.cameraModel | Array of strings | Camera model. |
result.imageResults.metadataDetection.metadata.metadata.imageSource.cameraMake | Array of strings | Camera manufacturer name. |
result.imageResults.metadataDetection.metadata.metadata.imageSource.software | Array of strings | Software information. |
result.imageResults.metadataDetection.metadata.metadata.imageSource.modifyDate | Array of strings | Modification date. |
result.imageResults.metadataDetection.metadata.metadata.imageSourceLocation | Object | Contains information on image source location. |
result.imageResults.metadataDetection.metadata.metadata.imageSourceLocation.gpsLatitudeRef | Array of strings | GPS latitude reference information. |
result.imageResults.metadataDetection.metadata.metadata.imageSourceLocation.gpsLatitude | Array of strings | GPS latitude information. |
result.imageResults.metadataDetection.metadata.metadata.imageSourceLocation.gpsLongitudeRef | Array of strings | GPS longitude reference information. |
result.imageResults.metadataDetection.metadata.metadata.imageSourceLocation.gpsLongitude | Array of strings | GPS longitude information. |
result.imageResults.metadataDetection.metadata.metadata.imageSourceLocation.gpsTimeStamp | Array of strings | GPS timestamp information. |
result.imageResults.metadataDetection.metadata.metadata.imageSourceLocation.gpsDateStamp | Array of strings | GPS datestamp information. |
result.imageResults.spliceDetection | Object | Contains the result of splice detection. |
result.imageresults.splicedetection.info | String | Description of splice detection. |
result.imageResults.spliceDetection.forged | String | Indicates whether the document is forged through splicing. The possible response values are: "Yes" or "No" |
result.imageResults.spliceDetection.score | String | A number specifying the splice detection score in the range of 0 to 100. |
result.imageResults.spliceDetection.photoForgeryStatus | String | Status of photo forgery detection. Photo is forged or Photo is not forged |
result.imageResults.spliceDetection.textForgeryStatus | String | Status of text forgery detection. Text is forged or Text is not forged |
result.imageResults.spliceDetection.photoForgeryConfidence | String | Confidence score for photo splicing detection. |
result.imageResults.spliceDetection.textForgeryConfidence | String | Confidence score for text splicing detection. |
result.imageResults.spliceDetection.Full_Card_Forgery_Confidence | String | Confidence score for full image / Document splicing detection. |
result.imageResults.spliceDetection.regionOfConcern | String | Regions of concern related to splice detection. |
result.imageResults.textmatch | Object | Contains the result of text match. |
result.imageresults.textmatch.info | String | Description of text match. |
result.imageResults.textmatch.fields | Object | Contains the field name and the corresponding value to be checked in the document. |
result.imageResults.textmatch.fields.<field name> | String | The field name defined in the input. |
result.imageResults.textmatch.results | Object | Contains the result of text match for each field defined by the user. |
result.imageResults.textmatch.results.<field name> | Object | Result details for a specific field name including score, message, and best match value from the document. |
result.imageResults.textmatch.results.<field name>.score | Integer | A number specifying the text match score in the range of 0 to 100. |
result.imageResults.textmatch.results.<field name>.verb | String | Message for the text match result. Possible values could be: "MATCH" or "NO MATCH" |
result.imageResults.textmatch.results.<field name>.bestMatch | String | Best matching text from the document. |
result.imageResults.textmatch.overallScore | Integer | The overall score for text match in the range of 1 to 100. This is calculated by taking the average of scores for each field name. |
result.imageResults.summary | Object | A summary of the forgery check result including all feature detection results and scores. |
result.imageResults.summary.copymoveDetection | String | Yes if copy move is detected else No. Yes if copymoveDetectionScore is greater than the threshold. |
result.imageResults.summary.copymoveDetectionScore | Integer | Forgery score for copy move detection in the range 0 to 100. |
result.imageResults.summary.photocopyDetection | String | Yes if photocopy forgery is detected else No. Yes if photocopyDetectionScore is greater than the threshold. |
result.imageResults.summary.photocopyDetectionScore | String | Forgery score for photocopy detection in the range 0 to 100. |
result.imageResults.summary.webcheckDetection | String | Yes if webcheck forgery is detected else No. Yes if webcheckDetectionScore is greater than the threshold. |
result.imageResults.summary.webcheckDetectionScore | String | Forgery score for webcheck detection in the range 0 to 100. |
result.imageResults.summary.screenshotDetection | String | Yes if screenshot forgery is detected else No. Yes if screenshotDetectionScore is greater than the threshold. |
result.imageResults.summary.screenshotDetectionScore | String | Forgery score for screenshot detection in the range 0 to 100. |
result.imageResults.summary.spliceDetection | String | Yes if splicing is detected else No. Yes if spliceDetectionScore is greater than the threshold. |
result.imageResults.summary.spliceDetectionScore | String | Forgery score for splice detection in the range 0 to 100. |
result.imageResults.summary.textmatch | String | MATCH if text match is found else NO MATCH. |
result.imageResults.summary.textmatchScore | String | Score for text matching in the range 0 to 100. |
result.imageResults.summary.mrzVisualZoneMismatchDetected | String | deprecated field (will be removed in future versions ) |
result.imageResults.summary.mrzVisualZoneMismatchDetectionScore | String | deprecated field (will be removed in future versions ) |
result.imageResults.summary.status | String | Status of the forgery check. "Forged" if any of the forgery scores is greater than the threshold, "Uncertain" if any of the forgery results is Uncertain, and "Not Forged" if the forgery score is less than the threshold. |
result.imageResults.summary.reason | String | Reason for the status of the forgery check. |
result.imageResults.imageUrl | String | Document/Image URL(s). |
result.imageCorrelationResults | Object | deprecated field (will be removed in future versions ) |
result.callBackUrl | String | Callback URL in the Get tracking ID task. |
result.trackingId | String | Unique tracking ID for the request. |
result.urls | Array of Strings | URLs of the uploaded document/image for forgery check. |
Response body
{
"result": {
"imageResults": [
{
"copymoveDetection": {
"info": "This field has been deprecated and will be removed in future versions , the copMoveDetection feature is combined inspliceDetection therefore users are adviced to use that instead",
"score": 0,
"locations": [],
"regionsOfConcern": []
},
"photocopyDetection": {
"info": "To detect if a document that is uploaded is a photocopy or not",
"score": "7.7"
},
"webcheckDetection": {
"info": "To detect if a document is uploaded from the internet",
"score": "0"
},
"screenshotDetection": {
"info": "To detect if a document that is uploaded is a screenshot",
"score": "0"
},
"metadataDetection": {
"info": "Information regarding the image resolution, software used to modify the image, details about the camera used the capture the image and coordinates of the location where the image was created",
"metadata": {
"resolution": [
1121,
716
],
"metadata": {
"imageSource": {
"cameraModel": [],
"cameraMake": [],
"software": [],
"modifyDate": "2018:02:20 12:33:26"
},
"imageSourceLocation": {
"gpsLatitudeRef": [],
"gpsLatitude": [],
"gpsLongitudeRef": [],
"gpsLongitude": [],
"gpsTimeStamp": [],
"gpsDateStamp": []
}
}
}
},
"spliceDetection": {
"info": "Altering characters/photo from a document using other characters present on the some other document via digital software",
"forged": "No",
"score": "28",
"photoForgeryStatus": "photo is not forged",
"textForgeryStatus": "Text is not forged",
"photoForgeryConfidence": "19",
"textForgeryConfidence": "28",
"Full_Card_Forgery_Confidence": "3",
"regionOfConcern": ""
},
"textmatch": {
"info": "To Check if the given text is present in the document",
"fields": {
"field1": "value"
},
"results": {
"field1": {
"score": 25,
"verb": "NO MATCH",
"bestMatch": "ALLAH"
}
},
"overallScore": 25
},
"mrzVisualZoneMismatchDetection": {
"info": "This field has been deprecated and will be removed from the future version",
"score": 0,
"crossChecks": ""
},
"summary": {
"copymoveDetection": "No",
"copymoveDetectionScore": 0,
"photocopyDetection": "No",
"photocopyDetectionScore": "7.7",
"webcheckDetection": "No",
"webcheckDetectionScore": "0",
"screenshotDetection": "No",
"screenshotDetectionScore": "0",
"spliceDetection": "No",
"spliceDetectionScore": "28",
"textmatch": "NO MATCH",
"textmatchScore": "25",
"mrzVisualZoneMismatchDetected": "No",
"mrzVisualZoneMismatchDetectionScore": 0,
"status": "Not Forged",
"reason": ""
},
"imageUrl": "<img url>"
}
],
"imageCorrelationResults": {}
},
"callBackUrl": "<callback - url >",
"trackingId": "4fcef7ce-37c8-4770-8557-6c1555081c01",
"urls": [
"<img url"
]
}Document related constraints
The size of the document should not exceed 5 MB.
For best results, ensure the image you use fits tightly in the camera view and horizontally aligned.
Supported document types:
- Image - JPEG, JPG, PNG and TIFF/TIF.
Contact Us for Any Assistance
If you have any questions or need assistance, please reach out to our customer support team. You can contact us via email at [email protected]. We strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively.
We value your feedback and are committed to making your experience smooth and enjoyable. Our team is dedicated to assisting you with any needs you may have. Thank you for choosing our services. We look forward to helping you!