OpenAPI Specification
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