Turn documents into data
you can trust

Extract structured data from any document with accuracy you can verify and audit. AI flexibility wrapped in deterministic guardrails — ready for production.

Documents graphic
Example documents photo
example of code
Companies of all sizes trust Sensible to extract their most important documents
graphic of documents bunched together
The hybrid document extraction platform

AI flexibility meets production reliability

Pure AI extraction gets you 80% of the way there—then breaks in production. Outputs vary between runs. Models hallucinate fields. Updates cause silent drift. Sensible solves this with a hybrid approach: LLM flexibility wrapped in deterministic guardrails. Schema enforcement, confidence signals, and full audit trails built into every extraction.

cycle icon
Hybrid extraction

Combine LLM parsing with layout-based rules. AI handles document variation; deterministic logic ensures accuracy. Use both together in a single configuration.

connected network icon
Schema enforcement

Define your output schema. Sensible validates every extraction against it—mismatches fail fast, not silently in your database.

arrows pointing out icon
Config as code

Define extraction logic in SenseML. Version control it. Test against sample documents. Deploy through your existing CI/CD pipeline.

shield icon
Enterprise secure

SOC 2 Type II certified. HIPAA compliant. Full audit trails show exactly where every extracted field came from. Custom regions and configurable retention.

Ship document extraction features
to production fast

We've been able to go to 2,000 members and ~$2MM of tracked premiums in a very short time with one person on operations. We couldn't have done that without Sensible.

Stuart winchester CEO of Marble
Stuart Winchester
CEO, Marble
Accurate data you
can trust

We let the Sensible team know what we were looking for, and a bit later were told which API to hit, and we got back a perfectly parsed document. Kind of hard to do better than that.

Denis B Photo
Denis Bellvance
CEO, Inspectify
Get document data into your systems quickly and inexpensively

Sensible was a clear front-runner when it comes to getting together a working solution as quickly as possible, and the ability to handle documents in a way that's really configurable, all within our budget.

Adam CEO of Claimer
Adam McCann
CEO, Claimer
quote start icon

We've been able to go to 2,000 members and ~$2MM of tracked premiums in a very short time with one person on operations. We couldn't have done that without Sensible

Stuart winchester CEO of Marble
Stuart Winchester
CEO, Marble
quote start icon

We've been able to go to 2,000 members and ~$2MM of tracked premiums in a very short time with one person on operations. We couldn't have done that without Sensible

Stuart winchester CEO of Marble
Stuart Winchester
CEO, Marble
quote start icon

We've been able to go to 2,000 members and ~$2MM of tracked premiums in a very short time with one person on operations. We couldn't have done that without Sensible

Stuart winchester CEO of Marble
Stuart Winchester
CEO, Marble

Extract validated data from any document.
Automate your document workflow with confidence. Sensible is built for mission-critical document processing where accuracy matters.

Extract any data from any document

Process documents, emails, spreadsheets, and images with hybrid extraction—combining LLM parsing with layout-based rules. Multi-document handling, automatic classification, and 150+ pre-built configs for common document types.

product demo illustration

Automate your document workflow

Fully automate your document workflow with Sensible's APIs, SDKs, and webhooks. Built-in validation checks ensure data accuracy. Confidence signals flag uncertain extractions for review—so you know what to trust.

product demo illustration

Monitor and verify data quality

Track extraction accuracy and reliability with a comprehensive dashboard. Every field includes source coordinates and confidence scores—so you can verify results and quickly identify issues.

product demo illustration

Built for engineers who ship to production

Sensible handles the complexity of document extraction—validation, edge cases, model updates—so you can focus on building your product.

API-First

RESTful APIs, webhooks, and SDKs. Embed document extraction into your product without additional infrastructure.

Hybrid Extraction

Combine LLM parsing with layout-based rules. Use AI for flexibility and deterministic logic for precision—both in the same config.

Pre-built Configs

150+ pre-built configurations for common documents. Start fast, then customize with SenseML as needed.

Schema Validation

Define your output schema. Sensible validates every extraction against it—mismatches fail fast, not silently.

Version Control

SenseML configs live in your repo. Test in dev, peer review changes, deploy to production through CI/CD.

Full Observability

Confidence scores, source coordinates, and extraction logs. Debug issues and track accuracy with full visibility.

import { SensibleSDK } from "sensible-api";

const sensible = new SensibleSDK("YOUR_API_KEY"); //replace with your API key

const request = await sensible.extract({
    path:"./contract.pdf",
    documentType: "sensible_instruct_basics"
});
const results = await sensible.waitFor(request); 
{
    "purchase_price": {
        "source": "$400,000",
        "value": 400000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "earnest_money_deposit": {
        "source": "$2,000",
        "value": 2000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "seller_financing_amount": {
        "source": "$55,000",
        "value": 55000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "offer_date": {
        "value": "1st day of February, 2020",
        "type": "string",
        "confidenceSignal": "confident_answer"
    },
    "balance_cash_settlement": {
        "source": "$343,000",
        "value": 343000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "buyer_name": {
        "value": "JANE SMITH",
        "type": "string",
        "confidenceSignal": "confident_answer"
    },
    "seller_name": {
        "value": "SALLY JOHNSON",
        "type": "string",
        "confidenceSignal": "confident_answer"
    },
    "property_tax_id": {
        "value": "123-456-78",
        "type": "string",
        "confidenceSignal": "confident_answer"
    }
}
from sensibleapi import SensibleSDK

sensible = SensibleSDK("YOUR_API_KEY")  # replace with your API key

request = sensible.extract(
    path="./contract.pdf",
    document_type="sensible_instruct_basics"
)
results = sensible.wait_for(request)
{
    "purchase_price": {
        "source": "$400,000",
        "value": 400000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "earnest_money_deposit": {
        "source": "$2,000",
        "value": 2000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "seller_financing_amount": {
        "source": "$55,000",
        "value": 55000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "offer_date": {
        "value": "1st day of February, 2020",
        "type": "string",
        "confidenceSignal": "confident_answer"
    },
    "balance_cash_settlement": {
        "source": "$343,000",
        "value": 343000,
        "unit": "$",
        "type": "currency",
        "confidenceSignal": "confident_answer"
    },
    "buyer_name": {
        "value": "JANE SMITH",
        "type": "string",
        "confidenceSignal": "confident_answer"
    },
    "seller_name": {
        "value": "SALLY JOHNSON",
        "type": "string",
        "confidenceSignal": "confident_answer"
    },
    "property_tax_id": {
        "value": "123-456-78",
        "type": "string",
        "confidenceSignal": "confident_answer"
    }
}
import { SensibleSDK } from "sensible-api";

const sensible = new SensibleSDK("YOUR_API_KEY"); //replace with your API key

const request = await sensible.classify({
  	path:"./contract.pdf"
 });
const results = await sensible.waitFor(request);
{
    "document_type": {
        "id": "468f0576-0b7e-467b-860c-d190fb80e337",
        "name": "sample_documents",
        "score": 0.7360671272397575
    },
    "reference_documents": [
        {
            "id": "666bb9d8-f0d4-449f-8c93-7bb2246a05e9",
            "name": "sliced_invoices_pdf_sample",
            "score": 0.7419987891426988
        },
        {
            "id": "de457b87-0470-4478-9d4f-44fe1e3fbf41",
            "name": "explanation_of_benefits_sample",
            "score": 0.7357554989442031
        },
        {
            "id": "fca24b5d-0464-401e-a400-7c570b03f85a",
            "name": "bank_statement_sample",
            "score": 0.7304470936323705
        }
    ],
    "classification_summary": []
}
from sensibleapi import SensibleSDK

sensible = SensibleSDK(api_key=YOUR_API_KEY)  # replace with your API key

request = sensible.classify(path="./contract.pdf")
results = sensible.wait_for(request)
{
    "document_type": {
        "id": "468f0576-0b7e-467b-860c-d190fb80e337",
        "name": "sample_documents",
        "score": 0.7360671272397575
    },
    "reference_documents": [
        {
            "id": "666bb9d8-f0d4-449f-8c93-7bb2246a05e9",
            "name": "sliced_invoices_pdf_sample",
            "score": 0.7419987891426988
        },
        {
            "id": "de457b87-0470-4478-9d4f-44fe1e3fbf41",
            "name": "explanation_of_benefits_sample",
            "score": 0.7357554989442031
        },
        {
            "id": "fca24b5d-0464-401e-a400-7c570b03f85a",
            "name": "bank_statement_sample",
            "score": 0.7304470936323705
        }
    ],
    "classification_summary": []
}
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)
Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)Python
from sensibleapi import SensibleSDK

sesnible = Sensible SDK(YOUR_API_KEY") # replace with your API key
request = sensible.extract(
      url="http://github.com/sensible-hq/sensible-docs/raw/main/readme-sync/assets/v0/pdfs/contract.pdf",
       document_type="sensible_instruct_basics",
       environment="development"
)
results = sensible.wait_for(request_)

Production-ready from day one

Sensible offers a robust and developer-friendly document processing platform with security and compliance at its core.

diploma icon

Audit-ready security

Safeguard your sensitive data with Sensible's robust security measures and adherence to industry-leading certifications.

SOC 2 Type II and HIPAA compliant
Regular audits and penetration testing
Configurable data retention policies
Full audit trails for every extraction
bar graph growth icon

Scale without surprises

Seamlessly handle high-volume document processing workflows with Sensible's enterprise-grade infrastructure.

Per-document pricing that scales linearly
No token-based cost volatility
Reliable AWS infrastructure, multi-region
headphones icon

Dedicated Support

From onboarding to ongoing optimization, our customer success engineers are committed to your success.

Personalized onboarding and 
setup assistance
Expert guidance on SenseML configurations
Ongoing technical support and best practices advice
Custom integrations with your 
existing systems