Skip to content
Hoody.com

The file journal records every mutation performed on files inside a container, capturing creates, writes, deletes, moves, copies, chmod/chown changes, and directory operations. Use these endpoints to audit changes, flush pending entries durably to disk, and monitor journal health and storage usage.

All endpoints in this page are scoped to a single container. The base URL embeds the project ID, container ID, and server region.


GET /api/v1/journal

Returns a paginated list of journal entries. Supports filtering by path prefix, operation type, time range, and cursor-based pagination using after_id.

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://proj-acme-cnt-workspace01-files-1.eu-west-1.containers.hoody.icu/api/v1/journal?path=%2Fsrc%2Fapi&op=write%2Cdelete&since=2025-01-15T00%3A00%3A00Z&limit=50&after_id=12480" \
-H "Authorization: Bearer <token>"

The op field of each entry is one of 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


GET /api/v1/journal/stats

Returns storage statistics for the journal system, including total entries, blob storage usage, writer health, parse failure counts, and pruning information.

Terminal window
curl -X GET "https://proj-acme-cnt-workspace01-files-1.eu-west-1.containers.hoody.icu/api/v1/journal/stats" \
-H "Authorization: Bearer <token>"
  • total_entries — Total number of journal entries across all day files.
  • total_blobs — Total number of content blobs stored.
  • total_blob_bytes — Total bytes used by content blobs.
  • total_storage_bytes — Total bytes used by journal (entries + blobs).
  • writer_healthy — Whether the background JSONL writer task is healthy.
  • entries_skipped_total — Number of paths with entries that were dropped (writer outage).
  • parse_failures — Count of corrupted/malformed JSONL lines encountered during scans.
  • skipped_overflow — Count of dropped paths that exceeded the tracking cap. Non-zero means completeness detection is degraded.
  • newest_entry_ts — Timestamp (Unix ms) of the most recent entry, or null if no entries.
  • pruned_before_date — ISO date (YYYY-MM-DD) before which all day files have been pruned, or null if no pruning.

POST /api/v1/journal/flush

Forces all pending journal entries to be written and fsync’d to disk. Returns 200 with flushed=true when all entries were durably persisted, or 503 with flushed=false when the flush failed or entries were lost.

Terminal window
curl -X POST "https://proj-acme-cnt-workspace01-files-1.eu-west-1.containers.hoody.icu/api/v1/journal/flush" \
-H "Authorization: Bearer <token>"