---
title: "List meters"
method: GET
path: "/meters"
tags: ["Meters"]
---

# List meters

`GET /meters`

Endpoint used to list meter resources

## Query parameters

- `cursor` string — Last pagination reference
- `limit` integer — max number of Meters returned
- `measurementType` 'MANUAL' | 'IOT_DEVICE' | 'AUTOMATED_SENSOR' — The measurement type of the meter to filter by
- `assets` integer[] — To filter by multiple asset IDs: `assets=123&assets=456`
- `expand` string[] — To expand multiple fields: `expand=asset&expand=location`

## Headers

- `x-organization-id` integer

## Response `200`

Successfully fetched Meters list

- object
  - `meters` object[], required
    - `id` number, required — Global ID of the meter.
    - `name` string, required — Name of the meters
    - `unit` string, required — Measurement unit for the readings. Any string is accepted. However, if applicable, we recommed you to use the following units as it may carry extra functionality: <br><ul> <li>Distance: <ul> <li><code>Miles</code></li><li><code>Feet</code></li><li><code>Inches</code></li><li><code>Kilometers</code></li><li><code>Meters</code></li><li><code>Centimeters</code></li><li><code>Millimeters</code></li> </ul> </li> <li>Volume: <ul> <li><code>Gallons</code></li><li><code>Liters</code></li><li><code>Milliliters</code></li><li><code>Cubic Meters</code></li> </ul> </li> <li>Temperature: <ul> <li><code>Celsius</code></li><li><code>Fahrenheit</code></li><li><code>Kelvin</code></li> </ul> </li> <li>Other: <ul> <li><code>Hours</code></li><li><code>Cycles</code></li><li><code>PSI</code></li><li><code>Kilograms</code></li><li><code>Grams</code></li><li><code>dBm</code></li><li><code>Nm</code></li> </ul> </li> <li>Velocity: <ul> <li><code>MetersPerSecond</code></li><li><code>InchesPerSecond</code></li><li><code>MillimetersPerSecond</code></li> </ul> </li> <li>Acceleration: <ul> <li><code>G-Force</code></li><li><code>MetersPerSecondSquared</code></li><li><code>FeetPerSecondSquared</code></li> </ul> </li> <li>Electrical: <ul> <li><code>Volts</code></li><li><code>Amps</code></li> </ul> </li> </ul>
    - `measurementType` 'MANUAL' | 'IOT_DEVICE' | 'AUTOMATED_SENSOR', required — Represents the Type of meter. <br><br><code>Manual</code>: They are made to be used in the MaintainX app and to retain manually entered values and are limited to 10 distinct readings creation requests per 24 hours over REST API. Batched readings requests only count as one toward the rate limit. <br><br><code>Automated</code>: (Enterprise Plan) Automated meters store high frequency readings sent from integrations and have normal rate limiting. <br><br>~~<code>IoT Device</code>~~: IoT Device meters are deprecated and should no longer be used in the future. Creating an IoT Device meter will mimic automated meters in terms of behavior to avoid breaking changes.
    - `asset` object, nullable — Asset linked to the element (expand with query parameter)
      - `id` integer, required — Global ID of the asset
      - `name` string, required
      - `description` string, nullable, required
      - `parentId` integer, nullable, required — ID of the parent asset
      - `criticalityId` integer, nullable, required — ID of the criticality of the asset
      - `locationId` integer, nullable, required — ID of the location where the asset is located
      - `serialNumber` string, nullable, required — Serial number of the asset
      - `createdAt` string, date-time, required — Date & time at which the asset was created
      - `updatedAt` string, date-time, required — Date & time at which the asset was last updated. This doesn't include comments
      - `creatorId` integer, nullable, required — ID of the asset creator
    - `location` object, nullable — Location linked to the element (expand with query parameter)
      - `id` integer, required — Global ID of the location
      - `name` string, required
      - `description` string, nullable
      - `address` string, nullable — Postal address of the location
      - `parentId` integer, nullable — ID of the parent location
      - `createdAt` string, date-time — Date & time at which the location was created
      - `updatedAt` string, date-time — Date & time at which the location was last updated. This doesn't include comments
    - `lastReading` object, nullable — Last reading of a meter (expand with query parameter)
      - `id` string, required — Global ID of the reading. IoT meters will produce IDs with the format '{meterId}-{uuid}', while manual meters will produce numbered IDs.
      - `meterId` number, required — Global ID of the meter.
      - `createdAt` string, required — Meter Reading creation/processing date.
      - `readingDate` string, nullable, required — Date at which the meter was read. This date can be set in the past, but cannot be further than 3 days for IoT meters.
      - `value` number, required — The reading value given by the meter.
  - `nextCursor` string, nullable, required — The cursor to retrieve the next page of Meters.
  - `nextPageUrl` string, nullable, required — Path with query parameters that can be used to retrieve the next page of Meters.

## Other responses

- `400` — Error with query
- `401` — Invalid token

---

[API](https://skmtc.net/getmaintainx/apis/maintainx-api.md) · [All operations](https://skmtc.net/getmaintainx/apis/maintainx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getmaintainx/maintainx-api/revisions/ef9153fcac7c/schema)
