Registry
Stores sealed records, receipts and events.

Developer documentation
Create sealed records, verify received files, manage document lifecycle status and run hash-only workflows without sending document content to Docseal.
Issuer API keys are issued per pilot. Never expose them in browser code or public repositories.Stores sealed records, receipts and events.
Compares the received file hash with the official sealed record.
POST /api/verifyAllows an authorized issuer to create a Seal ID.
POST /api/issuer/sealsManages valid, revoked, replaced and expired states.
PATCH /api/issuer/seals/[sealId]/statusComputes the hash locally on the issuer side.
node scripts/docseal-gateway-local.cjsAPI_KEY="<issuer_api_key>"
HASH="$(sha256sum document.pdf | awk '{print $1}')"
curl -s -X POST https://docseal.app/api/issuer/seals \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"documentHash": "'$HASH'",
"documentTypeSlug": "bank-statement",
"documentTypeName": "Bank statement",
"referenceLabel": "Statement May 2026",
"visibilityPolicy": "hash_only"
}'curl -s -X POST https://docseal.app/api/verify \
-H "Content-Type: application/json" \
-d '{
"sealId": "DSL-...",
"submittedHash": "<sha256-hex>"
}'node scripts/docseal-gateway-local.cjs seal document.pdf \ --type-slug bank-statement \ --type-name "Bank statement" \ --label "Statement May 2026" \ --visibility hash_only \ --api-key-file /path/to/private-api-key