> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tangoanalytics.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get List Of Custom Meters

> A `GET` request will list all of the service’s custom meters.

_Response Body Structure_

| Path | Type | Description |
| --- | --- | --- |
| `[].id` | `Number` | The custom meter’s unique identifier. |
| `[].utilityAccountNumber` | `String` | Utility Account Number. |
| `[].accountId` | `Number` | EnergyWatch account identifier. |
| `[].meterNumber` | `String` | Meter Number. |
| `[].type` | `String` | Type of meter. |
| `[].multiplier` | `Number` | Multiplier for meter reading values. |
| `[].readingsPerHour` | `Number` | Number of readings a meter emits per hour. |
| `[].name` | `String` | Name of custom meter. |
| `[].timezone` | `String` | Timezone of meter data-source. Defaults to UTC. |
| `[].displayTimezone` | `String` | Timezone to display meter data. |
| `[].commodity` | `String` | Commodity the meter tracks. |
| `[].meterProvider` | `String` | Meter provider code. Defaults to Generic Meter. |
| `[].sourceCategory` | `String` | Consumption or production meter. Defaults to Consumption. |
| `[].isCumulative` | `Boolean` | Tracks if meter is a cumulative meter. Defaults to non-cumulative meter. |
| `[].additionalSettings` | `Object` | Stores additional settings unique to a particular meter provider. |



## OpenAPI

````yaml /tango_watchwire/integrations/guides/watchwire-api.yaml get /custommeters/
openapi: 3.1.0
info:
  title: WatchWire API
  version: 1.0.0
  description: >-
    The WatchWire Platform has APIs that allow you to access your data
    programmatically. There are several APIs designed for the modules in the
    WatchWire platform including - Invoice Data, Real-Time, Accounts Payable,
    and Measurement & Verification. All are highly scalable, and secure APIs
    that communicate over HTTPS RESTful protocols with JSON based documents.


    > **Note**: Not all WatchWire modules are available as an API.


    # Authentication


    You need credentials to access the APIs - it is the same credentials as your
    WatchWire login. The `/authenticate` will return a Token that needs to be
    included in the header of every subsequent request. The token renews with
    each request and expires after 60 minutes of inactivity (at which point you
    will need to re-authenticate and get a new token).


    > Please contact the WatchWire team for any questions or request for API
    credential access.


    # Error Codes


    There will be various error codes specific to the API you are using, but
    generally follows these principles:


    *   `Unauthorized` - *you are unauthenticated or unauthorized to request
    actions on an asset*

    *   `Asset doesn't exist` - *the item you are querying for doesn't exist*

    *   `Server error`\- *general exception raised in our application code*
        

    # Rate limit


    Rate limited to 10 transactions per meter / second
servers:
  - url: https://auth.replace-me.example.com
    description: Authentication service (Postman variable {{ww-api-baseurl}})
  - url: https://realtime.replace-me.example.com
    description: RealTime API (Postman variable {{gateway-realtime-api}})
  - url: https://ap.replace-me.example.com
    description: Accounts Payable API (Postman variable {{gateway-ap-api}})
  - url: https://invoice.replace-me.example.com
    description: Invoice API (Postman variable {{portal-api-baseurl}})
  - url: https://mv.replace-me.example.com
    description: Measurement & Verification API (Postman variable {{invoice-api}})
security:
  - BearerAuth: []
tags:
  - name: Authentication
  - name: RealTime API - Custom Meter
  - name: RealTime API - Meter Readings
  - name: RealTime API - Meter Readings Aggregations
  - name: RealTime API - Meter Readings Batch Operations
  - name: RealTime API - Obvius Meter Readings
  - name: Accounts Payable API - Audit Statements
  - name: Accounts Payable API - Nexus Statements
  - name: Accounts Payable API - Standard Statements
  - name: Accounts Payable API - Statement PDFs
  - name: Invoice API - Reference IDs
  - name: Invoice API - Invoice
  - name: Measurement & Verification API - M&V
paths:
  /custommeters/:
    get:
      tags:
        - RealTime API - Custom Meter
      summary: Get List Of Custom Meters
      description: >-
        A `GET` request will list all of the service’s custom meters.


        _Response Body Structure_


        | Path | Type | Description |

        | --- | --- | --- |

        | `[].id` | `Number` | The custom meter’s unique identifier. |

        | `[].utilityAccountNumber` | `String` | Utility Account Number. |

        | `[].accountId` | `Number` | EnergyWatch account identifier. |

        | `[].meterNumber` | `String` | Meter Number. |

        | `[].type` | `String` | Type of meter. |

        | `[].multiplier` | `Number` | Multiplier for meter reading values. |

        | `[].readingsPerHour` | `Number` | Number of readings a meter emits per
        hour. |

        | `[].name` | `String` | Name of custom meter. |

        | `[].timezone` | `String` | Timezone of meter data-source. Defaults to
        UTC. |

        | `[].displayTimezone` | `String` | Timezone to display meter data. |

        | `[].commodity` | `String` | Commodity the meter tracks. |

        | `[].meterProvider` | `String` | Meter provider code. Defaults to
        Generic Meter. |

        | `[].sourceCategory` | `String` | Consumption or production meter.
        Defaults to Consumption. |

        | `[].isCumulative` | `Boolean` | Tracks if meter is a cumulative meter.
        Defaults to non-cumulative meter. |

        | `[].additionalSettings` | `Object` | Stores additional settings unique
        to a particular meter provider. |
      operationId: getListOfCustomMeters
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    utilityAccountNumber:
                      type: string
                    accountId:
                      type: integer
                    meterNumber:
                      type: string
                    type:
                      type: string
                    multiplier:
                      type: integer
                    readingsPerHour:
                      type: integer
                    name:
                      type: string
                    timezone:
                      type: string
                    displayTimezone:
                      type: string
                    commodity:
                      type: string
                    meterProvider:
                      type: string
                    sourceCategory:
                      type: string
                    isCumulative:
                      type: boolean
                    virtualMeter:
                      type: boolean
                    cumulative:
                      type: boolean
                    energyUnitCode:
                      type: string
                    energyUnit:
                      type: string
              example:
                - id: 10221
                  utilityAccountNumber: '2568796195680443635'
                  accountId: 13577
                  meterNumber: 'Meter: 7386'
                  type: realtime
                  multiplier: 1
                  readingsPerHour: 4
                  name: 'Meter: 7386'
                  timezone: America/New_York
                  displayTimezone: America/New_York
                  commodity: electric
                  meterProvider: GENERIC_METER
                  sourceCategory: CONSUMPTION
                  isCumulative: false
                  virtualMeter: false
                  cumulative: false
                  energyUnitCode: KW
                  energyUnit: kW
        '401':
          description: Unauthorized - missing, invalid or expired token
      security:
        - BearerAuth: []
      servers:
        - url: https://realtime.replace-me.example.com
          description: RealTime API (Postman variable {{gateway-realtime-api}})
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token returned by `POST /authenticate`. Expires after 60 minutes of
        inactivity.

````