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.

Run with Naftiko SensibleExtractionsDocument ProcessingIDP

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

extractions-extractions.yaml Raw ↑
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: $.