Skip to content

DLU API

Document Logic Units (DLUs) are the logical-document layer above pages: a single libro of municipal acts contains many DLUs (one per session, deed, minute). Each DLU carries CIDOC-CRM-typed entities, events, and relationships, all anchored to (page, line) mentions. This tag holds the full CRUD surface plus the LLM-driven autofill and segmentation pipelines.

MethodPathSummaryKey paramsResponse
POST/collections/{collection}/libros/{libro}/exportBulk export a libro tree as AtoM CSV, EAD 2002 XML, EAC-CPF ZIP, or METS XMLcollection (path:string)
libro (path:integer)
format (query:ExportFormat)
(no body)
GET/dlusList DLUsDluSummaryDto[]
POST/dlusCreate DLUbody: CreateDlu(no body)
POST/dlus/export-bulkExport an explicit list of DLUsdlu_ids (query:string)
format (query:ExportFormat)
(no body)
GET/dlus/extentsBulk DLU extents lookup(no body)
POST/dlus/groupGroup DLUs under a new parentbody: GroupDlusBody(no body)
POST/dlus/segment/{collection}/{libro}Start auto-segmentation for a librocollection (path:string)
libro (path:string)
(no body)
GET/dlus/segment/{collection}/{libro}/statusPoll segmentation job statuscollection (path:string)
libro (path:string)
(no body)
DELETE/dlus/{id}Delete DLUid (path:integer)(no body)
GET/dlus/{id}Get DLU envelopeid (path:integer)DluDto
PATCH/dlus/{id}Update DLUid (path:integer)
body: UpdateDlu
(no body)
GET/dlus/{id}/ancestorsList DLU ancestorsid (path:integer)(no body)
GET/dlus/{id}/annotationsList DLU annotationsid (path:integer)AnnotationDto[]
POST/dlus/{id}/annotationsCreate DLU annotationid (path:integer)
body: CreateAnnotation
(no body)
POST/dlus/{id}/autofillStart LLM-driven autofill for a DLUid (path:integer)(no body)
POST/dlus/{id}/autofill-retryRetry autofill on failed pagesid (path:integer)(no body)
GET/dlus/{id}/autofill/statusPoll autofill job statusid (path:integer)(no body)
GET/dlus/{id}/childrenList DLU childrenid (path:integer)DluSummaryDto[]
DELETE/dlus/{id}/event-relations/{rel_id}Delete event relationid (path:integer)
rel_id (path:integer)
(no body)
PATCH/dlus/{id}/event-relations/{rel_id}Update event relationid (path:integer)
rel_id (path:integer)
body: UpdateEventRelation
(no body)
POST/dlus/{id}/exportExport a DLU as AtoM CSV, ISAD(G) JSON, EAC-CPF XML, or METS XMLid (path:integer)
format (query:ExportFormat)
(no body)
POST/dlus/{id}/fuse-dlusFuse N source DLUs into a target DLUid (path:integer)
body: FuseDluBody
(no body)
POST/dlus/{id}/fuse-entitiesFuse entity rows within a DLUid (path:integer)
body: FuseEntitiesBody
(no body)
POST/dlus/{id}/geocode-placesBulk-geocode un-geocoded places on a DLUid (path:integer)(no body)
PUT/dlus/{id}/place-coords/{place_id}Set place coordinates manuallyid (path:integer)
place_id (path:integer)
body: SetCoordsBody
(no body)
PUT/dlus/{id}/place-geocode/{place_id}Apply a GeoNames candidate to a placeid (path:integer)
place_id (path:integer)
body: ApplyGeocodeBody
(no body)
GET/dlus/{id}/premis-eventsStandalone PREMIS preservation events for a DLUid (path:integer)(no body)
GET/dlus/{id}/rollupRoll up entities from child DLUsid (path:integer)(no body)
POST/dlus/{id}/score-confidenceCompute embedding-based confidence scoresid (path:integer)(no body)
POST/dlus/{id}/split-entitySplit an entity row by mention indicesid (path:integer)
body: SplitEntityBody
(no body)
GET/dlus/{id}/textGet DLU textid (path:integer)JSON
GET/geocode-searchGeoNames candidate lookup for SME-driven geocodingq (query:string)(no body)
GET/pages/{collection}/{libro}/{page}/dlusDLUs covering a pagecollection (path:string)
libro (path:integer)
page (path:integer)
(no body)

List DLUs in a libro

Terminal window
curl -H "X-API-Key: $API_KEY" \
"$ARCHAIC/dlus?collection=dipucoru&libro=1"

Start an autofill job for one DLU

Terminal window
curl -X POST -H "X-API-Key: $API_KEY" \
"$ARCHAIC/dlus/{id}/autofill"

The no-anchor-no-entry rule applies to every write that asserts an entity, event, or relationship: each row must carry at least one (page, line) mention with a confidence score, or the engine drops it at write time. Bulk endpoints surface dropped rows in their per-id response so callers can inspect.