# Tibber GraphQL Schema Reference This reference is auto-generated from https://api.tibber.com
Table of Contents * [Query](#query) * [Mutation](#mutation) * [Subscription](#subscription) * [Objects](#objects) * [Address](#address) * [Consumption](#consumption) * [ContactInfo](#contactinfo) * [Home](#home) * [HomeConsumptionConnection](#homeconsumptionconnection) * [HomeConsumptionEdge](#homeconsumptionedge) * [HomeConsumptionPageInfo](#homeconsumptionpageinfo) * [HomeFeatures](#homefeatures) * [HomeProductionConnection](#homeproductionconnection) * [HomeProductionEdge](#homeproductionedge) * [HomeProductionPageInfo](#homeproductionpageinfo) * [LegalEntity](#legalentity) * [LiveMeasurement](#livemeasurement) * [MeterReadingResponse](#meterreadingresponse) * [MeteringPointData](#meteringpointdata) * [Price](#price) * [PriceInfo](#priceinfo) * [PriceRating](#pricerating) * [PriceRatingEntry](#priceratingentry) * [PriceRatingThresholdPercentages](#priceratingthresholdpercentages) * [PriceRatingType](#priceratingtype) * [Production](#production) * [PushNotificationResponse](#pushnotificationresponse) * [Subscription](#subscription) * [SubscriptionPriceConnection](#subscriptionpriceconnection) * [SubscriptionPriceConnectionPageInfo](#subscriptionpriceconnectionpageinfo) * [SubscriptionPriceEdge](#subscriptionpriceedge) * [Viewer](#viewer) * [Inputs](#inputs) * [MeterReadingInput](#meterreadinginput) * [PushNotificationInput](#pushnotificationinput) * [UpdateHomeInput](#updatehomeinput) * [Enums](#enums) * [AppScreen](#appscreen) * [EnergyResolution](#energyresolution) * [HeatingSource](#heatingsource) * [HomeAvatar](#homeavatar) * [HomeType](#hometype) * [PriceInfoRangeResolution](#priceinforangeresolution) * [PriceInfoResolution](#priceinforesolution) * [PriceLevel](#pricelevel) * [PriceRatingLevel](#priceratinglevel) * [PriceResolution](#priceresolution) * [Scalars](#scalars) * [Boolean](#boolean) * [Float](#float) * [ID](#id) * [Int](#int) * [String](#string) * [Interfaces](#interfaces) * [PageInfo](#pageinfo)
## Query
Field Argument Type Description
viewer Viewer! This contains data about the logged-in user
## Mutation (RootMutation)
Field Argument Type Description
sendMeterReading ⚠️ MeterReadingResponse! Deprecated; calling this mutation will do nothing

⚠️ DEPRECATED

no longer available
input MeterReadingInput!
updateHome Home! Update home information
input UpdateHomeInput!
sendPushNotification PushNotificationResponse! Send notification to Tibber app on registered devices
input PushNotificationInput!
## Subscription (RootSubscription)
Field Argument Type Description
liveMeasurement LiveMeasurement Subscribe to real-time measurement stream from Pulse or Watty device
homeId ID!
testMeasurement LiveMeasurement Subscribe to test stream
count Int
complete Boolean
## Objects ### Address
Field Argument Type Description
address1 String
address2 String
address3 String
city String
postalCode String
country String
latitude String
longitude String
### Consumption
Field Argument Type Description
from String!
to String!
unitPrice Float
unitPriceVAT Float
consumption Float kWh consumed
consumptionUnit String
totalCost ⚠️ Float Total cost of the consumption

⚠️ DEPRECATED

use `cost` instead
unitCost ⚠️ Float

⚠️ DEPRECATED

use `cost` instead
cost Float Consumption cost (consumption × unitPrice); including VAT (where applicable), excluding fees (where applicable), excluding production reward, excluding Grid Rewards
currency String The cost currency
### ContactInfo
Field Argument Type Description
email String The email of the corresponding entity
mobile String The mobile phone number of the corresponding entity
### Home
Field Argument Type Description
id ID!
timeZone String! The time zone the home resides in
appNickname String The nickname given to the home by the user
appAvatar HomeAvatar! The chosen avatar for the home
size Int The size of the home in square meters
type HomeType! The type of home.
numberOfResidents Int The number of people living in the home
primaryHeatingSource HeatingSource The primary form of heating in the household
hasVentilationSystem Boolean Whether the home has a ventilation system
mainFuseSize Int The main fuse size
address Address
owner LegalEntity The registered owner of the house
meteringPointData MeteringPointData
currentSubscription Subscription The current/latest subscription related to the home
subscriptions [Subscription]! All historic subscriptions related to the home
consumption HomeConsumptionConnection Consumption connection. Capped at 744 items (31 days) for resolution HOURLY, 31 items for DAILY, 52 items for WEEKLY, 12 items for MONTHLY and 1 for ANNUAL. If you need to fetch a longer interval, perform multiple requests and take advantage of the `pageInfo` data. Do note that this data is not updated in real-time, so try not to fetch this continually if there is no need to; and try to cache/store historical data locally.
resolution EnergyResolution!
first Int Take the `n` first results from cursor. Cannot be used in conjunction with `last`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).
last Int Take the `n` last results from cursor. Cannot be used in conjunction with `first`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).
before String Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `after`. Has no influence when `first` is used.
after String Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `before`. Has no influence when `last` is used.
filterEmptyNodes Boolean Whether to include empty nodes. Default value: false
production HomeProductionConnection Production connection. Capped at 744 items (31 days) for resolution HOURLY, 31 items for DAILY, 52 items for WEEKLY, 12 items for MONTHLY and 1 for ANNUAL. If you need to fetch a longer interval, perform multiple requests and take advantage of the `pageInfo` data. Do note that this data is not updated in real-time, so try not to fetch this continually if there is no need to; and try to cache/store historical data locally.
resolution EnergyResolution!
first Int Take the `n` first results from cursor. Cannot be used in conjunction with `last`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).
last Int Take the `n` last results from cursor. Cannot be used in conjunction with `first`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).
before String Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `after`. Has no influence when `first` is used.
after String Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `before`. Has no influence when `last` is used.
filterEmptyNodes Boolean Whether to include empty nodes. Default value: false
features HomeFeatures Home features
### HomeConsumptionConnection
Field Argument Type Description
pageInfo HomeConsumptionPageInfo!
nodes [Consumption]
edges [HomeConsumptionEdge]
### HomeConsumptionEdge
Field Argument Type Description
cursor String!
node Consumption!
### HomeConsumptionPageInfo
Field Argument Type Description
endCursor String The global ID of the last element in the page
hasNextPage Boolean True if further pages are available
hasPreviousPage Boolean True if previous pages are available
startCursor String The global ID of the first element in the page
count Int The number of elements in the page
currency String The currency of the page
totalCost Float Page total cost
energyCost ⚠️ Float Page energy cost

⚠️ DEPRECATED

redundant
totalConsumption Float Total consumption for page
filtered Int! Number of entries that have been filtered from result set due to empty nodes
### HomeFeatures
Field Argument Type Description
realTimeConsumptionEnabled Boolean 'true' if Tibber Pulse or Watty device is paired at home
### HomeProductionConnection
Field Argument Type Description
pageInfo HomeProductionPageInfo!
nodes [Production]
edges [HomeProductionEdge]
### HomeProductionEdge
Field Argument Type Description
cursor String!
node Production!
### HomeProductionPageInfo
Field Argument Type Description
endCursor String The global ID of the last element in the page
hasNextPage Boolean True if further pages are available
hasPreviousPage Boolean True if previous pages are available
startCursor String The global ID of the first element in the page
count Int The number of elements in the page
currency String The currency of the page
totalProfit Float Page total profit
totalProduction Float Page total production
filtered Int! Number of entries that have been filtered from result set due to empty nodes
### LegalEntity
Field Argument Type Description
id ID!
firstName String First/Given name of the entity
isCompany Boolean True if the entity is a company
name String! Full name of the entity
middleName String Middle name of the entity
lastName String Last name of the entity
organizationNo String Organization number - only populated if entity is a company (isCompany=true)
language String The primary language of the entity
contactInfo ContactInfo Contact information of the entity
address Address Address information for the entity
### LiveMeasurement Real-time measurement data from Pulse or Watty device. For meter connected Pulses, the data update rate is governed by the meter, but may be throttled/batched by Tibber. Differences in meter hardware and/or firmware means that it is not guaranteed that all fields are present in every data frame and furthermore cannot be guaranteed to be fully correct or complete, given that Tibber relies on what the meter provides. Tibber does not normalize or modify the meter data other than to try to handle known meter/firmware bugs and idiosyncrasies. Meter data may be enriched with additional aggregated fields where possible.
Field Argument Type Description
timestamp String! Timestamp when usage occurred
power Float! Consumption at the moment in watts (W)
lastMeterConsumption Float Last meter active import register state in kilowatt-hours (kWh)
accumulatedConsumption Float! Energy consumed since midnight in kilowatt-hours (kWh)
accumulatedProduction Float! Net energy produced since midnight in kilowatt-hours (kWh)
accumulatedConsumptionLastHour Float! Energy consumed since last hour shift in kilowatt-hours (kWh)
accumulatedProductionLastHour Float! Net energy produced since last hour shift in kilowatt-hours (kWh)
accumulatedCost Float Accumulated cost since midnight; requires active Tibber power deal; includes VAT (where applicable)
accumulatedReward Float Accumulated production reward since midnight; requires active Tibber power deal. Note that this is unrelated to Grid Rewards.
currency String Currency of displayed cost; requires active Tibber power deal
minPower Float! Minimum power consumption since midnight in watts (W)
averagePower Float! Average power consumption since midnight in watts (W)
maxPower Float! Peak power consumption since midnight in watts (W)
powerProduction Float Net power production (A-) at the moment in watts (W)
powerReactive Float Reactive power consumption (Q+) at the moment (kVAr)
powerProductionReactive Float Net reactive power production (Q-) at the moment (kVAr)
minPowerProduction Float Minimum net power production since midnight in watts (W)
maxPowerProduction Float Maximum net power production since midnight in watts (W)
lastMeterProduction Float Last meter active export register state in kilowatt-hours (kWh)
powerFactor Float Power factor (active power / apparent power); 0 to 1 where 1 is 100 %
voltagePhase1 Float Voltage on phase 1; on some meters, the value is not part of every data frame, therefore the value can be `null` at certain intervals. It is not guaranteed that single phase installations will be reporting on Phase 1 since Tibber does not normalize this data and only reports what is received from the meter.
voltagePhase2 Float Voltage on phase 2; on some meters, the value is not part of every data frame, therefore the value can be `null` at certain intervals. It is not guaranteed that single phase installations will be reporting on Phase 1 since Tibber does not normalize this data and only reports what is received from the meter.
voltagePhase3 Float Voltage on phase 3; on some meters, the value is not part of every data frame, therefore the value can be `null` at certain intervals. It is not guaranteed that single phase installations will be reporting on Phase 1 since Tibber does not normalize this data and only reports what is received from the meter.
currentL1 Float Current on L1; on some meters, the value is not part of every data frame, therefore the value can be `null` at certain intervals. It is not guaranteed that single phase installations will be reporting on Phase 1 since Tibber does not normalize this data and only reports what is received from the meter.
currentL2 Float Current on L2; on some meters, the value is not part of every data frame, therefore the value can be `null` at certain intervals. It is not guaranteed that single phase installations will be reporting on Phase 1 since Tibber does not normalize this data and only reports what is received from the meter.
currentL3 Float Current on L3; on some meters, the value is not part of every data frame, therefore the value can be `null` at certain intervals. It is not guaranteed that single phase installations will be reporting on Phase 1 since Tibber does not normalize this data and only reports what is received from the meter.
currentPhase1 ⚠️ Float

⚠️ DEPRECATED

superseded by `currentL1`
currentPhase2 ⚠️ Float

⚠️ DEPRECATED

superseded by `currentL2`
currentPhase3 ⚠️ Float

⚠️ DEPRECATED

superseded by `currentL3`
signalStrength Int Device signal strength (Pulse: dB(m); Watty: percent)
### MeterReadingResponse Deprecated; will only return default values
Field Argument Type Description
homeId ⚠️ ID!

⚠️ DEPRECATED

do not use anymore
time ⚠️ String

⚠️ DEPRECATED

always returns `null`
reading ⚠️ Int!

⚠️ DEPRECATED

always returns `0`
### MeteringPointData
Field Argument Type Description
consumptionEan String The metering point ID of the home
gridCompany String The grid provider of the home
gridAreaCode String The grid area the home/metering point belongs to
priceAreaCode String The price area the home/metering point belongs to
productionEan String The metering point ID of the production
energyTaxType String The eltax type of the home (only relevant for Swedish homes)
vatType String The VAT type of the home (only relevant for Norwegian homes)
estimatedAnnualConsumption Int The estimated annual consumption as reported by grid company
### Price
Field Argument Type Description
total Float The total price (energy + taxes)
energy Float Nord Pool spot price
tax Float The tax part of the price (guarantee of origin certificate, energy tax (Sweden only) and VAT)
startsAt String The start time of the price
currency String! The price currency
level PriceLevel The price level compared to recent price values
### PriceInfo
Field Argument Type Description
current Price The energy price right now
today [Price]! The hourly prices of the current day
tomorrow [Price]! The hourly prices of the upcoming day
range ⚠️ SubscriptionPriceConnection Range of prices, optionally relative to `before`/`after` arguments. Capped at 744 items (31 days) for resolution HOURLY, and 31 items for resolution DAILY. If you need to fetch a longer interval, perform multiple requests and take advantage of the `pageInfo` data. Do note that prices never change, so store already fetched historical prices locally; if you can use `today`/`tomorrow` instead, use that since the API can serve this data faster and in a more reliable way.

⚠️ DEPRECATED

use `Subscription.priceInfoRange` instead
resolution PriceResolution! Temporal resolution
first Int Take the `n` first results from cursor. Cannot be used in conjunction with `last`. Limit count: 744 (HOURLY), 31 (DAILY).
last Int Take the `n` last results from cursor. Cannot be used in conjunction with `first`. Limit count: 744 (HOURLY), 31 (DAILY).
before String Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `after.` Has no influence when `first` is used.
after String Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `before`. Has no influence when `last` is used.
### PriceRating
Field Argument Type Description
thresholdPercentages PriceRatingThresholdPercentages! The different 'high'/'low' price breakpoints (market dependent)
hourly PriceRatingType! The hourly prices of today, the previous 7 days, and tomorrow
daily PriceRatingType! The daily prices of today and the previous 30 days
monthly PriceRatingType! The monthly prices of this month and the previous 31 months
### PriceRatingEntry
Field Argument Type Description
time String! The start time of the price
energy Float! Nord Pool spot price
total Float! The total price (incl. tax)
tax Float! The tax part of the price (guarantee of origin certificate, energy tax (Sweden only) and VAT)
difference Float! The percentage difference compared to the trailing price average (1 day for 'hourly', 30 days for 'daily' and 32 months for 'monthly')
level PriceRatingLevel! The price level compared to recent price values (calculated using 'difference' and 'priceRating.thresholdPercentages')
### PriceRatingThresholdPercentages
Field Argument Type Description
high Float! The percentage difference when the price is considered to be 'high' (market dependent)
low Float! The percentage difference when the price is considered to be 'low' (market dependent)
### PriceRatingType
Field Argument Type Description
minEnergy Float! Lowest Nord Pool spot price over the time period
maxEnergy Float! Highest Nord Pool spot price over the time period
minTotal Float! Lowest total price (incl. tax) over the time period
maxTotal Float! Highest total price (incl. tax) over the time period
currency String! The price currency
entries [PriceRatingEntry!]! The individual price entries aggregated by hourly/daily/monthly values
### Production
Field Argument Type Description
from String!
to String!
unitPrice Float
unitPriceVAT Float
production Float kWh produced
productionUnit String
profit Float Total profit of the production
currency String The cost currency
### PushNotificationResponse
Field Argument Type Description
successful Boolean!
pushedToNumberOfDevices Int!
### Subscription
Field Argument Type Description
id ID!
subscriber LegalEntity! The owner of the subscription
validFrom String The time the subscription started
validTo String The time the subscription ended
status String The current status of the subscription
statusReason ⚠️ String

⚠️ DEPRECATED

no longer available
priceInfo PriceInfo Price information related to the subscription. For backward-compatible reasons, you have to set `resolution` to `QUARTER_HOURLY` to get quarter-hourly prices.
resolution PriceInfoResolution
priceInfoRange SubscriptionPriceConnection Historical price information related to the subscription. Replaces `priceInfo.range`. Range of prices, optionally relative to `before`/`after` arguments. Capped at 672 items (7 days) for resolution QUARTER_HOURLY, 744 items (31 days) for resolution HOURLY, and 31 items for resolution DAILY. If you need to fetch a longer interval, perform multiple requests and take advantage of the `pageInfo` data. Do note that prices never change, so store already fetched historical prices locally; if you can use `today`/`tomorrow` instead, use that since the API can serve this data faster and in a more reliable way.
resolution PriceInfoRangeResolution! Temporal resolution
first Int Take the `n` first results from cursor. Cannot be used in conjunction with `last`. Limit count: 672 (QUARTER_HOURLY), 744 (HOURLY), 31 (DAILY).
last Int Take the `n` last results from cursor. Cannot be used in conjunction with `first`. Limit count: 672 (QUARTER_HOURLY), 744 (HOURLY), 31 (DAILY).
before String Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `after.` Has no influence when `first` is used.
after String Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `before`. Has no influence when `last` is used.
priceRating ⚠️ PriceRating Alternative price information related to the subscription (deprecated)

⚠️ DEPRECATED

use `Subscription.priceInfo` instead
### SubscriptionPriceConnection
Field Argument Type Description
pageInfo SubscriptionPriceConnectionPageInfo!
edges [SubscriptionPriceEdge]!
nodes [Price]!
### SubscriptionPriceConnectionPageInfo
Field Argument Type Description
endCursor String
hasNextPage Boolean
hasPreviousPage Boolean
startCursor String
resolution String!
currency String!
count Int!
precision String
minEnergy Float
minTotal Float
maxEnergy Float
maxTotal Float
### SubscriptionPriceEdge
Field Argument Type Description
cursor String! The global ID of the element
node Price A single price node
### Viewer
Field Argument Type Description
login String
userId String Unique user identifier
name String
accountType [String!]! The type of account for the logged-in user.
homes [Home]! All homes visible to the logged-in user
home Home! Single home by its ID
id ID!
websocketSubscriptionUrl String URL for websocket subscriptions
## Inputs ### MeterReadingInput Deprecated; sending this in will do nothing
Field Type Description
homeId ID!
time String
reading Int!
### PushNotificationInput
Field Type Description
title String
message String!
screenToOpen AppScreen
### UpdateHomeInput
Field Type Description
homeId ID!
appNickname String
appAvatar HomeAvatar The chosen avatar for the home
size Int The size of the home in square meters
type HomeType The type of home
numberOfResidents Int The number of people living in the household
primaryHeatingSource HeatingSource The primary form of heating in the home
hasVentilationSystem Boolean Whether the home has a ventilation system
mainFuseSize Int The main fuse size in amperes
## Enums ### AppScreen
Value Description
HOME
REPORTS
CONSUMPTION
COMPARISON
DISAGGREGATION
HOME_PROFILE
CUSTOMER_PROFILE
METER_READING
NOTIFICATIONS
INVOICES
### EnergyResolution
Value Description
HOURLY
DAILY
WEEKLY
MONTHLY
ANNUAL
### HeatingSource
Value Description
AIR2AIR_HEATPUMP
AIR2WATER_HEATPUMP
BOILER
CENTRAL_HEATING
DISTRICT
DISTRICT_HEATING
ELECTRIC_BOILER
ELECTRICITY
FLOOR
GAS
GROUND
OIL
OTHER
WASTE
### HomeAvatar
Value Description
APARTMENT
ROWHOUSE
FLOORHOUSE1
FLOORHOUSE2
FLOORHOUSE3
COTTAGE
CASTLE
### HomeType
Value Description
APARTMENT
ROWHOUSE
HOUSE
COTTAGE
### PriceInfoRangeResolution
Value Description
DAILY
HOURLY
QUARTER_HOURLY
### PriceInfoResolution
Value Description
HOURLY
QUARTER_HOURLY
### PriceLevel Price level based on trailing price average (3 days for hourly values and 30 days for daily values)
Value Description
NORMAL The price is greater than 90 % and less than 115 % compared to average price
CHEAP The price is greater than 60 % and less or equal to 90 % compared to average price
VERY_CHEAP The price is smaller or equal to 60 % compared to average price
EXPENSIVE The price is greater or equal to 115 % and less than 140 % compared to average price
VERY_EXPENSIVE The price is greater or equal to 140 % compared to average price
### PriceRatingLevel
Value Description
NORMAL The price is within the range of what is considered being normal (market dependent; see 'priceRating.thresholdPercentages' for limits)
LOW The price is within the range of what is considered being low (market dependent; see 'priceRating.thresholdPercentages' for limits)
HIGH The price is within the range of what is considered being high (market dependent; see 'priceRating.thresholdPercentages' for limits)
### PriceResolution
Value Description
HOURLY
DAILY
## Scalars ### Boolean The `Boolean` scalar type represents `true` or `false`. ### Float The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). ### ID The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. ### Int The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. ### String The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. ## Interfaces ### PageInfo
Field Argument Type Description
endCursor String
hasNextPage Boolean
hasPreviousPage Boolean
startCursor String
**Possible Types:** [HomeConsumptionPageInfo](#homeconsumptionpageinfo), [HomeProductionPageInfo](#homeproductionpageinfo), [SubscriptionPriceConnectionPageInfo](#subscriptionpriceconnectionpageinfo)