openapi: 3.1.0 info: title: Biolevate Agent Multi-Dimensional Extraction API version: 1.0.0 description: Conversational agent jobs servers: - url: / description: Biolevate Server security: - TOKEN: [] tags: - name: Multi-Dimensional Extraction description: Multi-dimensional (entity / schema-based) extraction resource management paths: /api/core/multi-dim-extraction/jobs: get: tags: - Multi-Dimensional Extraction summary: List multi-dimensional extraction jobs description: Returns a paginated list of multi-dimensional extraction jobs for the current user operationId: listMDEJobs parameters: - name: pageSize in: query description: Page size required: true schema: type: integer format: int32 - name: page in: query description: Page number required: true schema: type: integer format: int32 - name: sortProperty in: query description: Sort property required: false schema: type: string - name: sortOrder in: query description: Sort order required: false schema: type: string responses: '200': description: Successfully retrieved jobs content: '*/*': schema: $ref: '#/components/schemas/PageDataJob' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/PageDataJob' post: tags: - Multi-Dimensional Extraction summary: Create multi-dimensional extraction job description: Creates a new entity extraction job using a structured schema (multi-column) on the specified files operationId: createMDEJob requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateMDERequest' required: true responses: '403': description: Access denied content: '*/*': schema: $ref: '#/components/schemas/Job' '200': description: Job created successfully content: '*/*': schema: $ref: '#/components/schemas/Job' '400': description: Invalid request content: '*/*': schema: $ref: '#/components/schemas/Job' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/Job' /api/core/multi-dim-extraction/jobs/{jobId}: get: tags: - Multi-Dimensional Extraction summary: Get multi-dimensional extraction job description: Returns a single multi-dimensional extraction job by its ID operationId: getMDEJob parameters: - name: jobId in: path description: The job Id required: true schema: type: string responses: '200': description: Successfully retrieved job content: '*/*': schema: $ref: '#/components/schemas/Job' '403': description: Access denied - not the job owner content: '*/*': schema: $ref: '#/components/schemas/Job' '404': description: Job not found content: '*/*': schema: $ref: '#/components/schemas/Job' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/Job' /api/core/multi-dim-extraction/jobs/{jobId}/results: get: tags: - Multi-Dimensional Extraction summary: Get multi-dimensional extraction job outputs description: Returns the entity extraction results from the multi-dimensional extraction job operationId: getMDEJobOutputs parameters: - name: jobId in: path description: The job Id required: true schema: type: string responses: '403': description: Access denied - not the job owner content: '*/*': schema: $ref: '#/components/schemas/MDEJobOutputs' '200': description: Successfully retrieved outputs content: '*/*': schema: $ref: '#/components/schemas/MDEJobOutputs' '404': description: Job not found content: '*/*': schema: $ref: '#/components/schemas/MDEJobOutputs' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/MDEJobOutputs' /api/core/multi-dim-extraction/jobs/{jobId}/inputs: get: tags: - Multi-Dimensional Extraction summary: Get multi-dimensional extraction job inputs description: Returns the input files and entity schema used for the multi-dimensional extraction job operationId: getMDEJobInputs parameters: - name: jobId in: path description: The job Id required: true schema: type: string responses: '403': description: Access denied - not the job owner content: '*/*': schema: $ref: '#/components/schemas/MDEJobInputs' '200': description: Successfully retrieved inputs content: '*/*': schema: $ref: '#/components/schemas/MDEJobInputs' '404': description: Job not found content: '*/*': schema: $ref: '#/components/schemas/MDEJobInputs' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/MDEJobInputs' /api/core/multi-dim-extraction/jobs/{jobId}/annotations: get: tags: - Multi-Dimensional Extraction summary: Get multi-dimensional extraction job annotations description: Returns the document annotations generated by the multi-dimensional extraction job operationId: getMDEJobAnnotations parameters: - name: jobId in: path description: The job Id required: true schema: type: string responses: '403': description: Access denied - not the job owner content: '*/*': schema: type: array items: $ref: '#/components/schemas/EliseAnnotation' '200': description: Successfully retrieved annotations content: '*/*': schema: type: array items: $ref: '#/components/schemas/EliseAnnotation' '404': description: Job not found content: '*/*': schema: type: array items: $ref: '#/components/schemas/EliseAnnotation' '401': description: Unauthorized content: '*/*': schema: type: array items: $ref: '#/components/schemas/EliseAnnotation' components: schemas: EntityId: type: object properties: id: type: string format: uuid entityType: type: string enum: - POLICY - PROJECT - COLLECTION - PROVIDER - FILE - PROCESSOR - JOB - PRESET - EDITABLE_DOCUMENT - REVIEW - COLLECTION_DERIVATION - REVIEW_REQUEST - MILESTONE - INSIGHT - CONCEPT_NOTE - ANNOTATION - BIBLIO_SEARCH - SEARCH_DOWNLOAD - INSIGHT_CELL_FILTER - INSIGHT_CELL_SORTING - INSIGHT_CELL_FORMAT - INSIGHT_GROUP - INSIGHTS_TABLE_CONFIG - INSIGHTS_TABLE_TEMPLATE - SEARCH_REMOVAL - COMMENT_THREAD - COMMENT - SMART_REVIEW - RIS_IMPORT_JOB - FORGE_WORKFLOW - COLLECTION_VIEW - SUB_COLLECTION_JOB - PROJECT_LABEL - PROJECT_GROUP EliseEntityColumnInput: type: object properties: key: type: string label: type: string type: type: string enum: - ENTITY_COLUMN_TYPE_UNSPECIFIED - ENTITY_COLUMN_TYPE_STRING - ENTITY_COLUMN_TYPE_INT - ENTITY_COLUMN_TYPE_FLOAT - ENTITY_COLUMN_TYPE_BOOL role: type: string enum: - ENTITY_COLUMN_ROLE_UNSPECIFIED - ENTITY_COLUMN_ROLE_IDENTIFIER - ENTITY_COLUMN_ROLE_LABEL - ENTITY_COLUMN_ROLE_GROUP - ENTITY_COLUMN_ROLE_TIMEPOINT - ENTITY_COLUMN_ROLE_VALUE - ENTITY_COLUMN_ROLE_UNIT - ENTITY_COLUMN_ROLE_DEFINITION - ENTITY_COLUMN_ROLE_COMMENT description: type: string allowedValues: type: array items: type: string isRowKey: type: boolean JobLaunchConfig: type: object description: Optional job launch behaviour for input files properties: skip_unindexed_files: type: boolean description: 'When false or omitted, the request is rejected if any input file is not indexed. When true, unindexed files are excluded and the job runs on indexed files only. ' example: false Job: type: object properties: jobId: type: string status: type: string enum: - SUCCESS - FAILED - ABORTED - RUNNING - PENDING taskType: type: string createdTime: type: integer format: int64 executionTime: type: number format: double errorMessage: type: string name: type: string archived: type: boolean EliseEntityCellResult: type: object properties: columnKey: type: string value: type: object explanation: type: string referenceIds: type: array items: $ref: '#/components/schemas/AnnotationId' EliseEntitySchemaInput: type: object properties: name: type: string description: type: string columns: type: array items: $ref: '#/components/schemas/EliseEntityColumnInput' FilesInput: type: object properties: fileIds: type: array items: type: string collectionIds: type: array items: type: string EliseEntityRowResult: type: object properties: cells: type: array items: $ref: '#/components/schemas/EliseEntityCellResult' explanation: type: string referenceIds: type: array items: $ref: '#/components/schemas/AnnotationId' EliseAnnotation: type: object properties: id: $ref: '#/components/schemas/AnnotationId' createdTime: type: integer format: int64 owner: $ref: '#/components/schemas/UserId' space: $ref: '#/components/schemas/EntityId' data: $ref: '#/components/schemas/EliseAnnotationConfig' type: type: string enum: - DOCUMENT_STATEMENT - WEB_STATEMENT - ENTIRE_DOCUMENT_STATEMENT - EXTERNAL_DOCUMENT_STATEMENT - KNOWLEDGE_STATEMENT - REVIEW_STATEMENT modifiedTime: type: integer format: int64 lastModifier: $ref: '#/components/schemas/UserId' status: type: string enum: - VALID - NOTVALID UserId: type: object properties: id: type: string EliseAnnotationConfig: type: object discriminator: propertyName: type mapping: DOCUMENT_STATEMENT: '#/components/schemas/EliseDocumentStatement' EXTERNAL_DOCUMENT_STATEMENT: '#/components/schemas/EliseExternalDocumentStatement' WEB_STATEMENT: '#/components/schemas/EliseWebStatement' KNOWLEDGE_STATEMENT: '#/components/schemas/EliseKnowledgeStatement' ENTIRE_DOCUMENT_STATEMENT: '#/components/schemas/EliseFullDocumentStatement' REVIEW_STATEMENT: '#/components/schemas/EliseReviewComment' properties: type: type: string enum: - DOCUMENT_STATEMENT - WEB_STATEMENT - ENTIRE_DOCUMENT_STATEMENT - EXTERNAL_DOCUMENT_STATEMENT - KNOWLEDGE_STATEMENT - REVIEW_STATEMENT AnnotationId: type: object properties: id: type: string format: uuid entityType: type: string enum: - POLICY - PROJECT - COLLECTION - PROVIDER - FILE - PROCESSOR - JOB - PRESET - EDITABLE_DOCUMENT - REVIEW - COLLECTION_DERIVATION - REVIEW_REQUEST - MILESTONE - INSIGHT - CONCEPT_NOTE - ANNOTATION - BIBLIO_SEARCH - SEARCH_DOWNLOAD - INSIGHT_CELL_FILTER - INSIGHT_CELL_SORTING - INSIGHT_CELL_FORMAT - INSIGHT_GROUP - INSIGHTS_TABLE_CONFIG - INSIGHTS_TABLE_TEMPLATE - SEARCH_REMOVAL - COMMENT_THREAD - COMMENT - SMART_REVIEW - RIS_IMPORT_JOB - FORGE_WORKFLOW - COLLECTION_VIEW - SUB_COLLECTION_JOB - PROJECT_LABEL - PROJECT_GROUP EliseEntityExtractionResult: type: object properties: metaId: type: string format: uuid meta: type: string schema: $ref: '#/components/schemas/EliseEntitySchemaInput' rows: type: array items: $ref: '#/components/schemas/EliseEntityRowResult' explanation: type: string referenceIds: type: array items: $ref: '#/components/schemas/AnnotationId' MDEJobInputs: type: object properties: files: $ref: '#/components/schemas/FilesInput' schema: $ref: '#/components/schemas/EliseEntitySchemaInput' MDEJobOutputs: type: object properties: entityExtraction: $ref: '#/components/schemas/EliseEntityExtractionResult' PageDataJob: type: object properties: data: type: array items: $ref: '#/components/schemas/Job' totalPages: type: integer format: int32 totalElements: type: integer format: int64 hasNext: type: boolean CreateMDERequest: type: object properties: files: $ref: '#/components/schemas/FilesInput' schema: $ref: '#/components/schemas/EliseEntitySchemaInput' config: $ref: '#/components/schemas/JobLaunchConfig' securitySchemes: TOKEN: type: http scheme: bearer bearerFormat: JWT