> For the complete documentation index, see [llms.txt](https://docs.raalabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.raalabs.io/reference/api-reference/measurements.md).

# Measurements

The Measurements endpoints provide access to raw sensor data (time series measurements) without any aggregation. Each measurement is an instantaneous reading from a sensor at a given timestamp. This is typically the most commonly used endpoint for retrieving time-series data.

## GET /measurements/id/{ids}

> Get measurements from the id domain

```json
{"openapi":"3.0.0","info":{"title":"Raa Labs Time Series API","version":"2025-10-31"},"tags":[{"description":"The Measurements endpoints provide access to raw sensor data (time series measurements) without any aggregation. Each measurement is an instantaneous reading from a sensor at a given timestamp. This is typically the most commonly used endpoint for retrieving time-series data.","name":"Measurements"}],"servers":[{"description":"API Server","url":"http://localhost:8080","variables":{}}],"security":[{"authorization":[]}],"components":{"securitySchemes":{"authorization":{"scheme":"bearer","type":"http"}},"schemas":{"IdTimeseries":{"items":{"$ref":"#/components/schemas/Measurement"},"title":"IdTimeseries","type":"array"},"Measurement":{"properties":{"id":{"format":"uuid","type":"string"},"timestamp":{"format":"date-time","type":"string"},"value":{"type":"number"}},"title":"Measurement","type":"object"},"BadRequestResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"BadRequestResponse","type":"object"},"UnauthorizedErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"UnauthorizedErrorResponse","type":"object"},"NotFoundErrorresponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"NotFoundErrorresponse","type":"object"},"InternalServerErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"InternalServerErrorResponse","type":"object"}}},"paths":{"/measurements/id/{ids}":{"get":{"callbacks":{},"deprecated":false,"operationId":"get_measurements_id","parameters":[{"description":"A comma-separated list of one or more GUIDs","in":"path","name":"ids","required":false,"schema":{"type":"string"}},{"description":"From date-time","in":"query","name":"from","schema":{"format":"date-time","type":"string"}},{"description":"To date-time","in":"query","name":"to","schema":{"format":"date-time","type":"string"}},{"description":"From epoch. ex: 0","in":"query","name":"from_epoch","schema":{"type":"integer"}},{"description":"To epoch. ex: 100000","in":"query","name":"to_epoch","schema":{"type":"integer"}},{"description":"Since returns data going back. ex: '1day' from now","in":"query","name":"since","schema":{"type":"string"}},{"description":"Last returns data going back. ex: '1day' from the last full day","in":"query","name":"last","schema":{"type":"string"}},{"description":"Sets the year for which data should be retrieved. ex: 2025","in":"query","name":"year","schema":{"type":"number"}},{"description":"Sets the month for which data should be retrieved. ex: 8","in":"query","name":"month","schema":{"type":"number"}},{"description":"Sets the day for which data should be retrieved. ex: 1","in":"query","name":"day","schema":{"type":"number"}},{"description":"Desired output format of the data. You can also specify the response format via the HTTP Accept Header instead of the format query parameter.","in":"query","name":"format","schema":{"default":"json","enum":["json","ndjson","parquet"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdTimeseries"}},"application/vnd.apache.parquet":{"schema":{"$ref":"#/components/schemas/IdTimeseries"}},"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/IdTimeseries"}}},"description":"All data points for the times series within the requested time range.","headers":{"api-version":{"description":"API version","required":true,"schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorresponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Get measurements from the id domain","tags":["Measurements"]}}}}
```

## GET /measurements/jsmea/{imo\_number}/{naming\_rule}/{category}/{sub\_category}/{content}/{position}/{item}/{modifier}

> Get measurement data from the jsmea domain

```json
{"openapi":"3.0.0","info":{"title":"Raa Labs Time Series API","version":"2025-10-31"},"tags":[{"description":"The Measurements endpoints provide access to raw sensor data (time series measurements) without any aggregation. Each measurement is an instantaneous reading from a sensor at a given timestamp. This is typically the most commonly used endpoint for retrieving time-series data.","name":"Measurements"}],"servers":[{"description":"API Server","url":"http://localhost:8080","variables":{}}],"security":[{"authorization":[]}],"components":{"securitySchemes":{"authorization":{"scheme":"bearer","type":"http"}},"schemas":{"JsmeaTimeseries":{"items":{"$ref":"#/components/schemas/Measurement"},"title":"JsmeaTimeseries","type":"array"},"Measurement":{"properties":{"id":{"format":"uuid","type":"string"},"timestamp":{"format":"date-time","type":"string"},"value":{"type":"number"}},"title":"Measurement","type":"object"},"BadRequestResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"BadRequestResponse","type":"object"},"UnauthorizedErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"UnauthorizedErrorResponse","type":"object"},"NotFoundErrorresponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"NotFoundErrorresponse","type":"object"},"InternalServerErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"InternalServerErrorResponse","type":"object"}}},"paths":{"/measurements/jsmea/{imo_number}/{naming_rule}/{category}/{sub_category}/{content}/{position}/{item}/{modifier}":{"get":{"callbacks":{},"deprecated":false,"operationId":"get_measurements_jsmea","parameters":[{"description":"The IMO number of the vessel to retrieve from","in":"path","name":"imo_number","required":false,"schema":{"type":"string"}},{"description":"The naming rule to use for retrieval","in":"path","name":"naming_rule","required":false,"schema":{"type":"string"}},{"description":"The category to retrieve from","in":"path","name":"category","required":false,"schema":{"type":"string"}},{"description":"The sub category to retrieve from","in":"path","name":"sub_category","required":false,"schema":{"type":"string"}},{"description":"The content to retrieve from","in":"path","name":"content","required":false,"schema":{"type":"string"}},{"description":"The position to retrieve from","in":"path","name":"position","required":false,"schema":{"type":"string"}},{"description":"The item to retrieve from","in":"path","name":"item","required":false,"schema":{"type":"string"}},{"description":"The modifier to retrieve from","in":"path","name":"modifier","required":false,"schema":{"type":"string"}},{"description":"From date-time","in":"query","name":"from","schema":{"format":"date-time","type":"string"}},{"description":"To date-time","in":"query","name":"to","schema":{"format":"date-time","type":"string"}},{"description":"From epoch. ex: 0","in":"query","name":"from_epoch","schema":{"type":"integer"}},{"description":"To epoch. ex: 100000","in":"query","name":"to_epoch","schema":{"type":"integer"}},{"description":"Since returns data going back. ex: '1day' from now","in":"query","name":"since","schema":{"type":"string"}},{"description":"Last returns data going back. ex: '1day' from the last full day","in":"query","name":"last","schema":{"type":"string"}},{"description":"Sets the year for which data should be retrieved. ex: 2025","in":"query","name":"year","schema":{"type":"number"}},{"description":"Sets the month for which data should be retrieved. ex: 8","in":"query","name":"month","schema":{"type":"number"}},{"description":"Sets the day for which data should be retrieved. ex: 1","in":"query","name":"day","schema":{"type":"number"}},{"description":"Desired output format of the data. You can also specify the response format via the HTTP Accept Header instead of the format query parameter.","in":"query","name":"format","schema":{"default":"json","enum":["json","ndjson","parquet"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsmeaTimeseries"}},"application/vnd.apache.parquet":{"schema":{"$ref":"#/components/schemas/JsmeaTimeseries"}},"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/JsmeaTimeseries"}}},"description":"Response from the route","headers":{"api-version":{"description":"API version","required":true,"schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorresponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Get measurement data from the jsmea domain","tags":["Measurements"]}}}}
```

## Retrieve data from multiple queries

> Used to retrieve data for multiple queries in one request (you provide a list of domain/expression queries in the JSON body).

```json
{"openapi":"3.0.0","info":{"title":"Raa Labs Time Series API","version":"2025-10-31"},"tags":[{"description":"The Measurements endpoints provide access to raw sensor data (time series measurements) without any aggregation. Each measurement is an instantaneous reading from a sensor at a given timestamp. This is typically the most commonly used endpoint for retrieving time-series data.","name":"Measurements"}],"servers":[{"description":"API Server","url":"http://localhost:8080","variables":{}}],"security":[{"authorization":[]}],"components":{"securitySchemes":{"authorization":{"scheme":"bearer","type":"http"}},"schemas":{"MeasurementBatchQueryRequest":{"description":"Array of domain/expression query strings","items":{"type":"string"},"minItems":1,"title":"MeasurementBatchQueryRequest","type":"array"},"MeasurementBatchQueryResponse":{"items":{"$ref":"#/components/schemas/Measurement"},"title":"MeasurementBatchQueryResponse","type":"array"},"Measurement":{"properties":{"id":{"format":"uuid","type":"string"},"timestamp":{"format":"date-time","type":"string"},"value":{"type":"number"}},"title":"Measurement","type":"object"},"BadRequestResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"BadRequestResponse","type":"object"},"UnauthorizedErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"UnauthorizedErrorResponse","type":"object"},"NotFoundErrorresponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"NotFoundErrorresponse","type":"object"},"InternalServerErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"InternalServerErrorResponse","type":"object"}}},"paths":{"/measurements/query":{"post":{"callbacks":{},"deprecated":false,"description":"Used to retrieve data for multiple queries in one request (you provide a list of domain/expression queries in the JSON body).","operationId":"get_measurements_post","parameters":[{"description":"From date-time","in":"query","name":"from","schema":{"format":"date-time","type":"string"}},{"description":"To date-time","in":"query","name":"to","schema":{"format":"date-time","type":"string"}},{"description":"From epoch. ex: 0","in":"query","name":"from_epoch","schema":{"type":"integer"}},{"description":"To epoch. ex: 100000","in":"query","name":"to_epoch","schema":{"type":"integer"}},{"description":"Since returns data going back. ex: '1day' from now","in":"query","name":"since","schema":{"type":"string"}},{"description":"Last returns data going back. ex: '1day' from the last full day","in":"query","name":"last","schema":{"type":"string"}},{"description":"Sets the year for which data should be retrieved. ex: 2025","in":"query","name":"year","schema":{"type":"number"}},{"description":"Sets the month for which data should be retrieved. ex: 8","in":"query","name":"month","schema":{"type":"number"}},{"description":"Sets the day for which data should be retrieved. ex: 1","in":"query","name":"day","schema":{"type":"number"}},{"description":"Desired output format of the data. You can also specify the response format via the HTTP Accept Header instead of the format query parameter.","in":"query","name":"format","schema":{"default":"json","enum":["json","ndjson","parquet"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeasurementBatchQueryRequest"}}},"description":"Batch measurement query request","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeasurementBatchQueryResponse"}},"application/vnd.apache.parquet":{"schema":{"$ref":"#/components/schemas/MeasurementBatchQueryResponse"}},"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/MeasurementBatchQueryResponse"}}},"description":"Batch measurement data","headers":{"api-version":{"description":"API version","required":true,"schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorresponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Retrieve data from multiple queries","tags":["Measurements"]}}}}
```

## GET /measurements/raalabs/{imo\_number}/{tag\_name}

> Get measurement data from the raalabs domain

```json
{"openapi":"3.0.0","info":{"title":"Raa Labs Time Series API","version":"2025-10-31"},"tags":[{"description":"The Measurements endpoints provide access to raw sensor data (time series measurements) without any aggregation. Each measurement is an instantaneous reading from a sensor at a given timestamp. This is typically the most commonly used endpoint for retrieving time-series data.","name":"Measurements"}],"servers":[{"description":"API Server","url":"http://localhost:8080","variables":{}}],"security":[{"authorization":[]}],"components":{"securitySchemes":{"authorization":{"scheme":"bearer","type":"http"}},"schemas":{"RaalabsTimeseries":{"items":{"$ref":"#/components/schemas/Measurement"},"title":"RaalabsTimeseries","type":"array"},"Measurement":{"properties":{"id":{"format":"uuid","type":"string"},"timestamp":{"format":"date-time","type":"string"},"value":{"type":"number"}},"title":"Measurement","type":"object"},"BadRequestResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"BadRequestResponse","type":"object"},"UnauthorizedErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"UnauthorizedErrorResponse","type":"object"},"NotFoundErrorresponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"NotFoundErrorresponse","type":"object"},"InternalServerErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"InternalServerErrorResponse","type":"object"}}},"paths":{"/measurements/raalabs/{imo_number}/{tag_name}":{"get":{"callbacks":{},"deprecated":false,"operationId":"get_measurements_raalabs","parameters":[{"description":"The IMO number of the vessel","in":"path","name":"imo_number","required":false,"schema":{"type":"string"}},{"description":"Short descriptive tag name","in":"path","name":"tag_name","required":false,"schema":{"type":"string"}},{"description":"From date-time","in":"query","name":"from","schema":{"format":"date-time","type":"string"}},{"description":"To date-time","in":"query","name":"to","schema":{"format":"date-time","type":"string"}},{"description":"From epoch. ex: 0","in":"query","name":"from_epoch","schema":{"type":"integer"}},{"description":"To epoch. ex: 100000","in":"query","name":"to_epoch","schema":{"type":"integer"}},{"description":"Since returns data going back. ex: '1day' from now","in":"query","name":"since","schema":{"type":"string"}},{"description":"Last returns data going back. ex: '1day' from the last full day","in":"query","name":"last","schema":{"type":"string"}},{"description":"Sets the year for which data should be retrieved. ex: 2025","in":"query","name":"year","schema":{"type":"number"}},{"description":"Sets the month for which data should be retrieved. ex: 8","in":"query","name":"month","schema":{"type":"number"}},{"description":"Sets the day for which data should be retrieved. ex: 1","in":"query","name":"day","schema":{"type":"number"}},{"description":"Desired output format of the data. You can also specify the response format via the HTTP Accept Header instead of the format query parameter.","in":"query","name":"format","schema":{"default":"json","enum":["json","ndjson","parquet"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RaalabsTimeseries"}},"application/vnd.apache.parquet":{"schema":{"$ref":"#/components/schemas/RaalabsTimeseries"}},"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/RaalabsTimeseries"}}},"description":"Response from the route","headers":{"api-version":{"description":"API version","required":true,"schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorresponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Get measurement data from the raalabs domain","tags":["Measurements"]}}}}
```

## GET /measurements/vis-3-8a/{imo\_number}/{primary\_item\_vis\_path}/sec/{secondary\_item\_vis\_path}/meta/{metadata}

> Get measurement data from the vis-3-8a domain

```json
{"openapi":"3.0.0","info":{"title":"Raa Labs Time Series API","version":"2025-10-31"},"tags":[{"description":"The Measurements endpoints provide access to raw sensor data (time series measurements) without any aggregation. Each measurement is an instantaneous reading from a sensor at a given timestamp. This is typically the most commonly used endpoint for retrieving time-series data.","name":"Measurements"}],"servers":[{"description":"API Server","url":"http://localhost:8080","variables":{}}],"security":[{"authorization":[]}],"components":{"securitySchemes":{"authorization":{"scheme":"bearer","type":"http"}},"schemas":{"Vis38Timeseries":{"items":{"$ref":"#/components/schemas/Measurement"},"title":"Vis38Timeseries","type":"array"},"Measurement":{"properties":{"id":{"format":"uuid","type":"string"},"timestamp":{"format":"date-time","type":"string"},"value":{"type":"number"}},"title":"Measurement","type":"object"},"BadRequestResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"BadRequestResponse","type":"object"},"UnauthorizedErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"UnauthorizedErrorResponse","type":"object"},"NotFoundErrorresponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"NotFoundErrorresponse","type":"object"},"InternalServerErrorResponse":{"properties":{"error":{"description":"Error message","type":"string"}},"title":"InternalServerErrorResponse","type":"object"}}},"paths":{"/measurements/vis-3-8a/{imo_number}/{primary_item_vis_path}/sec/{secondary_item_vis_path}/meta/{metadata}":{"get":{"callbacks":{},"deprecated":false,"operationId":"get_measurements_vis38","parameters":[{"description":"The IMO number of the vessel to retrieve from","in":"path","name":"imo_number","required":false,"schema":{"type":"string"}},{"description":"Primary item VIS path","in":"path","name":"primary_item_vis_path","required":false,"schema":{"type":"string"}},{"description":"Secondary item VIS path","in":"path","name":"secondary_item_vis_path","required":false,"schema":{"type":"string"}},{"description":"Metadata","in":"path","name":"metadata","required":false,"schema":{"type":"string"}},{"description":"From date-time","in":"query","name":"from","schema":{"format":"date-time","type":"string"}},{"description":"To date-time","in":"query","name":"to","schema":{"format":"date-time","type":"string"}},{"description":"From epoch. ex: 0","in":"query","name":"from_epoch","schema":{"type":"integer"}},{"description":"To epoch. ex: 100000","in":"query","name":"to_epoch","schema":{"type":"integer"}},{"description":"Since returns data going back. ex: '1day' from now","in":"query","name":"since","schema":{"type":"string"}},{"description":"Last returns data going back. ex: '1day' from the last full day","in":"query","name":"last","schema":{"type":"string"}},{"description":"Sets the year for which data should be retrieved. ex: 2025","in":"query","name":"year","schema":{"type":"number"}},{"description":"Sets the month for which data should be retrieved. ex: 8","in":"query","name":"month","schema":{"type":"number"}},{"description":"Sets the day for which data should be retrieved. ex: 1","in":"query","name":"day","schema":{"type":"number"}},{"description":"Desired output format of the data. You can also specify the response format via the HTTP Accept Header instead of the format query parameter.","in":"query","name":"format","schema":{"default":"json","enum":["json","ndjson","parquet"],"type":"string"}},{"description":"When true, includes human-readable names for the corresponding VIS path elements in vis-3-8a domainIds. If false (or omitted), regular domainIds are returned.","in":"query","name":"verbose","required":false,"schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Vis38Timeseries"}},"application/vnd.apache.parquet":{"schema":{"$ref":"#/components/schemas/Vis38Timeseries"}},"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/Vis38Timeseries"}}},"description":"Response from the route","headers":{"api-version":{"description":"API version","required":true,"schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundErrorresponse"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Get measurement data from the vis-3-8a domain","tags":["Measurements"]}}}}
```
