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: $.