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

# Submit cumulative meter records

> Accepts array of meter records holding energy use as cumulative values.

- If you are metering a device, submit records under `device_id`.
- If you are metering a location (i.e. main supply address meter), submit records under `location_id`.



## OpenAPI

````yaml api-reference/anode/flatpeak-api-spec-anode.json PUT /meters/cumulative/epoch
openapi: 3.0.3
info:
  description: Flatpeak API
  version: 2025-09-14.anode
  title: Flatpeak API
  termsOfService: https://flatpeak.com/legal
  contact:
    name: Technical Support
    email: support@flatpeak.com
    url: https://flatpeak.com/contact
  license:
    name: Apache 2.0
    url: https://flatpeak.com/legal
servers:
  - url: https://api.flatpeak.com
    description: Location
security: []
tags:
  - name: Consumption
    description: Consumption operations
  - name: Customers
    description: Customer operations
  - name: Devices
    description: Device operations
  - name: Meters
    description: Meter readings operations
  - name: Events
    description: Events operations
  - name: Login
    description: Bearer auth token operations
  - name: Connect
    description: Connect operations
  - name: Locations
    description: Location operations
  - name: Rates
    description: Rates operations
  - name: Costs
    description: Consumption cost calculations
  - name: Schedules
    description: Consumption schedules
  - name: Tariffs
    description: Tariff operations
  - name: Slots
    description: Slots operations
externalDocs:
  description: Location documentation
  url: https://docs.flatpeak.com
paths:
  /meters/cumulative/epoch:
    parameters: []
    put:
      tags:
        - Meters
      summary: Submit cumulative meter records
      description: >-
        Accepts array of meter records holding energy use as cumulative values.


        - If you are metering a device, submit records under `device_id`.

        - If you are metering a location (i.e. main supply address meter),
        submit records under `location_id`.
      operationId: submit-meter-cumulative
      requestBody:
        $ref: '#/components/requestBodies/MeterRecordsCumulativeSubmit'
      responses:
        '200':
          $ref: '#/components/responses/MeterRecords'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
      security:
        - bearerAuth: []
components:
  requestBodies:
    MeterRecordsCumulativeSubmit:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MeterRecordCumulativeSubmit'
          examples: {}
  responses:
    '403':
      description: 403 forbidden
      content:
        application/json:
          schema:
            type: object
            x-examples:
              Example:
                message: Bad credentials
            properties:
              object:
                type: string
                example: error
                x-stoplight:
                  id: gria4ysjd9zhk
                default: error
              type:
                type: string
                x-stoplight:
                  id: 7mhtfljidnqcu
                example: invalid_request
                default: invalid_request
              code:
                type: string
                x-stoplight:
                  id: sy7ljpdy5wdes
                example: access_denied
                default: access_denied
              time_created:
                type: string
                x-stoplight:
                  id: 84d5biv9dfbc9
                format: date-time
                example: '2025-01-01T00:00:00Z'
            required:
              - object
              - type
              - code
          examples: {}
    '429':
      description: 429 Too many requests
      content:
        application/json:
          schema:
            type: object
            properties:
              object:
                type: string
                x-stoplight:
                  id: irkmp11gg6sjx
                example: error
                default: error
              type:
                type: string
                x-stoplight:
                  id: u0gq12cizam3d
                default: rate_limit
                example: rate_limit
              code:
                type: string
                x-stoplight:
                  id: uh7x9404d4w3q
                default: too_many_requests
                example: too_many_requests
              message:
                type: string
                x-stoplight:
                  id: 9z8h79l1coblc
                default: Too many requests. Please retry after a short delay.
                example: Too many requests. Please retry after a short delay.
              time_created:
                type: string
                x-stoplight:
                  id: ea7o3uvdojrtc
                format: date-time
                default: '2026-01-29T17:11:52Z'
                example: '2026-01-29T17:11:52Z'
            required:
              - object
              - type
              - code
              - message
    MeterRecords:
      description: ''
      content:
        application/json:
          schema:
            type: object
            x-examples:
              Example:
                meter_events_accepted: 1732
            properties:
              id:
                type: string
                x-stoplight:
                  id: hntltnlblf3pj
                example: bat_65e42b7827c0526548432b9f
                description: Flatpeak ID for this submission.
              object:
                type: string
                x-stoplight:
                  id: y85ovdjf47ve4
                example: meter_batch
                description: Object name, i.e. `meter_batch`.
              records_submitted:
                type: integer
                x-stoplight:
                  id: xhemd7v86wwqe
                description: Number of received metering records.
                example: 18379
              records_accepted:
                type: integer
                x-stoplight:
                  id: yo3qq0mxlg1x1
                description: Number of accepted metering records.
                example: 18378
              records_processed:
                type: integer
                x-stoplight:
                  id: 8z90t8ilt6fmm
                description: Number of processed metering records.
                example: 32
              failed_records:
                x-stoplight:
                  id: fy48c5zw2sbok
                type: array
                description: Returns details of any meter records that failed processing
                items:
                  $ref: '#/components/schemas/FailedMeterRecord'
              time_created:
                type: string
                x-stoplight:
                  id: ej7w537oearlg
                example: '2023-11-07T05:31:56Z'
                description: Time when this object was created. In UTC.
                format: date-time
              account_id:
                type: string
                x-stoplight:
                  id: 7wdddwif8ztmn
                example: acc_661677911f2197045e6cf1b1
                description: Flatpeak account ID.
  schemas:
    MeterRecordCumulativeSubmit:
      type: object
      x-stoplight:
        id: yiptogotzxmlg
      x-examples: {}
      title: Metering Record Cumulative Submit
      properties:
        location_id:
          type: string
          example: loc_641b90b758fb8e6293716e40
          description: Flatpeak `location_id` that you are submitting metering records for.
          x-stoplight:
            id: ga3e4ofa14vpk
        device_id:
          type: string
          example: dev_65e6d8334c8d715963d99db3
          description: >-
            Flatpeak `device_id` you are submitting metering records for. If you
            provided both `location_id` and `device_id` your records will be
            attributed to `device_id`.
          x-stoplight:
            id: 8qu7xl65lfi89
        session_reference_id:
          type: string
          example: SESSION1234567890
          description: >-
            A reference for a group of metering records, for example, a charging
            session ID.
          x-stoplight:
            id: bji1eup4prz7d
        energy_flow_direction:
          type: string
          example: INBOUND
          x-stoplight:
            id: a44yhce4gr7e2
          description: >-
            Energy flow direction. Set to `INBOUND` or `OUTBOUND`. Defaults to
            `INBOUND`.
        tariff_direction:
          type: string
          example: IMPORT
          x-stoplight:
            id: a44yhce4gr7e2
          description: >-
            Tariff direction. Set to `IMPORT`, `EXPORT` or `LOCAL`. Defaults to
            match the `direction` parameter.
        units:
          type: string
          example: WH
          description: Units of measure, supported values are `WH`, `KWH`.
        data:
          type: array
          x-stoplight:
            id: zrl6ormzaedjj
          description: Metering data array
          items:
            x-stoplight:
              id: pu8p0jtadxdrq
            type: object
            properties:
              time:
                type: integer
                x-stoplight:
                  id: anwg7p15vu9co
                description: Unix timestamp when measurement has occurred.
                example: 1721991392
              value:
                type: number
                x-stoplight:
                  id: g6opfcy4cqtvk
                description: Amount of energy measured, as cumulative register value.
                example: 1553
              record_reference_id:
                type: string
                x-stoplight:
                  id: eysz9o47izkin
                description: >-
                  A reference for this metering record, for example, meter log
                  ID.
                example: MET1234567890
            required:
              - time
              - value
      required:
        - location_id
        - units
        - data
    FailedMeterRecord:
      title: FailedMeterRecord
      x-stoplight:
        id: nsh6y5iwx5iar
      type: object
      properties:
        record_num:
          type: integer
          x-stoplight:
            id: vdq3wirudmcbk
          description: 0 based position of the metering record in the meter batch.
          example: 1
        record_reference_id:
          type: string
          x-stoplight:
            id: qp5iderk6m8i0
          description: The reference for this metering record if it was provided.
          example: MET1234567890
        error:
          type: string
          x-stoplight:
            id: 3vnfq6t815h55
          description: Error message for this metering record.
          example: end_time must not be before start_time
      required:
        - record_num
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate with `bearer` you obtained from
        [authentication](/api-reference/anode/authentication) endpoint.

````