iec-cim Metering API

Meters and interval readings (IEC 61968-9 AMI)

OpenAPI Specification

iec-cim-metering-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: IEC CIM 61968 Distribution Management Customers Metering API
  description: REST API for distribution utility systems based on IEC 61968 Common Information Model (CIM) standards. Provides access to network assets, outage management, customer information, meter reading, and work management data using CIM-compliant resource representations. Implements IEC 61968 Parts 3, 4, 9, and 11 interfaces for distribution management systems (DMS) integration.
  version: 1.0.0
  contact:
    name: CIM User Group
    url: https://cimug.ucaiug.org/
  license:
    name: IEC License
    url: https://www.iec.ch/
servers:
- url: https://dms-gateway.utility.example.com/cim/61968/v1
  description: Distribution Management System CIM API gateway
security:
- OAuth2: []
- BasicAuth: []
tags:
- name: Metering
  description: Meters and interval readings (IEC 61968-9 AMI)
paths:
  /meters:
    get:
      operationId: listMeters
      summary: List meters
      description: Returns smart meters and AMI endpoints in the distribution network. Supports filtering by circuit, substation, and meter type.
      tags:
      - Metering
      parameters:
      - name: substationId
        in: query
        schema:
          type: string
      - name: feeder
        in: query
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
      responses:
        '200':
          description: Meter list returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeterList'
  /meters/{mRID}/readings:
    get:
      operationId: getMeterReadings
      summary: Get meter readings
      description: Returns meter readings for a specific meter. Supports date range filtering and interval selection (15-minute, hourly, daily).
      tags:
      - Metering
      parameters:
      - name: mRID
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: startTime
        in: query
        required: true
        schema:
          type: string
          format: date-time
        description: Reading period start (ISO 8601)
      - name: endTime
        in: query
        required: true
        schema:
          type: string
          format: date-time
        description: Reading period end
      - name: readingType
        in: query
        schema:
          type: string
          enum:
          - ENERGY_KWH
          - DEMAND_KW
          - VOLTAGE
          - CURRENT
          - POWER_FACTOR
      responses:
        '200':
          description: Meter readings returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeterReadingList'
        '404':
          description: Meter not found
components:
  schemas:
    MeterList:
      type: object
      properties:
        meters:
          type: array
          items:
            $ref: '#/components/schemas/Meter'
        total:
          type: integer
    MeterReading:
      type: object
      description: CIM MeterReading – a set of readings from a meter for a time period
      properties:
        mRID:
          type: string
          format: uuid
        meterMRID:
          type: string
          format: uuid
        readingType:
          type: string
        timeStamp:
          type: string
          format: date-time
        value:
          type: number
        unit:
          type: string
          description: Unit of measure (kWh, kW, V, A)
        multiplier:
          type: string
          description: Metric multiplier (k, M, G, etc.)
        quality:
          type: string
          enum:
          - ACTUAL
          - ESTIMATED
          - SUBSTITUTED
          - INTERPOLATED
    MeterReadingList:
      type: object
      properties:
        meterMRID:
          type: string
          format: uuid
        readings:
          type: array
          items:
            $ref: '#/components/schemas/MeterReading'
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
    UsagePoint:
      type: object
      description: CIM UsagePoint – point of delivery for a customer
      properties:
        mRID:
          type: string
          format: uuid
        name:
          type: string
        serviceKind:
          type: string
          enum:
          - ELECTRICITY
          - GAS
          - WATER
          - HEAT
        phaseCode:
          type: string
    Location:
      type: object
      description: CIM Location with coordinates
      properties:
        mRID:
          type: string
          format: uuid
        name:
          type: string
        addressGeneral:
          type: string
        positionPoints:
          type: array
          items:
            type: object
            properties:
              sequenceNumber:
                type: integer
              xPosition:
                type: string
                description: Longitude
              yPosition:
                type: string
                description: Latitude
    Meter:
      type: object
      description: CIM Meter – an AMI or electromechanical meter endpoint
      properties:
        mRID:
          type: string
          format: uuid
        name:
          type: string
        serialNumber:
          type: string
        utcNumber:
          type: string
          description: Utility tracking number
        meterType:
          type: string
          enum:
          - AMI
          - AMR
          - ELECTROMECHANICAL
        communicationMethod:
          type: string
          enum:
          - PLC
          - RF_MESH
          - CELLULAR
          - OPTICAL
        serviceLocation:
          $ref: '#/components/schemas/Location'
        usagePoint:
          $ref: '#/components/schemas/UsagePoint'
        installationDate:
          type: string
          format: date
        lastCommunication:
          type: string
          format: date-time
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.utility.example.com/oauth/token
          scopes:
            cim.read: Read CIM data
            cim.write: Write CIM data
    BasicAuth:
      type: http
      scheme: basic
externalDocs:
  description: IEC CIM User Group
  url: https://cimug.ucaiug.org/