openapi: 3.1.0 info: title: Biolevate Agent Extraction API version: 1.0.0 description: Conversational agent jobs servers: - url: / description: Biolevate Server security: - TOKEN: [] tags: - name: Extraction description: Extraction resource management paths: /api/core/extraction/jobs: get: tags: - Extraction summary: List extraction jobs description: Returns a paginated list of extraction jobs for the current user operationId: listExtractionJobs 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: - Extraction summary: Create extraction job description: Creates a new metadata extraction job on the specified files operationId: createExtractionJob requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateExtractRequest' 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/extraction/jobs/{jobId}: get: tags: - Extraction summary: Get extraction job description: Returns a single extraction job by its ID operationId: getExtractionJob 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/extraction/jobs/{jobId}/results: get: tags: - Extraction summary: Get extraction job outputs description: Returns the extracted metadata results from the job operationId: getExtractionJobOutputs 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/ExtractJobOutputs' '200': description: Successfully retrieved outputs content: '*/*': schema: $ref: '#/components/schemas/ExtractJobOutputs' '404': description: Job not found content: '*/*': schema: $ref: '#/components/schemas/ExtractJobOutputs' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ExtractJobOutputs' /api/core/extraction/jobs/{jobId}/inputs: get: tags: - Extraction summary: Get extraction job inputs description: Returns the input files and meta configurations used for the extraction job operationId: getExtractionJobInputs 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/ExtractJobInputs' '200': description: Successfully retrieved inputs content: '*/*': schema: $ref: '#/components/schemas/ExtractJobInputs' '404': description: Job not found content: '*/*': schema: $ref: '#/components/schemas/ExtractJobInputs' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/ExtractJobInputs' /api/core/extraction/jobs/{jobId}/annotations: get: tags: - Extraction summary: Get extraction job annotations description: Returns the document annotations generated by the extraction job operationId: getExtractionJobAnnotations 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 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 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 EliseMetaInput: type: object properties: meta: type: string answerType: $ref: '#/components/schemas/ExpectedAnswerTypeDto' description: type: string FilesInput: type: object properties: fileIds: type: array items: type: string collectionIds: type: array items: type: string DataValue: type: object properties: strValue: type: string boolValue: type: boolean longValue: type: integer format: int64 doubleValue: type: number format: double dateValue: type: string format: date-time strListValue: type: array items: type: string boolListValue: type: array items: type: boolean longListValue: type: array items: type: integer format: int64 doubleListValue: type: array items: type: number format: double dateListValue: type: array items: type: string format: date-time 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 ExpectedAnswerTypeDto: type: object properties: dataType: type: string enum: - STRING - INT - FLOAT - BOOL - DATE - ENUM multiValued: type: boolean enumValues: type: array description: List of possible values for enum types items: type: string enumColors: type: object additionalProperties: type: string description: Map of enum values to their associated colors enumSuggestionsEnabled: type: boolean rejectedEnumValues: type: array items: type: string dateFormat: type: string enum: - ISO - EUR - US decimalPrecision: type: string enum: - ZERO_DECIMALS - ONE_DECIMAL - TWO_DECIMALS - THREE_DECIMALS - FOUR_DECIMALS - FIVE_DECIMALS 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 ExtractJobOutputs: type: object properties: results: type: array items: $ref: '#/components/schemas/EliseMetaResult' ExtractJobInputs: type: object properties: files: $ref: '#/components/schemas/FilesInput' metas: type: array items: $ref: '#/components/schemas/EliseMetaInput' 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 EliseMetaResult: type: object properties: id: type: string format: uuid explanation: type: string answerType: $ref: '#/components/schemas/ExpectedAnswerTypeDto' answer: $ref: '#/components/schemas/DataValue' referenceIds: type: array items: $ref: '#/components/schemas/AnnotationId' meta: type: string rawValue: type: object CreateExtractRequest: type: object properties: files: $ref: '#/components/schemas/FilesInput' metas: type: array items: $ref: '#/components/schemas/EliseMetaInput' config: $ref: '#/components/schemas/JobLaunchConfig' 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 securitySchemes: TOKEN: type: http scheme: bearer bearerFormat: JWT