kvitera
API reference

Inspect image metadata

POST
/v1/image/metadata

Send a JPEG, PNG, WebP or HEIC/HEIF photo or screenshot. Receive file properties, EXIF, supported XMP/PNG fields and GPS when recorded. Metadata does not confirm authenticity, that an image is unchanged or its origin. Source files are not retained. Reports and filenames are available in your company’s workspace for 30 days. Receipt quota is not consumed. The rate limit is shared with PDF metadata. Repeating a request runs a new analysis. Read the report.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/image/metadata" \  -F file="@photo.jpg"
{  "request_id": "img_example",  "analysis_version": 1,  "status": "complete",  "assessment": "no_signals_detected",  "file": {    "size_bytes": 62000,    "format": "PNG",    "mime_type": "image/png",    "width": 1080,    "height": 1920,    "color_mode": "RGB",    "bit_depth": null,    "frame_count": 1,    "color_profile_present": false  },  "metadata": {    "make": null,    "model": null,    "software": null,    "author": null,    "description": null,    "copyright": null,    "orientation": null,    "captured_at": {      "raw": null,      "value": null,      "status": "missing",      "precision": null,      "timezone_known": false,      "truncated": false    },    "digitized_at": {      "raw": null,      "value": null,      "status": "missing",      "precision": null,      "timezone_known": false,      "truncated": false    },    "modified_at": {      "raw": null,      "value": null,      "status": "missing",      "precision": null,      "timezone_known": false,      "truncated": false    },    "properties": []  },  "location": {    "status": "missing",    "latitude": null,    "longitude": null,    "altitude_m": null,    "source": null  },  "findings": [],  "coverage": {    "exif": "absent",    "xmp": "absent",    "embedded_text": "absent",    "frames_total": 1,    "frames_analyzed": 1  },  "limitations": [    "unchanged_not_proven",    "pixels_not_verified",    "screenshot_origin_not_proven",    "supported_metadata_only"  ]}