openapi: 3.2.0 info: title: Clevergy Connect Energy API description: Connect enables Clevergy customers to build integrations with the Clevergy platform. To request access please write to soporte.clientes@clever.gy version: 1.0.0 servers: - url: https://connect.clever.gy security: - key: [] tags: - name: Energy paths: /houses/{houseId}/energy-comparison: get: summary: Get energy comparison description: 'Returns the energy of a house for a month and a comparison with different profiles ' tags: - Energy operationId: getEnergyComparison parameters: - name: houseId in: path description: Id of the house required: true schema: type: string - name: month in: query description: Month to filter by required: true schema: type: string format: MM/yyyy responses: '200': description: User house profile content: application/json: schema: $ref: '#/components/schemas/EnergyComparison' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorUnauthorized' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/HttpErrorNotFound' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' /houses/{houseId}/energy: get: summary: Get house energy description: 'Returns the energy of a house for a date period (from startDate to endDate) grouped by date based on granularity ' tags: - Energy operationId: getEnergyByHouseId parameters: - name: houseId in: path description: ID of a house required: true schema: type: string - name: startDate in: query description: Start date to filter by required: true schema: type: string format: date-time - name: endDate in: query description: End date to filter by required: true schema: type: string format: date-time - name: granularity in: query description: Granularity to group by required: true schema: type: string enum: - YEARLY - MONTHLY - DAILY - HOURLY - name: includeTimeSpanStart in: query description: Time span start to filter within a day in hh:mm format (example 01:00) required: false schema: type: string - name: includeTimeSpanEnd in: query description: Time span end to filter within a day in hh:mm format (example 01:00) required: false schema: type: string - name: timeZone in: query description: Time zone for the dates requested and returned (example Europe/Madrid). By default, the time zone is UTC. required: false schema: type: string responses: '200': description: House consumption content: application/json: schema: type: array items: $ref: '#/components/schemas/EnergyItem' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorUnauthorized' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/HttpErrorNotFound' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' /houses/{houseId}/smartmeter: post: summary: Store energies for a house description: 'Stores a list of energies and dates for a specific house. :::warning This endpoint is experimental. Please, contact us if you want to use it. ::: ' tags: - Energy operationId: storeHouseEnergies parameters: - name: houseId in: path description: Id of the house required: true schema: type: string responses: '200': description: Energies stored correctly '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/HttpErrorUnauthorized' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/HttpErrorForbidden' '404': description: House Not found content: application/json: schema: $ref: '#/components/schemas/HttpErrorNotFound' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json: schema: $ref: '#/components/schemas/StoreHouseEnergiesRequest' components: schemas: StoreHouseEnergiesRequest: type: object required: - energies properties: energies: type: array items: type: object $ref: '#/components/schemas/EnergyEntry' EnergyEntry: type: object properties: wh: type: number format: float date: type: string format: date-time dateTo: type: string format: date-time description: Not mandatory, if not provided, dateTo is one hour more than date. required: - date - wh HttpErrorForbidden: type: object properties: timestamp: description: Request date and time type: string example: '2023-12-26T10:23:19.508+00:00' status: description: Http error code type: integer format: int32 example: 403 error: description: Http error description type: string example: Forbidden path: description: Request path type: string example: /users/U4NW5zdmstUtRZW5Oi3S2CR5l0U2/houses HttpErrorNotFound: type: object properties: timestamp: description: Request date and time type: string example: '2023-12-26T10:23:19.508+00:00' status: description: Http error code type: integer format: int32 example: 404 error: description: Http error description type: string example: Not Found path: description: Request path type: string example: /auth/alice.smith@gmail.com/token EnergyItem: type: object properties: date: type: string format: date-time solar: type: object properties: production: type: number format: float house: type: object properties: consumption: type: number format: float selfConsumption: type: number format: float grid: type: object properties: import: type: number format: float export: type: number format: float battery: type: object properties: charge: type: number format: float discharge: type: number format: float energyCommunities: type: array items: type: object properties: type: type: string enum: - SOLAR - WIND - HYDRO production: type: number format: float required: - type - production smartDevices: type: array items: type: object properties: subtype: type: string vendor: type: string enum: - SHELLY energy: type: number format: float required: - subtype - vendor - energy required: - date HttpErrorUnauthorized: type: object properties: timestamp: description: Request date and time type: string example: '2023-12-26T10:23:19.508+00:00' status: description: Http error code type: integer format: int32 example: 401 error: description: Http error description type: string example: Unauthorized path: description: Request path type: string example: /auth/john.doe@gmail.com/token EnergyComparison: required: - currentYear - profile properties: consumption: type: number format: float description: Energy consumption of the house currentYear: type: boolean description: If the comparison is for the current year profile: type: string enum: - EFFICIENT, - MEDIUM, - INEFFICIENT - NO_PROFILE description: Current profile of the house similarHomesConsumption: type: number format: float description: Average consumption of similar homes. Can be null (depends on configuration) energyEfficientHomesConsumption: type: number format: float description: Average consumption of energy efficient homes. Can be null (depends on configuration) neighborhoodHomesConsumption: type: number format: float description: Average consumption of homes in the neighborhood Error: type: object required: - code - message properties: code: type: integer format: int32 message: type: string securitySchemes: key: type: apiKey in: header name: clevergy-api-key x-google-endpoints: - name: connect.clever.gy allowCors: true x-google-backend: address: https://public-front-back-tl56gypzra-ew.a.run.app