Skip to content

MyCirrus API - Instrument info, Data and Webhooks (1.0.1)

API documentation for the MyCirrus API

Download OpenAPI description
Languages
Servers
Mock server
https://docs.mycirrus.cloud/_mock/apis/mycirrus-main
Production server
https://api.mycirrus.cloud/v1

Instrument info and control

Endpoints for finding and controlling instruments

Operations

Noise data

Endpoints for retrieving historic noise data

Operations

Environmental data

Endpoints for retrieving historic environmental data

Operations

Event data

Endpoints for retrieving historic event data

Operations

System health data

Endpoints for retrieving historic system health data

Operations

Request

Get calibration results for the selected instruments and time range.

The maximum date range per request is 1 year. If you request a longer range, the server will respond with an error.

Requires an API key with the data.system:read scope.

Security
apikey
Query
instrumentsArray of stringsrequired

Serial numbers of selected instruments

Example: instruments=QT123456&instruments=QT234567
startstring(date-time)required

Start date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: start=2023-01-01T00:00:00Z
endstring(date-time)required

End date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: end=2023-01-31T00:00:00Z
curl -i -X GET \
  'https://docs.mycirrus.cloud/_mock/apis/mycirrus-main/data/calibrations?instruments=QT123456%2CQT234567&start=2023-01-01T00%3A00%3A00Z&end=2023-01-31T00%3A00%3A00Z' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
timestring(date-time)
statusstring
instrumentstring
levelnumber
offsetnumber
]
Response
application/json
[ { "Time": "2022-06-07T14:45:22Z", "Status": "Success", "Instrument": "QT123456", "Level": 93.7, "Offset": 0.12 } ]

Request

Get calibration log records for the selected instruments and time range.

The maximum date range per request is 1 year. If you request a longer range, the server will respond with an error.

Requires an API key with the data.system:read scope.

Security
apikey
Query
instrumentsArray of stringsrequired

Serial numbers of selected instruments

Example: instruments=QT123456&instruments=QT234567
startstring(date-time)required

Start date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: start=2023-01-01T00:00:00Z
endstring(date-time)required

End date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: end=2023-01-31T00:00:00Z
curl -i -X GET \
  'https://docs.mycirrus.cloud/_mock/apis/mycirrus-main/data/calibrations/log?instruments=QT123456%2CQT234567&start=2023-01-01T00%3A00%3A00Z&end=2023-01-31T00%3A00%3A00Z' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
timestring(date-time)
userstring
messagestring
instrumentstring
]
Response
application/json
[ { "time": "2022-06-07T11:18:42.814Z", "user": "Quantum Demo", "message": "Installed and working" } ]

Request

Get System Integrity Check (SIC) results for the selected instruments and time range.

The maximum date range per request is 1 year. If you request a longer range, the server will respond with an error.

Requires an API key with the data.system:read scope.

Security
apikey
Query
instrumentsArray of stringsrequired

Serial numbers of selected instruments

Example: instruments=QT123456&instruments=QT234567
startstring(date-time)required

Start date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: start=2023-01-01T00:00:00Z
endstring(date-time)required

End date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: end=2023-01-31T00:00:00Z
curl -i -X GET \
  'https://docs.mycirrus.cloud/_mock/apis/mycirrus-main/data/sic?instruments=QT123456%2CQT234567&start=2023-01-01T00%3A00%3A00Z&end=2023-01-31T00%3A00%3A00Z' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
timestring(date-time)
instrumentstring
statusstring
_500Hznumber
_8KHznumber
_1KHznumber
]
Response
application/json
[ { "time": "2023-06-14T14:00:00.2074974Z", "instrument": "QT800002", "status": "Error", "_500Hz": 55.3829, "_8KHz": 35.7019, "_1KHz": 48.5379 } ]

Request

Get system monitor stats for the selected instruments and time range.

Only supported by Quantum noise monitors.

The maximum date range per request is 31 days. If you request a longer range, the server will respond with an error.

Requires an API key with the data.system:read scope.

Security
apikey
Query
instrumentsArray of stringsrequired

Serial numbers of selected instruments

Example: instruments=QT123456&instruments=QT234567
startstring(date-time)required

Start date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: start=2023-01-01T00:00:00Z
endstring(date-time)required

End date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: end=2023-01-31T00:00:00Z
curl -i -X GET \
  'https://docs.mycirrus.cloud/_mock/apis/mycirrus-main/data/monitor/stats?instruments=QT123456%2CQT234567&start=2023-01-01T00%3A00%3A00Z&end=2023-01-31T00%3A00%3A00Z' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
timestring(date-time)

Time of the sample

instrumentstring

Instrument serial number

samplePeriodinteger

Sample period in seconds

cpunumber

CPU usage as a percentage

memnumber

Memory usage in megabytes

cachenumber

Memory cache usage in megabytes

tempnumber

SoC Temperature in degrees Celsius

voltagenumber

Input voltage in volts

disknumber

Disk usage in megabytes

netRxnumber

Network usage (receive), total in kilobits

netTxnumber

Network usage (transmit), total in kilobits

mTotnumber

Total memory size in megabytes

dTotnumber

Total disk space in megabytes

lteRsrpnumber or null

LTE signal strength

lteRsrqnumber or null

LTE signal quality

lteSinrnumber or null

LTE signal to noise ratio

lteSignalnumber or null

LTE signal quality

pingnumber

Ping time in milliseconds

networknumber

Network usage, kilobits per second

memoryPercentnumber

Memory usage as a percentage

diskPercentnumber

Disk usage as a percentage

]
Response
application/json
[ { "time": "2023-06-15T23:01:00Z", "samplePeriod": 60, "cpu": 13.9, "mem": 285.8, "cache": 531.4, "temp": 36, "voltage": 11.671, "disk": 56.7, "netRx": 492, "netTx": 119, "mTot": 3793, "dTot": 24892, "lteRsrp": null, "lteRsrq": null, "lteSinr": null, "lteSignal": null, "ping": 0, "network": 10.183333333333334, "memoryPercent": 7.534932770893751, "diskPercent": 0.22778402699662545 } ]

Request

Get system monitor events for the selected instruments and time range.

Only supported by Quantum noise monitors.

The maximum date range per request is 31 days. If you request a longer range, the server will respond with an error.

Requires an API key with the data.system:read scope.

Security
apikey
Query
instrumentsArray of stringsrequired

Serial numbers of selected instruments

Example: instruments=QT123456&instruments=QT234567
startstring(date-time)required

Start date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: start=2023-01-01T00:00:00Z
endstring(date-time)required

End date and time for loading a range of data. Must be in UTC.

This uses the ISO8601 format. For example, 2023-01-01T00:00:00Z is 1st January 2023 at midnight UTC.

Example: end=2023-01-31T00:00:00Z
curl -i -X GET \
  'https://docs.mycirrus.cloud/_mock/apis/mycirrus-main/data/monitor/events?instruments=QT123456%2CQT234567&start=2023-01-01T00%3A00%3A00Z&end=2023-01-31T00%3A00%3A00Z' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
typestring
Enum"Connection""Online""Update"
startstring(date-time)
endstring(date-time)
infostring
instrumentstring
]
Response
application/json
[ { "type": "Connection", "start": "2023-06-15T07:33:09.51Z", "end": "2023-06-15T07:34:21.524Z", "info": "Ethernet" } ]

Request

Get the current system monitor stats and uptime for the selected instruments.

Only supported by Quantum noise monitors.

Requires an API key with the data.system:read scope.

Security
apikey
Query
instrumentsArray of stringsrequired

Serial numbers of selected instruments

Example: instruments=QT123456&instruments=QT234567
curl -i -X GET \
  'https://docs.mycirrus.cloud/_mock/apis/mycirrus-main/data/monitor/current?instruments=QT123456%2CQT234567' \
  -H 'X-Api-Key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
instrumentstring

Instrument serial number

cpunumber

CPU usage as a percentage

memnumber

Memory usage as a percentage

tempnumber

SoC Temperature in degrees Celsius

voltagenumber

Input voltage in volts

disknumber

Disk usage as a percentage

networknumber

Network usage, kilobits per second

simQuotanumber

SIM card data quota in megabytes

simUsagenumber

SIM card data usage in megabytes

uptimenumber

Uptime in seconds

]
Response
application/json
[ { "cpu": 12.2, "mem": 8.3, "temp": 51.1, "voltage": 11.5, "disk": 0.2, "network": 3.7, "simQuota": 0, "simUsage": 0, "uptime": 900 } ]

Webhook management

Webhooks allow you to receive notifications when new data is available. You can configure webhooks via the API itself or via the console.
To create a webhook, go to the API console and click the "Create Webhook" button.

These are the endpoints you can use to manage your webhooks:

Operations

Webhook Messages

Webhooks allow you to receive notifications when new data is available. You can configure webhooks via the API itself or via the console.
To create a webhook, go to the API console and click the "Create Webhook" button.

When a webhook is triggered, a POST request will be sent to the URL you specified. The request will contain a JSON body with the data that triggered the webhook.

When processing the webhook request you must return a 200 OK response to indicate that the data was received successfully.

If a 200 response is not given or the request times out (5 seconds), the webhook will be retried up to 5 times.
To ensure a fast response we recommend you respond immediately and queue any further work to be done later.

If a webhook repeatedly fails you will be notified via email. If it continues to fail it will then be removed.
We cannot guarantee you will get a webhook request for every event so you should occasionally check for new items against the normal API endpoints. When processing events such as new measurements its also recommended to request all data since you last processed it rather than just the 1 new measurement from the request.

These are the types of webhook messages you can receive:

Webhooks