POST /api/v1/entity/{id}/files
Attach a document you already hold — a credit report, a company profile, a certificate — to an entity. Verety reads it once, stores a digest, and every later investigate call uses that digest: cites it, cross-checks it against the registry, and drops follow-ups the document already answers.
Upload
Send the raw file bytes. Content-Type is the file's own type; the filename goes in the name query parameter.
| ACCEPTED | NOTES |
|---|---|
| Text or scanned — scans and photos are read visually. | |
| PNG, JPEG, WebP | A photo of a document works. |
| TXT, CSV, DOCX, XLSX | Text is extracted directly. |
| Size | 8 MB per file. |
The response is 202 with the file in state pending. The read finishes in the background, usually within a few seconds.
List
GET /api/v1/entity/{id}/files returns every document on file for this entity under your key, with its read status and digest. Poll it after an upload until the file is ready.
| FIELD | DESCRIPTION |
|---|---|
status | pending · ready · failed (with an error reason). |
digest.documentType | What the document is, e.g. "ACRA Business Profile". |
digest.issuer, digest.subject | Who issued it, who it is about. |
digest.dates[] | Material dates printed in the document. |
digest.summary, digest.findings[] | What it shows, and the structured facts it contains. |
digest.risk, digest.comp | The same LOW/MED/HIGH and PASS/REVIEW/FAIL scales as every other check. |
Ownership
Documents belong to the key's account. Another account investigating the same entity never sees them, and document links inside a report open only for the account that uploaded them.
Errors
| STATUS | CODE | WHEN |
|---|---|---|
| 400 | missing_name · empty_file | No filename, or no bytes. |
| 403 | country_not_entitled | The id belongs to a country outside your key. |
| 404 | unknown_id | The id prefix matches no connected registry. |
| 413 | file_too_large | Over 8 MB. |
| 415 | unsupported_type | Not one of the accepted types. |