Repository API
Overview
An entry in Laserfiche refers to any item stored in the Laserfiche Repository. This can include:
- Documents: Digital files such as PDFs, Word documents, spreadsheets, etc.
- Folders: Organizational units that contain entries like documents or other folders.
Each entry can have associated metadata such as fields and templates to store specific pieces of information (like invoice numbers or client names).
Laserfiche Repository API enables programmatic access to Cloud and Self-Hosted Laserfiche Repositories:
- Create, list, import, and export documents and folders
- Update documents — electronic document, metadata, and image pages
- Manipulate pages — create, replace, rotate, move, copy, and delete
- Manage document locks and versions — lock / unlock, check-in / check-out
- Read/Write entry metadata
- Read and write annotations, and manage stamps
- Store alternate electronic documents — named binary streams alongside a document
- Locate words on a page, and map a rectangle to text offsets
- Generate text — electronic document extraction and image page OCR
- Search the Repository
- Manage access control and rights — entries, fields, templates, trustees
- Manage records — properties, retention events, and record series
- Manage user areas — Recent, Starred, and Personal Collections
Overwrite routes now require their collection member
The PUT routes that replace a whole collection — tags, links, field values, and the access-control setters — now reject a request whose body does not name the collection it is replacing. A body that omits the member, sends it as null, or misspells it answers 400 instead of 200.
Previously such a request succeeded and cleared the entire collection, which meant a typo in a member name silently unassigned every tag, removed every link, or dropped every explicit access-control entry.
- If you clear a collection by sending an empty body, send the member with an empty array instead —
{"tags": []}still clears, and remains the documented way to do it. - If you always send the full collection, nothing changes.
- If you use a generated client, note that building a request object without setting the collection omits the member entirely. That call used to clear everything and return
200; it now returns400.
The API changelog lists the affected routes and the member each one expects.