kvitera
API reference

Inspect PDF metadata

POST
/v1/pdf/metadata

Send one PDF to obtain its properties, signs of processing, and analysis limitations. This does not confirm authenticity or prove the file is unchanged. The source PDF is not retained. The report and filename are available in your company’s workspace history for 30 days. Receipt check quota is not consumed; separate rate limits apply. 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/pdf/metadata" \  -F file="@document.pdf"
{  "request_id": "pdf_example",  "analysis_version": 1,  "status": "complete",  "assessment": "no_signals_detected",  "file": {    "size_bytes": 12480,    "pdf_version": "PDF 1.7",    "page_count": 1  },  "metadata": {    "title": null,    "author": null,    "subject": null,    "keywords": null,    "creator": null,    "producer": "Example PDF generator",    "created_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": [      {        "name": "Producer",        "source": "info",        "value": "Example PDF generator",        "value_type": "string",        "truncated": false      }    ]  },  "history": {    "saved_versions": 1,    "incremental_updates": "not_detected"  },  "structure": {    "has_text": true,    "has_images": false,    "has_annotations": false,    "has_form_fields": false  },  "signatures": {    "presence": "not_detected",    "empty_fields": 0,    "validation": "not_performed"  },  "findings": [],  "coverage": {    "metadata": "complete",    "history": "complete",    "structure": "complete",    "signatures": "complete",    "pages_total": 1,    "pages_analyzed": 1  },  "limitations": [    "unchanged_not_proven",    "content_not_verified",    "signature_not_validated"  ]}