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



NNAAMMEE
       syncthing-event-api - Event API

DDEESSCCRRIIPPTTIIOONN
       Syncthing  provides a simple long polling interface for exposing events
       from  the  core  utility  towards  a  GUI.  To  receive   events,   see
       /rest/events-get.

EEVVEENNTT SSTTRRUUCCTTUURREE
       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  iidd,  gglloobbaallIIDD,  ttiimmee,  ttyyppee  and ddaattaa are always
       present, though ddaattaa may be nnuullll.

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

       gglloobbaallIIDD
              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.

       ttiimmee   The time the event was generated.

       ttyyppee   Indicates  the type of (i.e. reason for) the event and is one of
              the event types below.

       ddaattaa   An object  containing  optional  extra  information;  the  exact
              structure is determined by the event type.

EEVVEENNTT TTYYPPEESS
   CCoonnffiiggSSaavveedd
       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": {"..."}
              }
          }

   DDeevviicceeCCoonnnneecctteedd
       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)"
              }
          }

   DDeevviicceeDDiissccoonnnneecctteedd
       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"
              }
          }

       NNOOTTEE::
          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.

   DDeevviicceeDDiissccoovveerreedd
       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"
              }
          }

   DDeevviicceePPaauusseedd
       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"
              }
          }

   DDeevviicceeRReejjeecctteedd ((DDEEPPRREECCAATTEEDD))
       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"
              }
          }

   DDeevviicceeRReessuummeedd
       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"
              }
          }

   DDoowwnnllooaaddPPrrooggrreessss
       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
                      }
                  }
              }
          }

       · ttoottaall - total number of blocks in the file

       · ppuulllliinngg - number of blocks currently being downloaded

       · ccooppiieeddFFrroommOOrriiggiinn - number of blocks copied from the file we are about
         to replace

       · rreeuusseedd - number of blocks reused from a previous temporary file

       · ccooppiieeddFFrroommEEllsseewwhheerree  -  number  of  blocks copied from other files or
         potentially other folders

       · ppuulllleedd - number of blocks actually downloaded so far

       · bbyytteessTToottaall - approximate total file size

       · bbyytteessDDoonnee - 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.

   FFaaiilluurree
       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 ddaattaa 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"
          }

   FFoollddeerrCCoommpplleettiioonn
       The FFoollddeerrCCoommpplleettiioonn 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
              }
          }

   FFoollddeerrEErrrroorrss
       The  FFoollddeerrEErrrroorrss 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 ssyynncciinngg -  if  errors  remain
       after  the  next  synchronization  attempt, a new FFoollddeerrEErrrroorrss 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.


       SSEEEE AALLSSOO::
          The statechanged event.

   FFoollddeerrPPaauusseedd
       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"
            }
          }

   FFoollddeerrRReejjeecctteedd ((DDEEPPRREECCAATTEEDD))
       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"
              }
          }

   FFoollddeerrRReessuummeedd
       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"
            }
          }

   FFoollddeerrSSccaannPPrrooggrreessss
       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
          }

   FFoollddeerrSSuummmmaarryy
       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
                  }
              }
          }

   FFoollddeerrWWaattcchhSSttaatteeCChhaannggeedd
       The FFoollddeerrWWaattcchhSSttaatteeCChhaannggeedd 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 (ffrroomm) and the updated
       (ttoo) 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."
            }
          }

   IItteemmFFiinniisshheedd
       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 aaccttiioonn field is either uuppddaattee (contents  changed),  mmeettaaddaattaa  (file
       metadata changed but not contents), or ddeelleettee.

       New in version 0.11.10: The mmeettaaddaattaa action.


   IItteemmSSttaarrtteedd
       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 aaccttiioonn field is either uuppddaattee (contents  changed),  mmeettaaddaattaa  (file
       metadata changed but not contents), or ddeelleettee.

       New in version 0.11.10: The mmeettaaddaattaa action.


   LLiisstteennAAddddrreesssseessCChhaannggeedd
       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
                   }
                ]
             }
          }

   LLooccaallCChhaannggeeDDeetteecctteedd
       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.

       NNOOTTEE::
          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"
            }
          }

   LLooccaallIInnddeexxUUppddaatteedd
       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,
              }
          }

   LLooggiinnAAtttteemmpptt
       When  authentication  is  enabled for the GUI, this event is emitted on
       every login attempt. If either the username or password are  incorrect,
       ssuucccceessss  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
          }

   PPeennddiinnggDDeevviicceessCChhaannggeedd
       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"
                }
              ]
            }
          }

   PPeennddiinnggFFoollddeerrssCChhaannggeedd
       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 ddeevviicceeIIDD 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"
                }
              ]
            }
          }

   RReemmootteeCChhaannggeeDDeetteecctteedd
       Generated upon scan whenever a file is locally updated due to a  remote
       change.   Files  that are updated locally produce a localchangedetected
       event.

       NNOOTTEE::
          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
          }

   RReemmootteeDDoowwnnllooaaddPPrrooggrreessss
       This  event is emitted when a download-progress message is received. It
       returns a map ddaattaa of filenames with a count of downloaded blocks.  The
       files  in questions are currently being downloaded on the remote ddeevviiccee
       and belong to ffoollddeerr.

          {
             "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
          }

   RReemmootteeIInnddeexxUUppddaatteedd
       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
              }
          }

   SSttaarrttiinngg
       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"
              }
          }

   SSttaarrttuuppCCoommpplleettee
       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
          }

   SSttaatteeCChhaannggeedd
       Emitted when a folder changes state. Possible states  are  iiddllee,  ssccaann‐‐
       nniinngg,  ssyynncciinngg  and  eerrrroorr. The field dduurraattiioonn is the number of seconds
       the folder spent in state  ffrroomm.  In  the  example  below,  the  folder
       ddeeffaauulltt  was  in  state  ssccaannnniinngg for 0.198 seconds and is now in state
       iiddllee.

          {
              "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"
              }
          }

AAUUTTHHOORR
       The Syncthing Authors

CCOOPPYYRRIIGGHHTT
       2014-2019, The Syncthing Authors



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