# Server API

Canonical: https://docs.shumoku.dev/en/server/next/api
Language: en
Server documentation version: next
Product version: 0.1.6-beta.4
Channel: development

This documentation describes the Server currently in development.

Shumoku Server API · 0.1.6-beta.4

# Server API

109 operations generated from the OpenAPI contract.

## Dashboards

[**`DELETE /api/dashboards/{id}`** Delete a dashboard](https://docs.shumoku.dev/en/server/next/api/deleteDashboardsById) [**`DELETE /api/dashboards/{id}/share`** Disable dashboard sharing](https://docs.shumoku.dev/en/server/next/api/deleteDashboardsByIdShare) [**`GET /api/dashboards`** List dashboards](https://docs.shumoku.dev/en/server/next/api/getDashboards) [**`GET /api/dashboards/{id}`** Get a dashboard](https://docs.shumoku.dev/en/server/next/api/getDashboardsById) [**`POST /api/dashboards`** Create a dashboard](https://docs.shumoku.dev/en/server/next/api/postDashboards) [**`POST /api/dashboards/{id}/share`** Enable dashboard sharing](https://docs.shumoku.dev/en/server/next/api/postDashboardsByIdShare) [**`PUT /api/dashboards/{id}`** Update a dashboard](https://docs.shumoku.dev/en/server/next/api/putDashboardsById)

## Data Sources

[**`DELETE /api/datasources/{id}`** Delete a data source](https://docs.shumoku.dev/en/server/next/api/deleteDatasourcesById) [**`GET /api/datasources`** List data sources](https://docs.shumoku.dev/en/server/next/api/getDatasources) [**`GET /api/datasources/by-capability/{capability}`** List data sources by capability](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByCapabilityByCapability) [**`GET /api/datasources/{id}`** Get a data source](https://docs.shumoku.dev/en/server/next/api/getDatasourcesById) [**`GET /api/datasources/{id}/alerts`** Get alerts from a data source](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdAlerts) [**`GET /api/datasources/{id}/config-options/{key}`** Get dynamic configuration options](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdConfigOptionsByKey) [**`GET /api/datasources/{id}/connection-info`** Get derived connection information](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdConnectionInfo) [**`GET /api/datasources/{id}/filter-options`** Get legacy topology filter options](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdFilterOptions) [**`GET /api/datasources/{id}/hosts`** List hosts from a data source](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdHosts) [**`GET /api/datasources/{id}/hosts/{hostId}/items`** List metric items for a host](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdHostsByHostIdItems) [**`GET /api/datasources/{id}/hosts/{hostId}/metrics`** Discover metrics for a host](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdHostsByHostIdMetrics) [**`GET /api/datasources/{id}/hosts/{hostId}/neighbors`** List interface neighbors for a host](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdHostsByHostIdNeighbors) [**`GET /api/datasources/{id}/topologies`** List attached topologies](https://docs.shumoku.dev/en/server/next/api/getDatasourcesByIdTopologies) [**`GET /api/datasources/types`** List available data source plugin types](https://docs.shumoku.dev/en/server/next/api/getDatasourcesTypes) [**`POST /api/datasources`** Create a data source](https://docs.shumoku.dev/en/server/next/api/postDatasources) [**`POST /api/datasources/{id}/scan`** Run an ad-hoc topology scan](https://docs.shumoku.dev/en/server/next/api/postDatasourcesByIdScan) [**`POST /api/datasources/{id}/test`** Test a data source connection](https://docs.shumoku.dev/en/server/next/api/postDatasourcesByIdTest) [**`PUT /api/datasources/{id}`** Update a data source](https://docs.shumoku.dev/en/server/next/api/putDatasourcesById)

## Plugins

[**`DELETE /api/plugins/{id}`** Remove an external plugin](https://docs.shumoku.dev/en/server/next/api/deletePluginsById) [**`GET /api/plugins`** List installed plugins](https://docs.shumoku.dev/en/server/next/api/getPlugins) [**`GET /api/plugins/{id}/manifest`** Get an external plugin manifest](https://docs.shumoku.dev/en/server/next/api/getPluginsByIdManifest) [**`PATCH /api/plugins/{id}`** Enable or disable an external plugin](https://docs.shumoku.dev/en/server/next/api/patchPluginsById) [**`POST /api/plugins`** Install an external plugin](https://docs.shumoku.dev/en/server/next/api/postPlugins) [**`POST /api/plugins/reload`** Reload external plugins](https://docs.shumoku.dev/en/server/next/api/postPluginsReload) [**`POST /api/plugins/upload`** Install an external plugin from a ZIP archive](https://docs.shumoku.dev/en/server/next/api/postPluginsUpload)

## Settings

[**`DELETE /api/settings/{key}`** Delete a setting](https://docs.shumoku.dev/en/server/next/api/deleteSettingsByKey) [**`GET /api/settings`** List settings](https://docs.shumoku.dev/en/server/next/api/getSettings) [**`GET /api/settings/{key}`** Get a setting](https://docs.shumoku.dev/en/server/next/api/getSettingsByKey) [**`PUT /api/settings`** Update settings](https://docs.shumoku.dev/en/server/next/api/putSettings) [**`PUT /api/settings/{key}`** Update a setting](https://docs.shumoku.dev/en/server/next/api/putSettingsByKey)

## Topologies

[**`DELETE /api/topologies/{id}`** Delete a topology](https://docs.shumoku.dev/en/server/next/api/deleteTopologiesById) [**`GET /api/topologies`** List topologies](https://docs.shumoku.dev/en/server/next/api/getTopologies) [**`GET /api/topologies/{id}`** Get a topology](https://docs.shumoku.dev/en/server/next/api/getTopologiesById) [**`GET /api/topologies/{id}/composition`** Get topology composition policy](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdComposition) [**`GET /api/topologies/{id}/context`** Get simplified topology context](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdContext) [**`GET /api/topologies/{id}/display-settings`** Get topology display settings](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdDisplaySettings) [**`GET /api/topologies/{id}/export`** Download a rendered topology](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdExport) [**`GET /api/topologies/{id}/graph`** Get the resolved topology graph](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdGraph) [**`GET /api/topologies/{id}/parsed`** Get parsed topology and layout](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdParsed) [**`GET /api/topologies/{id}/render`** Render a topology for embedding](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdRender) [**`GET /api/topologies/{id}/resolved`** Get the resolved topology graph](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdResolved) [**`GET /api/topologies/{id}/view`** Get graph and server-baked layout](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdView) [**`POST /api/topologies`** Create a topology](https://docs.shumoku.dev/en/server/next/api/postTopologies) [**`PUT /api/topologies/{id}`** Update a topology](https://docs.shumoku.dev/en/server/next/api/putTopologiesById) [**`PUT /api/topologies/{id}/composition`** Update topology composition policy](https://docs.shumoku.dev/en/server/next/api/putTopologiesByIdComposition) [**`PUT /api/topologies/{id}/display-settings`** Update topology display settings](https://docs.shumoku.dev/en/server/next/api/putTopologiesByIdDisplaySettings)

## Discovery Policy

[**`DELETE /api/topologies/{id}/discovery-policy/exclusions`** Remove a node identity exclusion](https://docs.shumoku.dev/en/server/next/api/deleteTopologiesByIdDiscoveryPolicyExclusions) [**`GET /api/topologies/{id}/discovery-policy`** Get effective per-node discovery policy](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdDiscoveryPolicy) [**`PATCH /api/topologies/{id}/discovery-policy`** Update topology or node discovery policy](https://docs.shumoku.dev/en/server/next/api/patchTopologiesByIdDiscoveryPolicy) [**`POST /api/topologies/{id}/discovery-policy/exclusions`** Exclude a node identity from discovery](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdDiscoveryPolicyExclusions)

## Topology Mappings

[**`DELETE /api/topologies/{id}/mapping/links`** Delete link mappings](https://docs.shumoku.dev/en/server/next/api/deleteTopologiesByIdMappingLinks) [**`DELETE /api/topologies/{id}/mapping/nodes`** Delete node mappings](https://docs.shumoku.dev/en/server/next/api/deleteTopologiesByIdMappingNodes) [**`DELETE /api/topologies/{id}/mapping/orphans/{entityId}`** Discard an orphaned mapping](https://docs.shumoku.dev/en/server/next/api/deleteTopologiesByIdMappingOrphansByEntityId) [**`GET /api/topologies/{id}/mapping`** Get a topology metrics mapping](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdMapping) [**`GET /api/topologies/{id}/mapping/orphans`** List orphaned metrics mappings](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdMappingOrphans) [**`GET /api/topologies/{id}/mapping/sources`** List source-qualified metrics mappings](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdMappingSources) [**`PATCH /api/topologies/{id}/mapping/links/{linkId}`** Replace one link mapping](https://docs.shumoku.dev/en/server/next/api/patchTopologiesByIdMappingLinksByLinkId) [**`PATCH /api/topologies/{id}/mapping/nodes/{nodeId}`** Replace one node mapping](https://docs.shumoku.dev/en/server/next/api/patchTopologiesByIdMappingNodesByNodeId) [**`POST /api/topologies/{id}/mapping/auto-map-links`** Automatically map topology links](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdMappingAutoMapLinks) [**`POST /api/topologies/{id}/mapping/orphans/{entityId}/reassign`** Reassign an orphaned mapping](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdMappingOrphansByEntityIdReassign) [**`POST /api/topologies/{id}/registry/reset`** Reset the topology entity registry and mappings](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdRegistryReset) [**`PUT /api/topologies/{id}/mapping`** Replace a topology metrics mapping](https://docs.shumoku.dev/en/server/next/api/putTopologiesByIdMapping)

## Topology Sharing

[**`DELETE /api/topologies/{id}/share`** Disable topology sharing](https://docs.shumoku.dev/en/server/next/api/deleteTopologiesByIdShare) [**`POST /api/topologies/{id}/share`** Enable topology sharing](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdShare)

## Topology Sources

[**`DELETE /api/topologies/{topologyId}/sources/{sourceId}`** Detach a topology source](https://docs.shumoku.dev/en/server/next/api/deleteTopologiesByTopologyIdSourcesBySourceId) [**`GET /api/topologies/{topologyId}/sources`** List attached topology data sources](https://docs.shumoku.dev/en/server/next/api/getTopologiesByTopologyIdSources) [**`POST /api/topologies/{topologyId}/sources`** Attach a data source to a topology](https://docs.shumoku.dev/en/server/next/api/postTopologiesByTopologyIdSources) [**`POST /api/topologies/{topologyId}/sources/{sourceId}/clear`** Clear a source contribution without detaching it](https://docs.shumoku.dev/en/server/next/api/postTopologiesByTopologyIdSourcesBySourceIdClear) [**`POST /api/topologies/{topologyId}/sources/{sourceId}/probe`** Deep-read selected source targets](https://docs.shumoku.dev/en/server/next/api/postTopologiesByTopologyIdSourcesBySourceIdProbe) [**`POST /api/topologies/{topologyId}/sources/{sourceId}/sync`** Synchronize one attached topology source](https://docs.shumoku.dev/en/server/next/api/postTopologiesByTopologyIdSourcesBySourceIdSync) [**`PUT /api/topologies/{topologyId}/sources`** Replace all attached sources](https://docs.shumoku.dev/en/server/next/api/putTopologiesByTopologyIdSources) [**`PUT /api/topologies/{topologyId}/sources/{sourceId}`** Update a topology source attachment](https://docs.shumoku.dev/en/server/next/api/putTopologiesByTopologyIdSourcesBySourceId)

## Admin

[**`GET /api/admin/status`** Inspect server runtime status](https://docs.shumoku.dev/en/server/next/api/getAdminStatus)

## Authentication

[**`GET /api/auth/status`** Get authentication status](https://docs.shumoku.dev/en/server/next/api/getAuthStatus) [**`POST /api/auth/change-password`** Change the administrator password](https://docs.shumoku.dev/en/server/next/api/postAuthChangePassword) [**`POST /api/auth/login`** Create an administrator session](https://docs.shumoku.dev/en/server/next/api/postAuthLogin) [**`POST /api/auth/logout`** End the current administrator session](https://docs.shumoku.dev/en/server/next/api/postAuthLogout) [**`POST /api/auth/setup`** Configure the initial administrator password](https://docs.shumoku.dev/en/server/next/api/postAuthSetup)

## System

[**`GET /api/health`** Check server liveness](https://docs.shumoku.dev/en/server/next/api/getHealth) [**`GET /api/system`** Get build and update information](https://docs.shumoku.dev/en/server/next/api/getSystem)

## Public Shares

[**`GET /api/share/dashboards/{token}`** Get a shared dashboard](https://docs.shumoku.dev/en/server/next/api/getShareDashboardsByToken) [**`GET /api/share/dashboards/{token}/datasources/{id}/alerts`** Get alerts for a shared dashboard widget](https://docs.shumoku.dev/en/server/next/api/getShareDashboardsByTokenDatasourcesByIdAlerts) [**`GET /api/share/dashboards/{token}/topologies/{id}`** Get shared dashboard topology metadata](https://docs.shumoku.dev/en/server/next/api/getShareDashboardsByTokenTopologiesById) [**`GET /api/share/dashboards/{token}/topologies/{id}/context`** Get shared dashboard topology context](https://docs.shumoku.dev/en/server/next/api/getShareDashboardsByTokenTopologiesByIdContext) [**`GET /api/share/dashboards/{token}/topologies/{id}/graph`** Get a shared dashboard topology graph](https://docs.shumoku.dev/en/server/next/api/getShareDashboardsByTokenTopologiesByIdGraph) [**`GET /api/share/dashboards/{token}/topologies/{id}/metrics/stream`** Stream shared dashboard topology metrics](https://docs.shumoku.dev/en/server/next/api/getShareDashboardsByTokenTopologiesByIdMetricsStream) [**`GET /api/share/topologies/{token}`** Get shared topology context](https://docs.shumoku.dev/en/server/next/api/getShareTopologiesByToken) [**`GET /api/share/topologies/{token}/graph`** Get shared topology graph](https://docs.shumoku.dev/en/server/next/api/getShareTopologiesByTokenGraph) [**`GET /api/share/topologies/{token}/metrics/stream`** Stream shared topology metrics](https://docs.shumoku.dev/en/server/next/api/getShareTopologiesByTokenMetricsStream) [**`GET /api/share/topologies/{token}/render`** Render a shared topology](https://docs.shumoku.dev/en/server/next/api/getShareTopologiesByTokenRender) [**`GET /api/share/topologies/{token}/view`** Get shared topology graph and layout](https://docs.shumoku.dev/en/server/next/api/getShareTopologiesByTokenView)

## Topology Observations

[**`GET /api/topologies/{id}/observations`** List recent topology observations](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdObservations) [**`GET /api/topologies/{id}/observations/{obsId}`** Get a topology observation](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdObservationsByObsId) [**`GET /api/topologies/{topologyId}/sources/{sourceId}/latest-snapshot`** Get the latest snapshot from a topology source](https://docs.shumoku.dev/en/server/next/api/getTopologiesByTopologyIdSourcesBySourceIdLatestSnapshot) [**`POST /api/topologies/{topologyId}/sources/{sourceId}/observation`** Record a pushed topology observation](https://docs.shumoku.dev/en/server/next/api/postTopologiesByTopologyIdSourcesBySourceIdObservation)

## Topology Sync

[**`GET /api/topologies/{id}/sync-job`** Get the current or last sync job](https://docs.shumoku.dev/en/server/next/api/getTopologiesByIdSyncJob) [**`POST /api/topologies/{id}/rebuild`** Clear pull-source observations and rebuild](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdRebuild) [**`POST /api/topologies/{id}/sync-from-source`** Synchronize all topology sources](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdSyncFromSource) [**`POST /api/topologies/{id}/sync-job/cancel`** Cancel the current sync job](https://docs.shumoku.dev/en/server/next/api/postTopologiesByIdSyncJobCancel)

## Webhooks

[**`GET /api/webhooks/health`** Check webhook ingress health](https://docs.shumoku.dev/en/server/next/api/getWebhooksHealth) [**`POST /api/webhooks/{type}/{id}`** Receive a data source webhook](https://docs.shumoku.dev/en/server/next/api/postWebhooksByTypeById)

## Development

[**`POST /api/datasources/{id}/_native`** Call a plugin native API method](https://docs.shumoku.dev/en/server/next/api/postDatasourcesByIdNative)
