sensible-so · Capability
Sensible Extractions API — Extractions
Sensible Extractions API — Extractions. 11 operations covering sync and async document extraction, portfolio extractions, CSV/Excel output, list/retrieve, and coverage statistics. Self-contained Naftiko capability covering the Sensible document-extraction business surface.
What You Can Do
POST
Extractdocumentsync
— Extract data from a document synchronously.
/v0/extract/{document_type}
GET
Getextraction
— Retrieve an extraction by id.
/v0/documents/{id}
MCP Tools
sensible-extract-document-sync
Extract data from a document synchronously using a Sensible document_type.
sensible-extract-from-url
Asynchronously extract from a document URL.
sensible-get-extraction
Retrieve an extraction by id.
read-only
idempotent
sensible-list-extractions
List past extractions with pagination.
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Sensible Extractions API — Extractions
description: 'Sensible Extractions API — Extractions. 11 operations covering sync and async document extraction, portfolio extractions, CSV/Excel output, list/retrieve, and coverage statistics. Self-contained Naftiko capability covering the Sensible document-extraction business surface.'
tags:
- Sensible
- Extractions
- Document Processing
- IDP
created: '2026-05-25'
modified: '2026-05-25'
binds:
- namespace: env
keys:
SENSIBLE_API_KEY: SENSIBLE_API_KEY
capability:
consumes:
- type: http
namespace: extractions
baseUri: https://api.sensible.so/v0
description: Sensible Extractions business capability. Self-contained, no shared references.
resources:
- name: extract-sync
path: /extract/{document_type}
operations:
- name: extractDocumentSync
method: POST
description: Extract data from a document synchronously (testing-grade endpoint).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: document_type
in: path
type: string
required: true
- name: document_name
in: query
type: string
required: false
- name: environment
in: query
type: string
required: false
- name: body
in: body
type: object
required: true
- name: extract-from-url
path: /extract_from_url/{document_type}
operations:
- name: extractFromUrl
method: POST
description: Asynchronously extract data from a document at a customer-provided URL.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: document_type
in: path
type: string
required: true
- name: body
in: body
type: object
required: true
- name: generate-upload-url
path: /generate_upload_url/{document_type}
operations:
- name: generateUploadUrl
method: POST
description: Generate a Sensible-signed upload URL for async extraction.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: document_type
in: path
type: string
required: true
- name: body
in: body
type: object
required: false
- name: documents
path: /documents/{id}
operations:
- name: getExtraction
method: GET
description: Retrieve an extraction by id (parsed_document and status).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
required: true
- name: extractions-list
path: /extractions
operations:
- name: listExtractions
method: GET
description: List past extractions in reverse chronological order with keyset pagination.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: limit
in: query
type: integer
required: false
- name: continuation_token
in: query
type: string
required: false
- name: generate-csv
path: /generate_csv/{ids}
operations:
- name: generateCsv
method: GET
description: Convert one or more extractions to a CSV file.
outputRawFormat: text
outputParameters:
- name: result
type: string
value: $.
inputParameters:
- name: ids
in: path
type: string
required: true
- name: generate-excel
path: /generate_excel/{ids}
operations:
- name: generateExcel
method: GET
description: Convert one or more extractions to an Excel spreadsheet.
outputRawFormat: binary
outputParameters:
- name: result
type: string
value: $.
inputParameters:
- name: ids
in: path
type: string
required: true
- name: extractions-statistics
path: /extractions/statistics
operations:
- name: getStatistics
method: GET
description: Per-config daily coverage histogram for a date range.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: start_date
in: query
type: string
required: false
- name: end_date
in: query
type: string
required: false
authentication:
type: apikey
key: Authorization
value: 'Bearer {{env.SENSIBLE_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: extractions-rest
port: 8080
description: REST adapter for Sensible Extractions. One Spectral-compliant resource per consumed operation, prefixed with /v0.
resources:
- path: /v0/extract/{document_type}
name: extract-sync
description: Sync extract REST surface.
operations:
- method: POST
name: extractDocumentSync
description: Extract data from a document synchronously.
call: extractions.extractDocumentSync
with:
document_type: rest.document_type
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v0/documents/{id}
name: documents
description: Get extraction by id.
operations:
- method: GET
name: getExtraction
description: Retrieve an extraction by id.
call: extractions.getExtraction
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: extractions-mcp
port: 9090
transport: http
description: MCP adapter for Sensible Extractions. One tool per consumed operation.
tools:
- name: sensible-extract-document-sync
description: Extract data from a document synchronously using a Sensible document_type.
hints:
readOnly: false
destructive: false
idempotent: false
call: extractions.extractDocumentSync
with:
document_type: tools.document_type
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: sensible-extract-from-url
description: Asynchronously extract from a document URL.
hints:
readOnly: false
destructive: false
idempotent: false
call: extractions.extractFromUrl
with:
document_type: tools.document_type
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: sensible-get-extraction
description: Retrieve an extraction by id.
hints:
readOnly: true
destructive: false
idempotent: true
call: extractions.getExtraction
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: sensible-list-extractions
description: List past extractions with pagination.
hints:
readOnly: true
destructive: false
idempotent: true
call: extractions.listExtractions
with:
limit: tools.limit
continuation_token: tools.continuation_token
outputParameters:
- type: object
mapping: $.