API Documentation

Add AI document validation and extraction to your app in minutes.

Quickstart

Get up and running in 3 steps.

  1. 1. Create an account

    Sign up at validoc.tech/sign-up and grab your API key in Settings.

  2. 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. 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

POST/api/v1/validate

Validate a PDF document against rules. Provide rules inline or reference a saved ruleset.

Request

Content-Type: multipart/form-data

FieldTypeDescription
fileFilePDF file. Max 10 MB, 20 pages.
ruleset_idstringID of a saved ruleset. Use this or rules.
rulesJSON stringArray 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

FieldDescription
idUnique validation ID.
statuspass | fail | partial
scoreFloat 0–1. Fraction of rules that passed.
resultsArray 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.).

POST/api/v1/rulesetsCreate a 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",
    "description": "Validates standard invoice fields"
  }'
GET/api/v1/rulesetsList all rulesets
curl 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.

POST/api/v1/rulesets/[id]/rulesAdd 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"}'

Fields

FieldTypeDescription
promptstringPlain-language rule. e.g. "Signature is present", "Invoice number".
ordernumberExecution 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.

PlanCreditsPrice
Free (monthly)20$0
Starter pack100$9
Pro pack1,000$59
Scale pack10,000$390

Error Codes

CodeMeaning
400Bad request — invalid parameters, unsupported file type, or document exceeds limits.
401Unauthorized — missing or invalid API key.
402Payment required — insufficient_credits. Top up your credits to continue.
403Forbidden — free tier limit reached (e.g. max 3 rulesets).
404Not 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.