SYNCTHING-EVENT-API(7)             Syncthing            SYNCTHING-EVENT-API(7)



NNAAMMEE
       syncthing-event-api - Event API

DDEESSCCRRIIPPTTIIOONN
       Syncthing  provides a simple long polling interface for exposing events
       from  the  core  utility  towards  a  GUI.  To  receive   events,   see
       /rest/events-get.

EEVVEENNTT SSTTRRUUCCTTUURREE
       Each event is represented by an object similar to the following:

          {
              "id": 2,
              "globalID": 3,
              "type": "DeviceConnected",
              "time": "2014-07-13T21:04:33.687836696+02:00",
              "data": {
                  "addr": "172.16.32.25:22000",
                  "id": "NFGKEKE-7Z6RTH7-I3PRZXS-DEJF3UJ-FRWJBFO-VBBTDND-4SGNGVZ-QUQHJAG"
              }
          }

       The  top  level  keys  iidd,  gglloobbaallIIDD,  ttiimmee,  ttyyppee  and ddaattaa are always
       present, though ddaattaa may be nnuullll.

       iidd     A unique ID  for  this  event  on  the  events  API.  It  always
              increases by 1: the first event generated has id 11, the next has
              id 22 etc. If this increases by more than 1,  then  one  or  more
              events have been skipped by the events API.

       gglloobbaallIIDD
              A  global  ID  for  this event, across the events API, the audit
              log, and any other sources. It may increase by more than 1,  but
              it will always be greater than or equal to the id.

       ttiimmee   The time the event was generated.

       ttyyppee   Indicates  the type of (i.e. reason for) the event and is one of
              the event types below.

       ddaattaa   An object  containing  optional  extra  information;  the  exact
              structure is determined by the event type.

EEVVEENNTT TTYYPPEESS
   CCoonnffiiggSSaavveedd
       Emitted  after  the  config  has been saved by the user or by Syncthing
       itself.

          {
              "id": 50,
              "globalID": 50,
              "type": "ConfigSaved",
              "time": "2014-12-13T00:09:13.5166486Z",
              "data": {
                  "version": 7,
                  "folders": [{"..."}],
                  "devices": [{"..."}],
                  "gui": {"..."},
                  "ldap": {"..."},
                  "options": {"..."},
                  "remoteIgnoredDevices": [{"..."}],
                  "defaults": {"..."}
              }
          }

   DDeevviicceeCCoonnnneecctteedd
       Generated each time a connection to a device has been established.

          {
              "id": 2,
              "globalID": 2,
              "type": "DeviceConnected",
              "time": "2014-07-13T21:04:33.687836696+02:00",
              "data": {
                  "addr": "172.16.32.25:22000",
                  "id": "NFGKEKE-7Z6RTH7-I3PRZXS-DEJF3UJ-FRWJBFO-VBBTDND-4SGNGVZ-QUQHJAG",
                  "deviceName": "Laptop",
                  "clientName": "syncthing",
                  "clientVersion": "v0.13.4",
                  "type": "TCP (Client)"
              }
          }

   DDeevviicceeDDiissccoonnnneecctteedd
       Generated each time a connection to a device has been terminated.

          {
              "id": 48,
              "globalID": 48,
              "type": "DeviceDisconnected",
              "time": "2014-07-13T21:18:52.859929215+02:00",
              "data": {
                  "error": "unexpected EOF",
                  "id": "NFGKEKE-7Z6RTH7-I3PRZXS-DEJF3UJ-FRWJBFO-VBBTDND-4SGNGVZ-QUQHJAG"
              }
          }

       NNOOTTEE::
          The error key contains the cause for disconnection, which might  not
          necessarily be an error as such. Specifically, âEOFâ and âunexpected
          EOFâ both signify TCP connection  termination,  either  due  to  the
          other device restarting or going offline or due to a network change.

   DDeevviicceeDDiissccoovveerreedd
       Emitted when a new device is discovered using local discovery.

          {
              "id": 13,
              "globalID": 13,
              "type": "DeviceDiscovered",
              "time": "2014-07-17T13:28:05.043465207+02:00",
              "data": {
                  "addrs": [
                      "172.16.32.25:22000"
                  ],
                  "device": "NFGKEKE-7Z6RTH7-I3PRZXS-DEJF3UJ-FRWJBFO-VBBTDND-4SGNGVZ-QUQHJAG"
              }
          }

   DDeevviicceePPaauusseedd
       Emitted when a device was paused.

          {
              "id": 13,
              "globalID": 13,
              "type": "DevicePaused",
              "time": "2014-07-17T13:28:05.043465207+02:00",
              "data": {
                  "device": "NFGKEKE-7Z6RTH7-I3PRZXS-DEJF3UJ-FRWJBFO-VBBTDND-4SGNGVZ-QUQHJAG"
              }
          }

   DDeevviicceeRReejjeecctteedd ((DDEEPPRREECCAATTEEDD))
       Deprecated  since version v1.13.0: This event is still emitted for com‐
       patibility, but deprecated.  Use the replacement  pendingdeviceschanged
       event instead.


       Emitted  when there is a connection from a device we are not configured
       to talk to.

          {
              "id": 24,
              "globalID": 24,
              "type": "DeviceRejected",
              "time": "2014-08-19T10:43:00.562821045+02:00",
              "data": {
                  "address": "127.0.0.1:51807",
                  "name": "My dusty computer",
                  "device": "EJHMPAQ-OGCVORE-ISB4IS3-SYYVJXF-TKJGLTU-66DIQPF-GJ5D2GX-GQ3OWQK"
              }
          }

   DDeevviicceeRReessuummeedd
       Generated each time a device was resumed.

          {
              "id": 2,
              "globalID": 2,
              "type": "DeviceResumed",
              "time": "2014-07-13T21:04:33.687836696+02:00",
              "data": {
                  "device": "NFGKEKE-7Z6RTH7-I3PRZXS-DEJF3UJ-FRWJBFO-VBBTDND-4SGNGVZ-QUQHJAG"
              }
          }

   DDoowwnnllooaaddPPrrooggrreessss
       Emitted during file downloads for each folder for each file. By default
       only  a single file in a folder is handled at the same time, but custom
       configuration can cause multiple files to be shown.

          {
              "id": 221,
              "globalID": 221,
              "type": "DownloadProgress",
              "time": "2014-12-13T00:26:12.9876937Z",
              "data": {
                  "folder1": {
                      "file1": {
                          "total": 800,
                          "pulling": 2,
                          "copiedFromOrigin": 0,
                          "reused": 633,
                          "copiedFromElsewhere": 0,
                          "pulled": 38,
                          "bytesTotal": 104792064,
                          "bytesDone": 87883776
                      },
                      "dir\\file2": {
                          "total": 80,
                          "pulling": 2,
                          "copiedFromOrigin": 0,
                          "reused": 0,
                          "copiedFromElsewhere": 0,
                          "pulled": 32,
                          "bytesTotal": 10420224,
                          "bytesDone": 4128768
                      }
                  },
                  "folder2": {
                      "file3": {
                          "total": 800,
                          "pulling": 2,
                          "copiedFromOrigin": 0,
                          "reused": 633,
                          "copiedFromElsewhere": 0,
                          "pulled": 38,
                          "bytesTotal": 104792064,
                          "bytesDone": 87883776
                      },
                      "dir\\file4": {
                          "total": 80,
                          "pulling": 2,
                          "copiedFromOrigin": 0,
                          "reused": 0,
                          "copiedFromElsewhere": 0,
                          "pulled": 32,
                          "bytesTotal": 10420224,
                          "bytesDone": 4128768
                      }
                  }
              }
          }

       · ttoottaall - total number of blocks in the file

       · ppuulllliinngg - number of blocks currently being downloaded

       · ccooppiieeddFFrroommOOrriiggiinn - number of blocks copied from the file we are about
         to replace

       · rreeuusseedd - number of blocks reused from a previous temporary file

       · ccooppiieeddFFrroommEEllsseewwhheerree  -  number  of  blocks copied from other files or
         potentially other folders

       · ppuulllleedd - number of blocks actually downloaded so far

       · bbyytteessTToottaall - approximate total file size

       · bbyytteessDDoonnee - approximate number  of  bytes  already  handled  (already
         reused, copied or pulled)

       Where block size is 128KB.

       Files/folders  appearing  in the event data imply that the download has
       been started for that file/folder, where disappearing implies that  the
       downloads  have  been finished or failed for that file/folder. There is
       always a last event emitted with no data, which implies  all  downloads
       have finished/failed.

   FFaaiilluurree
       Generated  for  specific  errors  that  will  also be sent to the usage
       reporting server, if enabled in the configuration.  These  are  usually
       of  special  interest to the developers to troubleshoot complex errors.
       The ddaattaa field contains a textual error message.

          {
            "id": 93,
            "globalID": 93,
            "type": "Failure",
            "time": "2021-06-07T21:22:03.414609034+02:00",
            "data": "index handler got paused while already paused"
          }

   FFoollddeerrCCoommpplleettiioonn
       The FFoollddeerrCCoommpplleettiioonn event is emitted when the local or remote contents
       for a folder changes. It contains the completion percentage for a given
       remote device and  is  emitted  once  per  currently  connected  remote
       device.

          {
              "id": 84,
              "globalID": 84,
              "type": "FolderCompletion",
              "time": "2015-04-17T14:14:27.043576583+09:00",
              "data": {
                  "completion": 100,
                  "device": "I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU",
                  "folder": "default",
                  "globalBytes": 17,
                  "globalItems": 4,
                  "needBytes": 0,
                  "needDeletes": 0,
                  "needItems": 0,
                  "sequence": 12
              }
          }

   FFoollddeerrEErrrroorrss
       The  FFoollddeerrEErrrroorrss event is emitted when a folder cannot be successfully
       synchronized. The event contains the ID of the affected  folder  and  a
       list of errors for files or directories therein. This list of errors is
       obsolete once the folder changes state to ssyynncciinngg -  if  errors  remain
       after  the  next  synchronization  attempt, a new FFoollddeerrEErrrroorrss event is
       emitted.

          {
              "id": 132,
              "type": "FolderErrors",
              "time": "2015-06-26T13:39:24.697401384+02:00",
              "data": {
                  "errors": [
                      {
                          "error": "open /Users/jb/src/github.com/syncthing/syncthing/test/s2/h2j/.syncthing.aslkjd.tmp: permission denied",
                          "path": "h2j/aslkjd"
                      }
                  ],
                  "folder": "default"
              }
          }

       New in version 0.11.12.


       SSEEEE AALLSSOO::
          The statechanged event.

   FFoollddeerrPPaauusseedd
       Generated when the configuration changes regarding the  âpausedâ  state
       of a folder.  Sent repeatedly for each changed folder.

          {
            "id": 93,
            "globalID": 93,
            "type": "FolderPaused",
            "time": "2021-06-07T23:45:03.414609034+02:00",
            "data": {
              "id": "abcde-fghij",
              "label": "My folder"
            }
          }

   FFoollddeerrRReejjeecctteedd ((DDEEPPRREECCAATTEEDD))
       Deprecated  since version v1.13.0: This event is still emitted for com‐
       patibility, but deprecated.  Use the replacement  pendingfolderschanged
       event instead.


       Emitted  when  a  device sends index information for a folder we do not
       have, or have but do not share with the device in question.

          {
              "id": 27,
              "globalID": 27,
              "type": "FolderRejected",
              "time": "2014-08-19T10:41:06.761751399+02:00",
              "data": {
                  "device": "EJHMPAQ-OGCVORE-ISB4IS3-SYYVJXF-TKJGLTU-66DIQPF-GJ5D2GX-GQ3OWQK",
                  "folder": "GXWxf-3zgnU",
                  "folderLabel": "My Pictures"
              }
          }

   FFoollddeerrRReessuummeedd
       Generated when the configuration changes regarding the  âpausedâ  state
       of a folder.  Sent repeatedly for each changed folder.

          {
            "id": 93,
            "globalID": 93,
            "type": "FolderResumed",
            "time": "2021-06-07T23:45:03.414609034+02:00",
            "data": {
              "id": "abcde-fghij",
              "label": "My folder"
            }
          }

   FFoollddeerrSSccaannPPrrooggrreessss
       Emitted  in  regular intervals (folder setting ProgressIntervalS, 2s by
       default) during scans giving the amount of bytes already scanned and to
       be  scanned  in  total , as well as the current scanning rates in bytes
       per second.

          {
             "data" : {
                "total" : 1,
                "rate" : 0,
                "current" : 0,
                "folder" : "bd7q3-zskm5"
             },
             "globalID" : 29,
             "type" : "FolderScanProgress",
             "time" : "2017-03-06T15:00:58.072004209+01:00",
             "id" : 29
          }

   FFoollddeerrSSuummmmaarryy
       The FolderSummary event is emitted when folder  contents  have  changed
       locally.  This  can  be  used to calculate the current local completion
       state.

          {
              "id": 16,
              "globalID": 16,
              "type": "FolderSummary",
              "time": "2015-04-17T14:12:20.460121585+09:00",
              "data": {
                  "folder": "default",
                  "summary": {
                      "globalBytes": 0,
                      "globalDeleted": 0,
                      "globalFiles": 0,
                      "ignorePatterns": false,
                      "inSyncBytes": 0,
                      "inSyncFiles": 0,
                      "invalid": "",
                      "localBytes": 0,
                      "localDeleted": 0,
                      "localFiles": 0,
                      "needBytes": 0,
                      "needFiles": 0,
                      "state": "idle",
                      "stateChanged": "2015-04-17T14:12:12.455224687+09:00",
                      "version": 0
                  }
              }
          }

   FFoollddeerrWWaattcchhSSttaatteeCChhaannggeedd
       The FFoollddeerrWWaattcchhSSttaatteeCChhaannggeedd event is emitted when  a  folderâs  watcher
       routine  encounters  a  new error, or when a previous error disappeared
       after retrying.  The event contains the ID of the affected  folder  and
       textual  error  messages describing the previous (ffrroomm) and the updated
       (ttoo) error conditions.  If there was no error in either of  these,  the
       respective field is omitted.

          {
            "id": 123,
            "type": "FolderWatchStateChanged",
            "time": "2022-03-14T12:34:56.890000000+01:00",
            "data": {
              "folder": "default",
              "from": "Something bad happened.",
              "to": "Something worse happened."
            }
          }

   IItteemmFFiinniisshheedd
       Generated  when Syncthing ends synchronizing a file to a newer version.
       A successful operation:

          {
              "id": 93,
              "globalID": 93,
              "type": "ItemFinished",
              "time": "2014-07-13T21:22:03.414609034+02:00",
              "data": {
                  "item": "test.txt",
                  "folder": "default",
                  "error": null,
                  "type": "file",
                  "action": "update"
              }
          }

       An unsuccessful operation:

          {
              "id": 44,
              "globalID": 44,
              "type": "ItemFinished",
              "time": "2015-05-27T11:21:05.711133004+02:00",
              "data": {
                  "action": "update",
                  "error": "open /Users/jb/src/github.com/syncthing/syncthing/test/s2/foo/.syncthing.hej.tmp: permission denied",
                  "folder": "default",
                  "item": "foo/hej",
                  "type": "file"
              }
          }

       The aaccttiioonn field is either uuppddaattee (contents  changed),  mmeettaaddaattaa  (file
       metadata changed but not contents), or ddeelleettee.

       New in version 0.11.10: The mmeettaaddaattaa action.


   IItteemmSSttaarrtteedd
       Generated  when  Syncthing  begins synchronizing a file to a newer ver‐
       sion.

          {
              "id": 93,
              "globalID": 93,
              "type": "ItemStarted",
              "time": "2014-07-13T21:22:03.414609034+02:00",
              "data": {
                  "item": "test.txt",
                  "folder": "default",
                  "type": "file",
                  "action": "update"
              }
          }

       The aaccttiioonn field is either uuppddaattee (contents  changed),  mmeettaaddaattaa  (file
       metadata changed but not contents), or ddeelleettee.

       New in version 0.11.10: The mmeettaaddaattaa action.


   LLiisstteennAAddddrreesssseessCChhaannggeedd
       This event is emitted when a listen address changes.

          {
             "type" : "ListenAddressesChanged",
             "id" : 70,
             "time" : "2017-03-06T15:01:24.88340663+01:00",
             "globalID" : 70,
             "data" : {
                "address" : {
                   "Fragment" : "",
                   "RawQuery" : "",
                   "Scheme" : "dynamic+https",
                   "Path" : "/endpoint",
                   "RawPath" : "",
                   "User" : null,
                   "ForceQuery" : false,
                   "Host" : "relays.syncthing.net",
                   "Opaque" : ""
                },
                "wan" : [
                   {
                      "ForceQuery" : false,
                      "User" : null,
                      "Host" : "31.15.66.212:443",
                      "Opaque" : "",
                      "Path" : "/",
                      "RawPath" : "",
                      "RawQuery" : "id=F4HSJVO-CP2C3IL-YLQYLSU-XTYODAG-PPU4LGV-PH3MU4N-G6K56DV-IPN47A&pingInterval=1m0s&networkTimeout=2m0s&sessionLimitBps=0&globalLimitBps=0&statusAddr=:22070&providedBy=",
                      "Scheme" : "relay",
                      "Fragment" : ""
                   }
                ],
                "lan" : [
                   {
                      "RawQuery" : "id=F4HSJVO-CP2C3IL-YLQYLSU-XTYODAG-PPU4LGV-PH3MU4N-G6K56DV-IPN47A&pingInterval=1m0s&networkTimeout=2m0s&sessionLimitBps=0&globalLimitBps=0&statusAddr=:22070&providedBy=",
                      "Scheme" : "relay",
                      "Fragment" : "",
                      "RawPath" : "",
                      "Path" : "/",
                      "Host" : "31.15.66.212:443",
                      "Opaque" : "",
                      "ForceQuery" : false,
                      "User" : null
                   }
                ]
             }
          }

   LLooccaallCChhaannggeeDDeetteecctteedd
       Generated  upon  scan whenever the local disk has discovered an updated
       file from the previous scan.  This does _n_o_t  include  events  that  are
       discovered  and  copied from other devices (remotechangedetected), only
       files that were changed on the local filesystem.

       NNOOTTEE::
          This event is not included in /rest/events-get  endpoint  without  a
          mask specified, but needs to be selected explicitly.

          {
            "id": 7,
            "globalID": 59,
            "time": "2016-09-26T22:07:10.7189141-04:00",
            "type": "LocalChangeDetected",
            "data": {
              "action": "deleted",
              "folderID": "vitwy-zjxqt",
              "label": "TestSync",
              "path": "C:\\Users\\Nate\\Sync\\testfolder\\test file.rtf",
              "type": "file"
            }
          }

   LLooccaallIInnddeexxUUppddaatteedd
       Generated when the local index information has changed, due to synchro‐
       nizing one or more items from the cluster or discovering local  changes
       during a scan.

          {
              "id": 59,
              "globalID": 59,
              "type": "LocalIndexUpdated",
              "time": "2014-07-17T13:27:28.051369434+02:00",
              "data": {
                  "folder": "default",
                  "items": 1000,
              }
          }

   LLooggiinnAAtttteemmpptt
       When  authentication  is  enabled for the GUI, this event is emitted on
       every login attempt. If either the username or password are  incorrect,
       ssuucccceessss  is  false and in any case the given username is returned.  The
       included remote address concerns the immediate connecting  host,  which
       may not be the origin of the request, but e.g. a reverse proxy.

          {
             "id" : 187,
             "time" : "2017-03-07T00:19:24.420386143+01:00",
             "data" : {
                "remoteAddress" : "127.0.0.1:55530",
                "username" : "somename",
                "success" : false
             },
             "type" : "LoginAttempt",
             "globalID" : 195
          }

   PPeennddiinnggDDeevviicceessCChhaannggeedd
       New in version 1.14.0.


       Emitted  when  pending  devices  were  added / updated (connection from
       unknown ID) or removed (device is ignored, dismissed or added).

          {
            "id": 87,
            "type": "PendingDevicesChanged",
            "time": "2020-12-22T22:24:37.578586718+01:00",
            "data": {
              "added": [
                {
                  "address": "127.0.0.1:51807",
                  "deviceID": "EJHMPAQ-OGCVORE-ISB4IS3-SYYVJXF-TKJGLTU-66DIQPF-GJ5D2GX-GQ3OWQK",
                  "name": "My dusty computer"
                }
              ],
              "removed": [
                {
                  "deviceID": "P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2"
                }
              ]
            }
          }

   PPeennddiinnggFFoollddeerrssCChhaannggeedd
       New in version 1.14.0.


       Emitted when pending folders were added  /  updated  (offered  by  some
       device,  but  not shared to them) or removed (folder ignored, dismissed
       or added or no longer offered from the remote device).  A removed entry
       without a ddeevviicceeIIDD attribute means that the folder is no longer pending
       for any device.

          {
            "id": 101,
            "type": "PendingFoldersChanged",
            "time": "2020-12-22T22:36:55.66744317+01:00",
            "data": {
              "added": [
                {
                  "deviceID": "EJHMPAQ-OGCVORE-ISB4IS3-SYYVJXF-TKJGLTU-66DIQPF-GJ5D2GX-GQ3OWQK",
                  "folderID": "GXWxf-3zgnU",
                  "folderLabel": "My Pictures"
                  "receiveEncrypted": "false"
                  "remoteEncrypted": "false"
                }
              ],
              "removed": [
                {
                  "deviceID": "P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2",
                  "folderID": "neyfh-sa2nu"
                },
                {
                  "folderID": "abcde-fghij"
                }
              ]
            }
          }

   RReemmootteeCChhaannggeeDDeetteecctteedd
       Generated upon scan whenever a file is locally updated due to a  remote
       change.   Files  that are updated locally produce a localchangedetected
       event.

       NNOOTTEE::
          This event is not included in /rest/events-get  endpoint  without  a
          mask specified, but needs to be selected explicitly.

          {
             "time" : "2017-03-06T23:58:21.844739891+01:00",
             "globalID" : 123,
             "data" : {
                "type" : "file",
                "action" : "deleted",
                "path" : "/media/ntfs_data/Dokumente/testfile",
                "label" : "Dokumente",
                "folderID" : "Dokumente",
                "modifiedBy" : "BPDFDTU"
             },
             "type" : "RemoteChangeDetected",
             "id" : 2
          }

   RReemmootteeDDoowwnnllooaaddPPrrooggrreessss
       This  event is emitted when a download-progress message is received. It
       returns a map ddaattaa of filenames with a count of downloaded blocks.  The
       files  in questions are currently being downloaded on the remote ddeevviiccee
       and belong to ffoollddeerr.

          {
             "time" : "2017-03-07T00:11:37.65838955+01:00",
             "globalID" : 170,
             "data" : {
                "state" : {
                   "tahr64-6.0.5.iso" : 1784
                },
                "device" : "F4HSJVO-CP2C3IL-YLQYLSU-XTYODAG-PPU4LGV-PH3MU4N-G6K56DV-IPN47A",
                "folder" : "Dokumente"
             },
             "type" : "RemoteDownloadProgress",
             "id" : 163
          }

   RReemmootteeIInnddeexxUUppddaatteedd
       Generated each time new index information is received from a device.

          {
              "id": 44,
              "globalID": 44,
              "type": "RemoteIndexUpdated",
              "time": "2014-07-13T21:04:35.394184435+02:00",
              "data": {
                  "device": "NFGKEKE-7Z6RTH7-I3PRZXS-DEJF3UJ-FRWJBFO-VBBTDND-4SGNGVZ-QUQHJAG",
                  "folder": "lightroom",
                  "items": 1000
              }
          }

   SSttaarrttiinngg
       Emitted exactly once, when Syncthing starts, before parsing  configura‐
       tion etc.

          {
              "id": 1,
              "globalID": 1,
              "type": "Starting",
              "time": "2014-07-17T13:13:32.044470055+02:00",
              "data": {
                  "home": "/home/jb/.config/syncthing"
              }
          }

   SSttaarrttuuppCCoommpplleettee
       Emitted  exactly once, when initialization is complete and Syncthing is
       ready to start exchanging data with other devices.

          {
              "id": 1,
              "globalID": 1,
              "type": "StartupComplete",
              "time": "2014-07-13T21:03:18.383239179+02:00",
              "data": null
          }

   SSttaatteeCChhaannggeedd
       Emitted when a folder changes state. Possible states  are  iiddllee,  ssccaann‐‐
       nniinngg,  ssyynncciinngg  and  eerrrroorr. The field dduurraattiioonn is the number of seconds
       the folder spent in state  ffrroomm.  In  the  example  below,  the  folder
       ddeeffaauulltt  was  in  state  ssccaannnniinngg for 0.198 seconds and is now in state
       iiddllee.

          {
              "id": 8,
              "globalID": 8,
              "type": "StateChanged",
              "time": "2014-07-17T13:14:28.697493016+02:00",
              "data": {
                  "folder": "default",
                  "from": "scanning",
                  "duration": 0.19782869900000002,
                  "to": "idle"
              }
          }

AAUUTTHHOORR
       The Syncthing Authors

CCOOPPYYRRIIGGHHTT
       2014-2019, The Syncthing Authors



v1.19.2                          Apr 05, 2022           SYNCTHING-EVENT-API(7)
