API

Watcher API

This API allows to query the state of the watchers.

Get all Watchers

This operation lets you get all the configured watchers.

curl http://drydock:3000/api/v1/watchers

{
   "data": [
      {
      "id":"docker.local",
      "type":"docker",
      "name":"local",
      "configuration":{
         "socket":"/var/run/docker.sock",
         "port":2375,
         "cron":"0 */6 * * *",
         "watchbydefault":true
      },
      "metadata": {
         "lastRunAt": "2026-03-20T21:44:11.782Z",
         "nextRunAt": "2026-03-20T22:00:00.000Z"
      }
      }
   ],
   "total": 1,
   "limit": 0,
   "offset": 0,
   "hasMore": false
}

Response fields

FieldTypeDescription
idstringFully qualified watcher ID (for example docker.local)
typestringWatcher provider type
namestringWatcher name
configurationobjectWatcher configuration (masked/safe for API output)
agentstring | undefinedAgent name when watcher is agent-scoped
metadata.lastRunAtstring | undefinedISO-8601 timestamp of the most recent completed watch cycle
metadata.nextRunAtstring | undefinedISO-8601 timestamp of the next scheduled update check

metadata.lastRunAt is populated after at least one watch run has completed. metadata.nextRunAt reflects the next effective update-check time after applying watcher scheduling rules. When jitter is enabled, actual execution may drift within the configured jitter window.

Get a Watcher by id

This operation lets you get a specific Watcher.

curl http://drydock:3000/api/v1/watchers/docker/local

{
   "id":"docker.local",
   "type":"docker",
   "name":"local",
   "configuration":{
      "socket":"/var/run/docker.sock",
      "port":2375,
      "cron":"0 */6 * * *",
      "watchbydefault":true
   },
   "metadata":{
      "lastRunAt":"2026-03-20T21:44:11.782Z",
      "nextRunAt":"2026-03-20T22:00:00.000Z"
   }
}

Agent-scoped lookup

To fetch a watcher registered on a specific agent, append the agent name:

curl http://drydock:3000/api/v1/watchers/docker/local/agent1