Webhook payload¶
In webhook mode the exporter consumes Duplicacy Web UI's report_url POST.
That report is a single flat JSON object and is sent only for backups (not for
prune, copy, or check). It carries these 26 fields:
| Field | Meaning |
|---|---|
computer |
Machine name (used for the machine label) |
directory |
Source directory backed up (the per-backup differentiator → snapshot_id) |
start_time, end_time |
Unix timestamps; their difference is the duration |
result |
"Success" or "Error" (capitalized) |
storage, storage_url |
Destination storage URL (used for the storage_target label) |
total_files, new_files |
File counts (total / new this revision) |
total_file_size, new_file_size |
Logical file bytes (total / new) |
total_chunks, new_chunks |
Chunk counts (total / new) |
total_chunk_size, new_chunk_size |
Chunk bytes after compression (total / new) |
total_file_chunks, new_file_chunks |
File-content chunk counts |
total_file_chunk_size, new_file_chunk_size |
File-content chunk bytes |
total_metadata_chunks, new_metadata_chunks |
Metadata chunk counts |
total_metadata_chunk_size, new_metadata_chunk_size |
Metadata chunk bytes |
upload_chunk_size |
Bytes actually uploaded this run (note: no "d" — upload, not uploaded) |
upload_file_chunk_size, upload_metadata_chunk_size |
Uploaded file / metadata chunk bytes |
No id, revision, prune or storage-size field
The report has no id, snapshot_id or revision field, and none for prune runs or storage size. The
exporter uses the last path component of directory as snapshot_id, so two backups on one machine stay
apart unless their directories share a last component (/a/data and /b/data to the same storage share
one series). Revision counts and storage size come from the storage poller.