Docs/Developers
API reference
Send instrument readings to SanSignal and build integrations around your monitoring data. Explore request schemas, responses, and copyable examples for every published endpoint.
Ingestion API
Push timestamped readings into a configured API connection. Authenticate with the connection's ingestion key and use the source and variable identifiers configured for that connection.
View ingestion endpoints ↓Developer API
Use scoped API keys to work with sites, instruments, ingested and calculated variables, calibration constants, parsers, groups, observations, dashboards, and widgets.
Read the authentication guide →Ingestion keys and Developer API keys serve different purposes and are not interchangeable. Organization administration, member management, source connections, and alert configuration are managed in the dashboard; they are not currently exposed through the Developer API.
Before your first request
- Ask your organization administrator for access and the API base URL for your deployment.
- Create the appropriate key in the dashboard with only the scopes and project access your integration needs.
- Choose an endpoint below and review its required headers, parameters, request body, and responses.
- Replace example identifiers and the example server address before running copied code. The interactive request panel sends requests from your browser and needs a reachable API deployment with the appropriate CORS configuration.
Use the machine-readable OpenAPI document with your preferred API tools.
Browse endpoints
54 operations, generated from the SanSignal OpenAPI specification.
API metadata2
Dashboards6
/dev-api/v1/p/{project_id}/dashboardsList dashboardsPOST/dev-api/v1/p/{project_id}/dashboardsCreate dashboardsGET/dev-api/v1/p/{project_id}/dashboards/{dashboard_id}Read dashboardsPATCH/dev-api/v1/p/{project_id}/dashboards/{dashboard_id}Update dashboardsPOST/dev-api/v1/p/{project_id}/dashboards/{dashboard_id}/archiveArchive dashboardsPOST/dev-api/v1/p/{project_id}/dashboards/{dashboard_id}/restoreRestore dashboardsDashboard widgets3
Instruments6
/dev-api/v1/p/{project_id}/instrumentsList instrumentsPOST/dev-api/v1/p/{project_id}/instrumentsCreate instrumentsGET/dev-api/v1/p/{project_id}/instruments/{instrument_id}Read instrumentsPATCH/dev-api/v1/p/{project_id}/instruments/{instrument_id}Update instrumentsPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/archiveArchive instrumentsPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/restoreRestore instrumentsSites1
Parsers6
/dev-api/v1/p/{project_id}/parsersList parsersPOST/dev-api/v1/p/{project_id}/parsersCreate parsersGET/dev-api/v1/p/{project_id}/parsers/{parser_id}Read parsersPATCH/dev-api/v1/p/{project_id}/parsers/{parser_id}Update parsersPOST/dev-api/v1/p/{project_id}/parsers/{parser_id}/archiveArchive parsersPOST/dev-api/v1/p/{project_id}/parsers/{parser_id}/restoreRestore parsersVariables1
Ingested variables6
/dev-api/v1/p/{project_id}/instruments/{instrument_id}/ingested-variablesList ingested variablesPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/ingested-variablesCreate ingested variablesGET/dev-api/v1/p/{project_id}/instruments/{instrument_id}/ingested-variables/{variable_id}Read ingested variablesPATCH/dev-api/v1/p/{project_id}/instruments/{instrument_id}/ingested-variables/{variable_id}Update ingested variablesPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/ingested-variables/{variable_id}/archiveArchive ingested variablesPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/ingested-variables/{variable_id}/restoreRestore ingested variablesCalculated variables7
/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calculated-variablesList calculated variablesPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calculated-variablesCreate calculated variablesGET/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calculated-variables/{variable_id}Read calculated variablesPATCH/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calculated-variables/{variable_id}Update calculated variablesPUT/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calculated-variables/{variable_id}/computationComputation calculated variablesPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calculated-variables/{variable_id}/archiveArchive calculated variablesPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calculated-variables/{variable_id}/restoreRestore calculated variablesCalibration constants6
/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calibration-constantsList calibration constantsPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calibration-constantsCreate calibration constantsGET/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calibration-constants/{constant_id}Read calibration constantsPATCH/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calibration-constants/{constant_id}Update calibration constantsPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calibration-constants/{constant_id}/archiveArchive calibration constantsPOST/dev-api/v1/p/{project_id}/instruments/{instrument_id}/calibration-constants/{constant_id}/restoreRestore calibration constantsInstrument groups5
/dev-api/v1/p/{project_id}/instrument-groupsList instrument groupsPOST/dev-api/v1/p/{project_id}/instrument-groupsCreate instrument groupsGET/dev-api/v1/p/{project_id}/instrument-groups/{group_id}Read instrument groupsPATCH/dev-api/v1/p/{project_id}/instrument-groups/{group_id}Update instrument groupsDELETE/dev-api/v1/p/{project_id}/instrument-groups/{group_id}Delete instrument groups