Documentation menu
Documentation

Use Doclligence safely and confidently.

Learn how to extract PDF tables, redact sensitive information, use the API, and understand what happens to your uploaded documents.

Open Table ExtractorOpen RedactionOpen Signature VerificationAPI Access

Table Extractor

Use this tool when you need structured data from PDF, JPEG, PNG, or TIFF documents.

  1. Upload a PDF, JPEG, PNG, or TIFF document of up to 20 MB.
  2. Enter the columns you want, separated by commas.
  3. Add instructions when the table has special rules, continuation rows, or unusual labels.
  4. Run extraction and review HTML, JSON, CSV, and XML outputs.
  5. Download the output format you need.
Good column examples: Description, Quantity, Unit Price, Total or Date, Description, GST, Total. The web UI runs MSDI automatically; consumer-provided layouts are available only through the API.

Redaction

Use this tool to find sensitive values and create a permanently flattened redacted PDF.

  1. Upload a PDF, JPEG, PNG, or TIFF document of up to 20 MB.
  2. Describe what should be found, such as names, dates of birth, account numbers, or emails.
  3. Choose the redaction color and opacity. Use 100% opacity when the value must be fully concealed.
  4. Optionally create a searchable PDF. The new text layer includes non-redacted MSDI words only.
  5. Optionally enter an email address to receive the redacted PDF.
  6. Run redaction, review findings, and download the redacted PDF.
Redaction targets sensitive values rather than their field labels. Masks are burned into page images before the PDF is rebuilt, so an editor cannot remove a mask to recover the original pixels. At less than 100% opacity, the original value remains visibly readable and should not be considered confidentially redacted. The web UI runs MSDI automatically; consumer-provided layouts are available only through the API.

Compare Signature Snippets

Compare two cropped signature images directly.

  1. Optionally expand Try sample signatures in the right-hand panel and load a sample into Signature A or Signature B.
  2. Upload Signature A as a PNG, JPEG, or WebP image.
  3. Upload Signature B as a PNG, JPEG, or WebP image.
  4. Select Compare snippets and run comparison.
  5. Review match confidence, decision, reasoning, observations, and uncertainty notes.
Comparisons consider stroke trajectory, slant, baseline, writing rhythm, joins, flourishes, and underlines. Extra or malformed terminal letters reduce confidence without automatically overriding strong matching stroke structure.

API Quick Start

Create an API key from API Access, then send it in the x-api-key header. The API Access page also shows active keys and key status.

Choose how layout analysis runs

  1. Preferred consumer-layout path: analyze the PDF with prebuilt-layout, wait for succeeded, and pass the operation response or its analyzeResult in layoutResult.
  2. Automatic fallback path: omit layoutResult and include the PDF. Doclligence runs prebuilt-layout internally.
  3. When supplying a layout, keep page numbers, dimensions, units, words, polygons, tables, paragraphs, and bounding regions unchanged.
A supplied layout avoids another MSDI analysis call. For redaction, a supplied layout must come from the same PDF included in the request.

Extract Table

Supply either layoutResult, or fileBase64 for automatic layout analysis. If both are supplied, Doclligence uses layoutResult and does not re-analyze the document.

POST https://your-doclligence-domain/api/v1/extract-table
x-api-key: YOUR_API_KEY
Content-Type: application/json

{
  "fileName": "invoice.pdf",
  "layoutResult": MSDI_OPERATION_RESULT_OBJECT,
  "columns": "Description, GST, Total",
  "instructions": "Merge continuation lines into the prior priced row."
}
  • layoutResult: optional MSDI JSON object.
  • fileBase64: required only when layoutResult is omitted.
  • columns: comma-separated output column names.
  • instructions: optional extraction and table-continuation guidance.
Table extraction without a consumer layout
{
  "fileName": "invoice.pdf",
  "fileBase64": "BASE64_PDF_CONTENT",
  "fileMimeType": "application/pdf",
  "columns": "Description, GST, Total",
  "instructions": "Merge continuation lines into the prior priced row."
}
Sample extract-table response
{
  "providerMode": "live",
  "fileName": "invoice.pdf",
  "requestedColumns": ["Description", "GST", "Total"],
  "htmlTable": "<table>...</table>",
  "json": [
    {
      "Description": "Service fee - February",
      "GST": "8.18",
      "Total": "90.00"
    }
  ],
  "csv": "\"Description\",\"GST\",\"Total\"\n\"Service fee - February\",\"8.18\",\"90.00\"",
  "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><rows>...</rows>",
  "warnings": [
    "Selected table span pages: 1",
    "Discovery reasoning: Best matching invoice line table."
  ],
  "outputFiles": [
    {
      "name": "invoice.json",
      "mimeType": "application/json;charset=utf-8",
      "content": "[...]"
    }
  ],
  "details": {
    "rowCount": 1,
    "columnCount": 3,
    "cells": [
      {
        "rowIndex": 0,
        "columnIndex": 0,
        "columnName": "Description",
        "content": "Service fee - February",
        "boundingBox": {
          "pageNumber": 1,
          "left": 104,
          "top": 322,
          "width": 210,
          "height": 18
        }
      }
    ]
  },
  "usage": {
    "documentCount": 12,
    "remainingDocuments": 0,
    "documentLimit": 10,
    "pagesUsed": 42,
    "remainingPages": 108,
    "pageLimit": 150,
    "pagesProcessed": 2
  }
}

Redact PDF

Redaction requires the original document to render masks. Images are normalized into PDF pages and the result is always a flattened PDF.

POST https://your-doclligence-domain/api/v1/redact
x-api-key: YOUR_API_KEY
Content-Type: application/json

{
  "fileName": "document.pdf",
  "fileBase64": "BASE64_PDF_CONTENT",
  "fileMimeType": "application/pdf",
  "layoutResult": MSDI_OPERATION_RESULT_OBJECT,
  "prompt": "Find and redact customer names and dates of birth.",
  "email": "recipient@example.com",
  "color": "#000000",
  "opacity": 1,
  "searchablePdf": true
}
  • fileBase64: required original PDF, JPEG, PNG, or TIFF, as raw base64 or a data URL.
  • fileMimeType: recommended for raw base64 and inferred from a data URL when present.
  • layoutResult: optional MSDI JSON object generated from that document.
  • prompt: required description of information to find and mask.
  • email: optional delivery address.
  • color: optional mask color.
  • opacity: optional value from 0.1 to 1. Use 1 to fully conceal the original value.
  • searchablePdf: optional boolean. When true, adds an invisible text layer from non-redacted MSDI words; words intersecting redaction boxes are excluded.
  • The request is rejected when the document and layout page counts differ.
Sample redact response
{
  "providerMode": "live",
  "fileName": "document.pdf",
  "prompt": "Find and redact customer names and dates of birth.",
  "findings": [
    {
      "text": "Jane Citizen",
      "type": "Customer Name",
      "page": 1,
      "boundingBox": {
        "left": 112,
        "top": 148,
        "width": 156,
        "height": 24
      }
    }
  ],
  "summary": {
    "totalFindings": 1,
    "pagesImpacted": 1
  },
  "style": {
    "color": "#000000",
    "opacity": 1
  },
  "searchablePdf": true,
  "download": {
    "name": "document-redacted.pdf",
    "mimeType": "application/pdf",
    "content": "BASE64_REDACTED_PDF_CONTENT"
  },
  "emailDelivery": {
    "requested": true,
    "recipient": "recipient@example.com",
    "mode": "graph"
  },
  "usage": {
    "documentCount": 13,
    "remainingDocuments": 0,
    "documentLimit": 10,
    "pagesUsed": 45,
    "remainingPages": 105,
    "pageLimit": 150,
    "pagesProcessed": 3
  }
}
API responses include the processed result and current page usage. Usage is based on the supplied layout page count or, when layout is omitted, the PDF page count. Redaction responses include the redacted PDF as base64 in download.content.
Accepted layoutResult shapes
// Complete MSDI operation response
{
  "status": "succeeded",
  "apiVersion": "2024-11-30",
  "analyzeResult": {
    "modelId": "prebuilt-layout",
    "pages": [ ... ],
    "tables": [ ... ],
    "paragraphs": [ ... ]
  }
}

// Or the analyzeResult object itself
{
  "modelId": "prebuilt-layout",
  "pages": [ ... ],
  "tables": [ ... ],
  "paragraphs": [ ... ]
}
Common API errors
  • 400: invalid layoutResult; neither layout nor PDF supplied for extraction; missing redaction PDF or prompt; mismatched page counts; or a signature-search PDF over 10 pages.
  • 401: missing, invalid, or revoked API key.
  • 429: insufficient remaining page allowance.
  • 500: processing or provider failure.

Option 1 API: Compare Two Signature Snippets

Use this endpoint when you already have two cropped signature images and want a similarity assessment.

POST https://your-doclligence-domain/api/v1/verify-signature
x-api-key: YOUR_API_KEY
Content-Type: application/json

{
  "signatureA": "BASE64_IMAGE_CONTENT_OR_DATA_URL",
  "signatureAMimeType": "image/png",
  "signatureB": "BASE64_IMAGE_CONTENT_OR_DATA_URL",
  "signatureBMimeType": "image/png"
}
Sample verify-signature response
{
  "providerMode": "live",
  "matchConfidence": 78,
  "decision": "possible_match",
  "reasoning": "The signatures share similar slant and overall rhythm, but there are visible differences in stroke endings and letter connections.",
  "observations": [
    "Both signatures have a similar left-to-right baseline.",
    "The initial stroke shape is similar.",
    "The ending flourish differs in length and angle."
  ],
  "risks": [
    "Image quality and cropping can affect confidence.",
    "This is not a forensic conclusion."
  ],
  "usage": {
    "documentCount": 13,
    "remainingDocuments": 0,
    "documentLimit": 10,
    "pagesUsed": 46,
    "remainingPages": 104,
    "pageLimit": 150,
    "pagesProcessed": 1
  }
}

Option 2 API: Find a Signature in a PDF

Use this endpoint with one source signature and a target PDF of up to 10 pages. Larger PDFs return 400 before AI processing and do not consume page usage. When multiple candidates are found, they are compared and calibrated together before being ranked by confidence. Only detections with match confidence strictly above 50% are returned. The summary is calculated from that filtered list; when no confident match exists, detections is empty, confidence is 0, and page is null.

POST https://your-doclligence-domain/api/v1/find-signatures
x-api-key: YOUR_API_KEY
Content-Type: application/json

{
  "fileName": "contract.pdf",
  "fileBase64": "BASE64_PDF_CONTENT",
  "sourceSignature": "BASE64_IMAGE_CONTENT_OR_DATA_URL",
  "sourceSignatureMimeType": "image/png"
}
Sample find-signatures response
{
  "providerMode": "live",
  "fileName": "contract.pdf",
  "detections": [
    {
      "pageNumber": 4,
      "boundingBox": {
        "left": 120,
        "top": 650,
        "width": 240,
        "height": 70
      },
      "signatureImageBase64": "BASE64_CROPPED_SIGNATURE_IMAGE",
      "signatureImageMimeType": "image/png",
      "matchConfidence": 88,
      "decision": "possible_match",
      "reasoning": "The candidate has similar baseline, slant, and ending flourish, but the middle strokes differ.",
      "observations": [
        "Similar left-to-right slope",
        "Comparable initial stroke height"
      ],
      "risks": [
        "PDF scan quality may affect comparison",
        "This is not a forensic conclusion"
      ]
    }
  ],
  "summary": {
    "candidateSignaturesFound": 1,
    "bestMatchConfidence": 88,
    "bestMatchPage": 4
  },
  "warnings": [
    "Azure returned 1 cropped figure candidate(s).",
    "Only detections above 50% confidence are returned."
  ],
  "usage": {
    "pagesUsed": 50,
    "remainingPages": 100,
    "pageLimit": 150,
    "pagesProcessed": 4
  }
}
Integration guide

Tungsten TotalAgility

Use Doclligence table extraction from any TotalAgility process and document type. The included invoice process is an example only: reuse the same rules and mapping approach for purchase orders, statements, reports, or any other document containing a table.

Doclligence table extraction sampleZIP package · 2.1 MB · package version 10Download TotalAgility package
Required table mapping rule

The column names in ExtractColumns must match the target TotalAgility document table column names exactly and must be listed in the same left-to-right order. Doclligence returns columns in this order, and PopulateTableWithDoclligence maps them into the TotalAgility table by position.

Material Code, Description, Quantity, Unit Price, Amount

How the integration works

1
TotalAgility prepares the document

Your process supplies the PDF and can also supply the MSDI layout already generated by TotalAgility.

2
Doclligence extracts the table

GetTableWithDoclligence sends the document, exact column list, instructions, and optional MSDI layout to /api/v1/extract-table.

3
TotalAgility populates its table

PopulateTableWithDoclligence writes each returned value into the matching table column by position and adds highlighting metadata.

Configure it for your document type

  1. Import the package through TotalAgility Studio or Administration. Start in a non-production environment and confirm compatibility with your TotalAgility version.
  2. Use InvoiceTableExtractionExample to understand the pattern, then copy or adapt the integration rules in your own process. Your process does not need to be an invoice process.
  3. Set DOCLLIGENCE_URL to your deployment's /api/v1/extract-table endpoint.
  4. Store the API key in the secure DOCLLIGENCE_API_KEY setting. Never place a key directly in a business rule or form.
  5. Set ExtractColumns to the exact TotalAgility table column names in the exact table order. Add ExtractInstructions only when the document needs extra extraction guidance.
  6. Set TableName to the exact target document table name. Set ExpectedColumnCount to the number of table columns so mapping errors fail early.
  7. Keep ClearExistingRows enabled when the extracted result should replace rows already in the TotalAgility table.
Reuse TotalAgility MSDI when available: map GetTADocumentMSDIResult's AccumulatedMsdiJson output into GetTableWithDoclligence. This avoids a second layout-analysis call and keeps returned bounding boxes aligned with TotalAgility page images. If you do not supply this value, Doclligence runs MSDI automatically from the PDF.

What the sample package includes

  • InvoiceTableExtractionExample: an example end-to-end process that you can adapt for other document types.
  • TableExtractionWithDoclligence.form: a ready-to-use form for testing the sample.
  • GetTADocumentMSDIResult: optionally combines TotalAgility's per-page MSDI results into one document-level layout result.
  • GetTableWithDoclligence: calls Doclligence with the PDF, columns, instructions, and optional layout result.
  • PopulateTableWithDoclligence: populates the target TotalAgility table by row and column position and adds best-effort field highlighting.

Try the included form

  1. Import and deploy the sample process, rules, and form together.
  2. Sign in to TotalAgility Workspace in the browser you will use for testing.
  3. Open the form below, replacing the hostname with your TotalAgility server.
  4. Select a sample invoice, run extraction, and review the populated table and highlighting.
https://<your-totalagility-server>/TotalAgility/Forms/TableExtractionWithDoclligence.form
The supplied package was exported from TotalAgility database version 2026.3. Review imported resources, permissions, server variables, and SDK compatibility before promoting it to production.

Security and Data Handling

  • Uploaded PDFs are processed in memory during the request.
  • Consumer-provided MSDI layout results are processed during the request and are not stored by default.
  • Uploaded documents are not saved to application storage by default.
  • Generated table outputs and redacted PDFs are not stored by default.
  • Redacted PDFs are returned to the browser and optionally emailed as an attachment.
  • API keys are stored as hashes, not as raw key values.
  • Usage counters, account records, sessions, and API key metadata are stored so the app can enforce quotas and authentication.

Page Usage

  • New users start with 50 free pages.
  • Table extraction consumes pages equal to the supplied MSDI layout page count, or the PDF page count when layout is omitted.
  • Redaction consumes pages equal to the original PDF page count. A supplied layout must have the same page count.
  • The app checks available pages before running AI processing.
  • Signature verification consumes 1 page credit per comparison.
  • Advanced signature search accepts PDFs up to 10 pages and consumes pages equal to the uploaded PDF page count.

What We Store

  • Account email and session records for login.
  • API key metadata and hashed API keys.
  • Page usage totals: pages used and page limit.
  • We do not store uploaded PDFs, extracted result files, or redacted PDFs by default.

FAQ

Do you store my uploaded PDFs?

No. Uploaded documents are processed during the request and are not saved to application storage by default.

Does Doclligence run Microsoft Document Intelligence for extraction or redaction?

Only when needed. Doclligence uses your supplied layoutResult when present; otherwise it runs layout analysis on the supplied PDF.

Are extraction results stored?

No. Table outputs are returned to the browser/API response and are not persisted by default.

Where is the redacted PDF saved?

It is generated in memory, returned as a downloadable file, and optionally attached to email. The server does not keep a copy by default.

Why do I need to provide column names for extraction?

Column names guide the AI model toward the structure you need. Use the names you want in the final output.

What happens if my PDF has more pages than I have remaining?

The request is rejected before AI processing, and no pages are charged. Table extraction uses the layout page count; redaction uses the matching PDF page count.

Can I email redaction results?

Yes. Enter a delivery email on the redaction page or pass an email field to the redaction API request.

Is signature verification legally definitive?

No. Signature verification provides a visual similarity assessment with confidence and reasoning. It should support human review, not replace forensic analysis.

Why are some signature candidates not shown?

Find in PDF returns only detections above 50% match confidence. Lower-confidence candidates are excluded from both the UI and API response.