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

# The reading ledger: the register that was read and the consumption it was banked as, with the full location it was read at, the register and consumption before it and the percentage change between the two, and whether it was corrected afterwards.



## OpenAPI

````yaml /api-reference/openapi.json get /consumption_readings
openapi: 3.0.0
info:
  description: ''
  title: >-
    The only schema PostgREST exposes. Reads are security_invoker views; writes
    are SECURITY DEFINER functions. Rebuilt wholesale on every deploy — it holds
    no data.
  version: 12.2.3
servers:
  - url: https://app.assetinfinity.ai/api
security: []
tags:
  - name: Signing in
  - name: Profile
  - name: Assets
  - name: Asset lifecycle
  - name: Work lifecycle
  - name: Maintenance
  - name: Inventory
  - name: Inventory detail
  - name: Procurement
  - name: Contracts
  - name: Workforce
  - name: Capacity
  - name: Dispatch
  - name: Tools
  - name: Inspections
  - name: Verification
  - name: Reliability
  - name: Parts demand
  - name: Sensors and meters
  - name: Map
  - name: Floor plans
  - name: Labels
  - name: Lost and found
  - name: Root cause analysis
  - name: Reports
  - name: Audit center
  - name: Activity
  - name: Notifications
  - name: Channels
  - name: Search
  - name: Copilot
  - name: Import
  - name: Files
  - name: Sync
  - name: Support
  - name: Admin
  - name: Access
  - name: Lookups
  - name: Read models
  - name: Branding
  - name: Custom fields
  - name: Form studio
  - name: Workflows
  - name: Workflow studio
  - name: Rules
  - name: Statuses and transitions
  - name: Currencies and locales
  - name: Work configuration
  - name: Asset configuration
  - name: Inventory configuration
  - name: Tool configuration
  - name: Workforce configuration
  - name: Vendor and contract configuration
  - name: Document configuration
  - name: Inspection configuration
  - name: Sites, locations and the organisation
  - name: Platform
  - name: Amendments
  - name: Asset clone
  - name: Asset components
  - name: Asset register
  - name: Asset transfer
  - name: Audit feed
  - name: Billing
  - name: Bookings
  - name: Budgets
  - name: Bulk jobs
  - name: Calibration history
  - name: Capex plans
  - name: Conversations
  - name: Costing
  - name: Currency
  - name: Dashboards
  - name: Directory sync
  - name: Document control
  - name: Document folders
  - name: Document tree
  - name: Documents
  - name: Energy
  - name: Extracts
  - name: Features
  - name: Feeds
  - name: Ffe plans
  - name: File exchange
  - name: Filing exceptions
  - name: Finance
  - name: Inbound mail
  - name: Keys
  - name: Knowledge
  - name: Licence
  - name: List views
  - name: Locations
  - name: Mapping
  - name: Mcp
  - name: Mcp oauth
  - name: Mfa
  - name: Numbering
  - name: Permits
  - name: Readers
  - name: Reference
  - name: Reference columns
  - name: Reference entry
  - name: Release
  - name: Scim
  - name: Security streams
  - name: Self verification
  - name: Setup
  - name: Shutdown
  - name: Sso
  - name: Telegram
  - name: Tenant switch
  - name: The caller's own work
  - name: The checklist library
  - name: Tools on a job, and who has them out
  - name: Tray
  - name: Vendor spend forecast
  - name: Vendors and contracts
  - name: Visitors
  - name: Work order execution
  - name: Work sequencing
  - name: Workforce detail
externalDocs:
  description: PostgREST Documentation
  url: https://postgrest.org/en/v12/references/api.html
paths:
  /consumption_readings:
    get:
      tags:
        - Energy
      summary: >-
        The reading ledger: the register that was read and the consumption it
        was banked as, with the full location it was read at, the register and
        consumption before it and the percentage change between the two, and
        whether it was corrected afterwards.
      parameters:
        - $ref: '#/components/parameters/rowFilter.consumption_readings.id'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.supply_point_id
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.supply_point_code
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.supply_point_name
        - $ref: '#/components/parameters/rowFilter.consumption_readings.commodity_id'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.commodity_name
        - $ref: '#/components/parameters/rowFilter.consumption_readings.unit_code'
        - $ref: '#/components/parameters/rowFilter.consumption_readings.location_path'
        - $ref: '#/components/parameters/rowFilter.consumption_readings.reading_at'
        - $ref: '#/components/parameters/rowFilter.consumption_readings.period_start'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.register_value
        - $ref: '#/components/parameters/rowFilter.consumption_readings.multiplier'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.previous_register_value
        - $ref: '#/components/parameters/rowFilter.consumption_readings.consumption'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.previous_consumption
        - $ref: '#/components/parameters/rowFilter.consumption_readings.source'
        - $ref: '#/components/parameters/rowFilter.consumption_readings.is_estimated'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.is_meter_exchange
        - $ref: '#/components/parameters/rowFilter.consumption_readings.cost'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.cost_currency_id
        - $ref: '#/components/parameters/rowFilter.consumption_readings.tariff_id'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.invoice_reference
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.recorded_by_user_id
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.recorded_by_name
        - $ref: '#/components/parameters/rowFilter.consumption_readings.notes'
        - $ref: '#/components/parameters/rowFilter.consumption_readings.is_backdated'
        - $ref: '#/components/parameters/rowFilter.consumption_readings.restated_at'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.restated_from_consumption
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.consumption_change_percent
        - $ref: '#/components/parameters/rowFilter.consumption_readings.corrected_at'
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.corrected_by_user_id
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.corrected_by_name
        - $ref: >-
            #/components/parameters/rowFilter.consumption_readings.corrected_from_register_value
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/order'
        - $ref: '#/components/parameters/range'
        - $ref: '#/components/parameters/rangeUnit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/preferCount'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/consumption_readings'
                type: array
            application/vnd.pgrst.object+json:
              schema:
                items:
                  $ref: '#/components/schemas/consumption_readings'
                type: array
            application/vnd.pgrst.object+json;nulls=stripped:
              schema:
                items:
                  $ref: '#/components/schemas/consumption_readings'
                type: array
            text/csv:
              schema:
                items:
                  $ref: '#/components/schemas/consumption_readings'
                type: array
          description: OK
        '206':
          description: Partial Content
components:
  parameters:
    rowFilter.consumption_readings.id:
      in: query
      name: id
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.supply_point_id:
      in: query
      name: supply_point_id
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.supply_point_code:
      in: query
      name: supply_point_code
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.supply_point_name:
      in: query
      name: supply_point_name
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.commodity_id:
      in: query
      name: commodity_id
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.commodity_name:
      in: query
      name: commodity_name
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.unit_code:
      in: query
      name: unit_code
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.location_path:
      in: query
      name: location_path
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.reading_at:
      in: query
      name: reading_at
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.period_start:
      in: query
      name: period_start
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.register_value:
      in: query
      name: register_value
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.multiplier:
      in: query
      name: multiplier
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.previous_register_value:
      in: query
      name: previous_register_value
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.consumption:
      in: query
      name: consumption
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.previous_consumption:
      in: query
      name: previous_consumption
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.source:
      in: query
      name: source
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.is_estimated:
      in: query
      name: is_estimated
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.is_meter_exchange:
      in: query
      name: is_meter_exchange
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.cost:
      in: query
      name: cost
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.cost_currency_id:
      in: query
      name: cost_currency_id
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.tariff_id:
      in: query
      name: tariff_id
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.invoice_reference:
      in: query
      name: invoice_reference
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.recorded_by_user_id:
      in: query
      name: recorded_by_user_id
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.recorded_by_name:
      in: query
      name: recorded_by_name
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.notes:
      in: query
      name: notes
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.is_backdated:
      in: query
      name: is_backdated
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.restated_at:
      in: query
      name: restated_at
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.restated_from_consumption:
      in: query
      name: restated_from_consumption
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.consumption_change_percent:
      in: query
      name: consumption_change_percent
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.corrected_at:
      in: query
      name: corrected_at
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.corrected_by_user_id:
      in: query
      name: corrected_by_user_id
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.corrected_by_name:
      in: query
      name: corrected_by_name
      required: false
      schema:
        type: string
    rowFilter.consumption_readings.corrected_from_register_value:
      in: query
      name: corrected_from_register_value
      required: false
      schema:
        type: string
    select:
      description: Filtering Columns
      in: query
      name: select
      required: false
      schema:
        type: string
    order:
      description: Ordering
      in: query
      name: order
      required: false
      schema:
        type: string
    range:
      description: Limiting and Pagination
      in: header
      name: Range
      required: false
      schema:
        type: string
    rangeUnit:
      description: Limiting and Pagination
      in: header
      name: Range-Unit
      required: false
      schema:
        default: items
        type: string
    offset:
      description: Limiting and Pagination
      in: query
      name: offset
      required: false
      schema:
        type: string
    limit:
      description: Limiting and Pagination
      in: query
      name: limit
      required: false
      schema:
        type: string
    preferCount:
      description: Preference
      in: header
      name: Prefer
      required: false
      schema:
        enum:
          - count=none
        type: string
  schemas:
    consumption_readings:
      description: >-
        The reading ledger: the register that was read and the consumption it
        was banked as, with the full location it was read at, the register and
        consumption before it and the percentage change between the two, and
        whether it was corrected afterwards.
      properties:
        commodity_id:
          description: >-
            Note:

            This is a Foreign Key to `commodities.id`.<fk table='commodities'
            column='id'/>
          format: uuid
          type: string
        commodity_name:
          format: character varying
          maxLength: 120
          type: string
        consumption:
          format: numeric
          type: number
        consumption_change_percent:
          format: numeric
          type: number
        corrected_at:
          format: timestamp with time zone
          type: string
        corrected_by_name:
          format: character varying
          maxLength: 200
          type: string
        corrected_by_user_id:
          description: >-
            Note:

            This is a Foreign Key to `capex_invite_candidates.id`.<fk
            table='capex_invite_candidates' column='id'/>
          format: uuid
          type: string
        corrected_from_register_value:
          format: numeric
          type: number
        cost:
          format: numeric
          type: number
        cost_currency_id:
          description: >-
            Note:

            This is a Foreign Key to `asset_cost_to_keep.currency_id`.<fk
            table='asset_cost_to_keep' column='currency_id'/>
          format: uuid
          type: string
        id:
          description: |-
            Note:
            This is a Primary Key.<pk/>
          format: uuid
          type: string
        invoice_reference:
          format: character varying
          maxLength: 80
          type: string
        is_backdated:
          format: boolean
          type: boolean
        is_estimated:
          format: boolean
          type: boolean
        is_meter_exchange:
          format: boolean
          type: boolean
        location_path:
          format: text
          type: string
        multiplier:
          format: numeric
          type: number
        notes:
          format: text
          type: string
        period_start:
          format: timestamp with time zone
          type: string
        previous_consumption:
          format: numeric
          type: number
        previous_register_value:
          format: numeric
          type: number
        reading_at:
          format: timestamp with time zone
          type: string
        recorded_by_name:
          format: character varying
          maxLength: 200
          type: string
        recorded_by_user_id:
          description: >-
            Note:

            This is a Foreign Key to `capex_invite_candidates.id`.<fk
            table='capex_invite_candidates' column='id'/>
          format: uuid
          type: string
        register_value:
          format: numeric
          type: number
        restated_at:
          format: timestamp with time zone
          type: string
        restated_from_consumption:
          format: numeric
          type: number
        source:
          format: character varying
          maxLength: 20
          type: string
        supply_point_code:
          format: character varying
          maxLength: 60
          type: string
        supply_point_id:
          description: >-
            Note:

            This is a Foreign Key to `supply_points.id`.<fk
            table='supply_points' column='id'/>
          format: uuid
          type: string
        supply_point_name:
          format: character varying
          maxLength: 150
          type: string
        tariff_id:
          description: >-
            Note:

            This is a Foreign Key to `tariffs.id`.<fk table='tariffs'
            column='id'/>
          format: uuid
          type: string
        unit_code:
          format: character varying
          maxLength: 30
          type: string
      type: object

````