API Documentation
Add AI document validation and extraction to your app in minutes.
Quickstart
Get up and running in 3 steps.
1. Create an account
Sign up at validoc.tech/sign-up and grab your API key in Settings.
2. Validate a document (inline rules)
No setup needed — pass rules directly in the request.
curl -X POST https://validoc.tech/api/v1/validate \ -H "Authorization: Bearer dv_your_api_key" \ -F "file=@invoice.pdf" \ -F 'rules=["Signature is present", "Invoice number", "No visible alterations"]'3. Or use a reusable ruleset
Create a ruleset + rules once, then reference it by ID.
# Create ruleset curl -X POST https://validoc.tech/api/v1/rulesets \ -H "Authorization: Bearer dv_your_api_key" \ -H "Content-Type: application/json" \ -d '{"name": "Invoice Check"}' # Add a rule curl -X POST https://validoc.tech/api/v1/rulesets/rs_abc123/rules \ -H "Authorization: Bearer dv_your_api_key" \ -H "Content-Type: application/json" \ -d '{"prompt": "Signature is present"}' # Validate curl -X POST https://validoc.tech/api/v1/validate \ -H "Authorization: Bearer dv_your_api_key" \ -F "file=@document.pdf" \ -F "ruleset_id=rs_abc123"
Authentication
All requests must include an Authorization header with a Bearer token.
Authorization: Bearer dv_xxxxxxxxxx- API keys are created and managed in Settings.
- All keys start with the
dv_prefix. - Requests without a valid key return HTTP 401.
POST /api/v1/validate
/api/v1/validateValidate a PDF document against rules. Provide rules inline or reference a saved ruleset.
Request
Content-Type: multipart/form-data
| Field | Type | Description |
|---|---|---|
| file | File | PDF file. Max 10 MB, 20 pages. |
| ruleset_id | string | ID of a saved ruleset. Use this or rules. |
| rules | JSON string | Array of rule prompts as strings. Max 10. Use this or ruleset_id. |
Response
{
"id": "val_01j9xz4k8m",
"status": "pass",
"score": 1.0,
"results": [
{
"rule": "Signature is present",
"passed": true,
"value": null,
"explanation": "Digital signature found on page 2",
"confidence": 0.98
},
{
"rule": "Invoice number",
"passed": true,
"value": "INV-2024-0042",
"explanation": "Invoice number found in header",
"confidence": 0.95
}
]
}Response fields
| Field | Description |
|---|---|
| id | Unique validation ID. |
| status | pass | fail | partial |
| score | Float 0–1. Fraction of rules that passed. |
| results | Array of per-rule results. Each includes rule, passed, value (nullable), explanation, confidence. |
Rulesets
A ruleset is a named collection of rules. Create one per document type (invoices, contracts, IDs, etc.).
/api/v1/rulesetsCreate a rulesetcurl -X POST https://validoc.tech/api/v1/rulesets \
-H "Authorization: Bearer dv_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Invoice Check",
"description": "Validates standard invoice fields"
}'/api/v1/rulesetsList all rulesetscurl https://validoc.tech/api/v1/rulesets \
-H "Authorization: Bearer dv_your_api_key"Rules
Rules belong to a ruleset. Each rule is a natural-language prompt that the AI evaluates against the document.
/api/v1/rulesets/[id]/rulesAdd a rulecurl -X POST https://validoc.tech/api/v1/rulesets/rs_abc123/rules \
-H "Authorization: Bearer dv_your_api_key" \
-H "Content-Type: application/json" \
-d '{"prompt": "Signature is present"}'Fields
| Field | Type | Description |
|---|---|---|
| prompt | string | Plain-language rule. e.g. "Signature is present", "Invoice number". |
| order | number | Execution order (optional). |
Concepts
Rules
Each rule is a plain-language prompt. The AI evaluates it and returns passed, explanation, confidence, and optionally a value if the rule implies data extraction. Examples: "Signature is present", "No visible alterations", "Invoice number".
Credits
Each validation consumes 1 credit. Credits reset monthly on the free tier. Additional credits are available as one-time packs.
| Plan | Credits | Price |
|---|---|---|
| Free (monthly) | 20 | $0 |
| Starter pack | 100 | $9 |
| Pro pack | 1,000 | $59 |
| Scale pack | 10,000 | $390 |
Error Codes
| Code | Meaning |
|---|---|
| 400 | Bad request — invalid parameters, unsupported file type, or document exceeds limits. |
| 401 | Unauthorized — missing or invalid API key. |
| 402 | Payment required — insufficient_credits. Top up your credits to continue. |
| 403 | Forbidden — free tier limit reached (e.g. max 3 rulesets). |
| 404 | Not found — ruleset or resource does not exist. |
Constraints
- —PDF only. No other file types are accepted.
- —Max file size: 10 MB.
- —Max pages per document: 20.
- —Max rules per ruleset: 10.
- —Max rulesets on free tier: 3.