---
title: "Validate Document"
method: POST
path: "/api/documents/validate"
tags: ["documents"]
---

# Validate Document

`POST /api/documents/validate`

## Request

- Base URL: `https://zsign.io` (the document declares no server; this is the origin it was published from)
- URL: `https://zsign.io/api/documents/validate`
- Auth: none declared

Validate PDF and return field detection results.

Unauthenticated on purpose (/docs/api documents it as such):
this is the dry run an agent performs to check its field syntax before
spending a credit on POST /api/v1/documents/send, and the send dialog uses it to read
the document's parties so the sender never has to guess a role. Being
auth-free is also why the budgets and the PDFValidator call are not
optional -- without them, anyone can hand this route arbitrary bytes and
have them parsed.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zsign/apis/zsign-api.md) · [All operations](https://skmtc.dev/zsign/apis/zsign-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zsign/apis/zsign-api/revisions/a674ac4137ba?raw)
