Skip to content
Hoody.com

The file journal records every mutation event for files inside a container: writes, deletes, moves, copies, permission changes, and directory operations. Use these endpoints to query the audit trail, retrieve storage and writer-health statistics, or force pending entries to be durably flushed to disk. All endpoints are scoped to a single container and require the journal feature to be enabled.

Query file mutation journal entries with optional filters. Supports cursor-based pagination via after_id. A page can hold fewer entries than limit, or none, while has_more is true: keep paging with next_after_id until has_more is false.

NameInTypeRequiredDescription
pathquerystringNoFilter entries by path prefix
opquerystringNoFilter by operation type(s), comma-separated (e.g. write,delete)
sincequerystringNoFilter entries since timestamp (RFC3339 or Unix ms)
limitqueryintegerNoMax entries to return (default 100)
after_idqueryintegerNoCursor: return entries with id > after_id (default 0)
Terminal window
curl -X GET "https://67e89abc123def456789abcd-890abcdef12345678901cdef-files-1.node-example-1.containers.hoody.com/api/v1/journal?path=src/&op=write,delete&limit=50&after_id=0" \
-H "Authorization: Bearer <token>"

The op field accepts the following values: create, write, append, delete, touch, moved_from, moved_to, copied_from, copied_to, dir_moved_from, dir_moved_to, dir_copied_from, dir_copied_to, dir_deleted, mkdir, chmod, chown, gap.

Returns storage statistics for the journal system, including entry counts, blob storage usage, writer health, and pruning information.

This endpoint takes no parameters.

Terminal window
curl -X GET "https://67e89abc123def456789abcd-890abcdef12345678901cdef-files-1.node-example-1.containers.hoody.com/api/v1/journal/stats" \
-H "Authorization: Bearer <token>"
FieldTypeDescription
total_entriesintegerTotal number of journal entries across all day files
total_blobsintegerTotal number of content blobs stored
total_blob_bytesintegerTotal bytes used by content blobs
total_storage_bytesintegerTotal bytes used by journal (entries + blobs)
writer_healthybooleanWhether the background JSONL writer task is healthy
entries_skipped_totalintegerNumber of paths with entries that were dropped (writer outage)
parse_failuresintegerCount of corrupted or malformed JSONL lines encountered during scans
skipped_overflowintegerCount of dropped paths that exceeded the tracking cap; a non-zero value means completeness detection is degraded
newest_entry_tsintegerUnix ms timestamp of the most recent entry, or null if there are none
pruned_before_datestringISO date (YYYY-MM-DD) before which all day files have been pruned, or null if no pruning has occurred

Force all pending journal entries to be written and fsynced to disk. Returns 200 with flushed: true if all entries were durably persisted, or 503 with flushed: false if the flush failed or entries were lost.

This endpoint takes no parameters.

Terminal window
curl -X POST "https://67e89abc123def456789abcd-890abcdef12345678901cdef-files-1.node-example-1.containers.hoody.com/api/v1/journal/flush" \
-H "Authorization: Bearer <token>"