Skip to main content

Queries

In this section

About Queries

Every GraphQL schema has a root type for both queries and mutations. The query type defines GraphQL operations that retrieve data from the server.

account

Type:AccountType

Get details about an account.

Arguments

NameDescription

accountNumber (String!)

Query

query Account($accountNumber: String!) {
  account(accountNumber: $accountNumber) {
    id
    number
    status
    paymentSchedules {
      ...PaymentScheduleConnectionTypeConnectionFragment
    }
    users {
      ...AccountUserTypeFragment
    }
    brand
    balance
    overdueBalance
    urn
    billingName
    billingSubName
    billingEmail
    billingAddress
    billingAddressLine1
    billingAddressLine2
    billingAddressLine3
    billingAddressLine4
    billingAddressLine5
    billingAddressPostcode
    billingCountryCode
    billingDeliveryPointIdentifier
    splitBillingAddress
    address {
      ...RichAddressTypeFragment
    }
    portfolio {
      ...PortfolioTypeFragment
    }
    ledgers {
      ...LedgerTypeFragment
    }
    metadata {
      ...MetadataFragment
    }
    canRequestRefund
    requestRefundEligibility {
      ...RequestRefundEligibilityTypeFragment
    }
    payments {
      ...AccountPaymentConnectionTypeConnectionFragment
    }
    repayments {
      ...AccountRepaymentConnectionTypeConnectionFragment
    }
    paymentForecast {
      ...PaymentForecastTypeFragment
    }
    paginatedPaymentForecast {
      ...PaymentForecastConnectionTypeConnectionFragment
    }
    referrals {
      ...ReferralConnectionTypeConnectionFragment
    }
    referralsCreated
    rewards {
      ...RewardTypeFragment
    }
    activeReferralSchemes {
      ...ReferralSchemeTypesFragment
    }
    transactions {
      ...TransactionConnectionTypeConnectionFragment
    }
    provisionalTransactions {
      ...ProvisionalTransactionConnectionTypeConnectionFragment
    }
    annualStatements {
      ...AnnualStatementConnectionTypeConnectionFragment
    }
    bills {
      ...BillConnectionTypeConnectionFragment
    }
    billingOptions {
      ...BillingOptionsTypeFragment
    }
    bill {
      ...BillInterfaceFragment
    }
    directDebitInstructions {
      ...DirectDebitInstructionConnectionTypeConnectionFragment
    }
    events {
      ...AccountEventConnectionTypeConnectionFragment
    }
    applications {
      ...AccountApplicationConnectionTypeConnectionFragment
    }
    accountType
    businessType
    business {
      ...BusinessTypeFragment
    }
    commsDeliveryPreference
    communicationDeliveryPreference
    documentAccessibility
    references {
      ...AccountReferenceTypeFragment
    }
    fileAttachments {
      ...AccountFileAttachmentFragment
    }
    maximumRefund {
      ...MaximumRefundTypeFragment
    }
    campaigns {
      ...AccountCampaignTypeFragment
    }
    isInHardship
    activeHardshipAgreements {
      ...HardshipAgreementTypeFragment
    }
    notes {
      ...AccountNoteTypeFragment
    }
    contributionAgreements {
      ...ContributionAgreementTypeFragment
    }
    debtCollectionProceedings {
      ...DebtCollectionProceedingTypeFragment
    }
    createdAt
    preferredLanguageForComms
    projectedBalance
    shouldReviewPayments
    recommendedBalanceAdjustment
    properties {
      ...PropertyTypeFragment
    }
    electricityAgreements {
      ...ElectricityAgreementTypeFragment
    }
    gasAgreements {
      ...GasAgreementTypeFragment
    }
    warmHomeDiscount {
      ...WarmHomeDiscountFragment
    }
    eligibilityForWarmHomeDiscount {
      ...WarmHomeDiscountEligibilityFragment
    }
    billingPostcode
    canRenewTariff
    trackerTariffDailyPricing {
      ...TrackerTariffDailyPricingFragment
    }
    paymentAdequacy {
      ...PaymentAdequacyTypeFragment
    }
    smets2Interest
    smets2RefusalReason
    greenAccomplishments {
      ...GreenAccomplishmentsTypeFragment
    }
    canChangePayments
    cotReadingWindowDays
    canBeWithdrawn
    currentEstimatedSsd
    earliestPossibleSsd
    latestPossibleSsd
    operationsTeam {
      ...OperationsTeamTypeFragment
    }
    canInputMeterReadingsViaIvr
    hasActiveDunningProcess
    hasActiveCollectionsProceedings
    isEligibleForElectricityReadingIncentive
    isEligibleForGasReadingIncentive
    isInBlockingMigration
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "account": {
      "id": "abc123",
      "number": "abc123",
      "status": "PENDING",
      "paymentSchedules": PaymentScheduleConnectionTypeConnection,
      "users": AccountUserType,
      "brand": "abc123",
      "balance": 1,
      "overdueBalance": 1,
      "urn": "abc123",
      "billingName": "abc123",
      "billingSubName": "abc123",
      "billingEmail": "abc123",
      "billingAddress": "abc123",
      "billingAddressLine1": "abc123",
      "billingAddressLine2": "abc123",
      "billingAddressLine3": "abc123",
      "billingAddressLine4": "abc123",
      "billingAddressLine5": "abc123",
      "billingAddressPostcode": "abc123",
      "billingCountryCode": "abc123",
      "billingDeliveryPointIdentifier": "abc123",
      "splitBillingAddress": ["abc123"],
      "address": RichAddressType,
      "portfolio": PortfolioType,
      "ledgers": [LedgerType],
      "metadata": [Metadata],
      "canRequestRefund": true,
      "requestRefundEligibility": RequestRefundEligibilityType,
      "payments": AccountPaymentConnectionTypeConnection,
      "repayments": AccountRepaymentConnectionTypeConnection,
      "paymentForecast": [PaymentForecastType],
      "paginatedPaymentForecast": PaymentForecastConnectionTypeConnection,
      "referrals": ReferralConnectionTypeConnection,
      "referralsCreated": 1,
      "rewards": [RewardType],
      "activeReferralSchemes": ReferralSchemeTypes,
      "transactions": TransactionConnectionTypeConnection,
      "provisionalTransactions": ProvisionalTransactionConnectionTypeConnection,
      "annualStatements": AnnualStatementConnectionTypeConnection,
      "bills": BillConnectionTypeConnection,
      "billingOptions": BillingOptionsType,
      "bill": BillInterface,
      "directDebitInstructions": DirectDebitInstructionConnectionTypeConnection,
      "events": AccountEventConnectionTypeConnection,
      "applications": AccountApplicationConnectionTypeConnection,
      "accountType": "BUSINESS",
      "businessType": "SOLE_TRADER",
      "business": BusinessType,
      "commsDeliveryPreference": "EMAIL",
      "communicationDeliveryPreference": "abc123",
      "documentAccessibility": "LARGE_PRINT",
      "references": [AccountReferenceType],
      "fileAttachments": [AccountFileAttachment],
      "maximumRefund": MaximumRefundType,
      "campaigns": [AccountCampaignType],
      "isInHardship": true,
      "activeHardshipAgreements": [HardshipAgreementType],
      "notes": [AccountNoteType],
      "contributionAgreements": [ContributionAgreementType],
      "debtCollectionProceedings": [DebtCollectionProceedingType],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "preferredLanguageForComms": "abc123",
      "projectedBalance": 1,
      "shouldReviewPayments": true,
      "recommendedBalanceAdjustment": 1,
      "properties": [PropertyType],
      "electricityAgreements": [ElectricityAgreementType],
      "gasAgreements": [GasAgreementType],
      "warmHomeDiscount": WarmHomeDiscount,
      "eligibilityForWarmHomeDiscount": WarmHomeDiscountEligibility,
      "billingPostcode": "abc123",
      "canRenewTariff": true,
      "trackerTariffDailyPricing": TrackerTariffDailyPricing,
      "paymentAdequacy": PaymentAdequacyType,
      "smets2Interest": "INTERESTED",
      "smets2RefusalReason": "SMETS2_INTEREST_REASON_DO_NOT_OWN_HOME",
      "greenAccomplishments": GreenAccomplishmentsType,
      "canChangePayments": true,
      "cotReadingWindowDays": 1,
      "canBeWithdrawn": true,
      "currentEstimatedSsd": "2020-01-01",
      "earliestPossibleSsd": "2020-01-01",
      "latestPossibleSsd": "2020-01-01",
      "operationsTeam": OperationsTeamType,
      "canInputMeterReadingsViaIvr": true,
      "hasActiveDunningProcess": true,
      "hasActiveCollectionsProceedings": true,
      "isEligibleForElectricityReadingIncentive": true,
      "isEligibleForGasReadingIncentive": true,
      "isInBlockingMigration": true
    }
  }
}

accountChargeReasons

Type:[ChargeReasonType]

Available reasons for use in account charge mutations.

Query

query AccountChargeReasons {
  accountChargeReasons {
    code
    display
    isDeprecated
    isTaxExempt
    isHidden
    group
  }
}

Response

{
  "data": {
    "accountChargeReasons": [
      {
        "code": "abc123",
        "display": "abc123",
        "isDeprecated": true,
        "isTaxExempt": true,
        "isHidden": true,
        "group": "abc123"
      }
    ]
  }
}

accountCreditReasons

Type:[CreditReasonType]

Available reasons for use in account credit mutations.

Query

query AccountCreditReasons {
  accountCreditReasons {
    code
    display
    isDeprecated
    isTaxExempt
    isHidden
    group
  }
}

Response

{
  "data": {
    "accountCreditReasons": [
      {
        "code": "abc123",
        "display": "abc123",
        "isDeprecated": true,
        "isTaxExempt": true,
        "isHidden": true,
        "group": "abc123"
      }
    ]
  }
}

accountIoEligibility

Type:AccountIoEligibility

Determines whether an account is eligible to register devices with Intelligent Octopus.

Arguments

NameDescription

accountNumber (String!)

Account number.

Query

query AccountIoEligibility($accountNumber: String!) {
  accountIoEligibility(accountNumber: $accountNumber) {
    isEligibleForIo
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "accountIoEligibility": {
      "isEligibleForIo": true
    }
  }
}

accountReference

Type:[AccountReferenceType]

List of matching account references.

Arguments

NameDescription

value (String)

Query

query AccountReference($value: String) {
  accountReference(value: $value) {
    namespace
    value
    createdAt
    updatedAt
    account {
      ...AccountTypeFragment
    }
  }
}

Variables

{
  "value": "abc123"
}

Response

{
  "data": {
    "accountReference": [
      {
        "namespace": "abc123",
        "value": "abc123",
        "createdAt": "2020-01-01T00:00:00.000Z",
        "updatedAt": "2020-01-01T00:00:00.000Z",
        "account": AccountType
      }
    ]
  }
}

accountUrls

Type:[AccountUrl]

List URLs for an account.

Arguments

NameDescription

accountNumber (String!)

Query

query AccountUrls($accountNumber: String!) {
  accountUrls(accountNumber: $accountNumber) {
    urlIdentifier
    url
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "accountUrls": [
      {
        "urlIdentifier": "abc123",
        "url": "abc123"
      }
    ]
  }
}

accounts

Type:[AccountType]

Get details about multiple accounts.

Arguments

NameDescription

phoneNumber (String)

A phone number to find accounts associated with.

portfolioNumber (String)

A portfolio number to find accounts associated with.

Query

query Accounts(
  $phoneNumber: String,
  $portfolioNumber: String
) {
  accounts(
    phoneNumber: $phoneNumber,
    portfolioNumber: $portfolioNumber
  ) {
    id
    number
    status
    paymentSchedules {
      ...PaymentScheduleConnectionTypeConnectionFragment
    }
    users {
      ...AccountUserTypeFragment
    }
    brand
    balance
    overdueBalance
    urn
    billingName
    billingSubName
    billingEmail
    billingAddress
    billingAddressLine1
    billingAddressLine2
    billingAddressLine3
    billingAddressLine4
    billingAddressLine5
    billingAddressPostcode
    billingCountryCode
    billingDeliveryPointIdentifier
    splitBillingAddress
    address {
      ...RichAddressTypeFragment
    }
    portfolio {
      ...PortfolioTypeFragment
    }
    ledgers {
      ...LedgerTypeFragment
    }
    metadata {
      ...MetadataFragment
    }
    canRequestRefund
    requestRefundEligibility {
      ...RequestRefundEligibilityTypeFragment
    }
    payments {
      ...AccountPaymentConnectionTypeConnectionFragment
    }
    repayments {
      ...AccountRepaymentConnectionTypeConnectionFragment
    }
    paymentForecast {
      ...PaymentForecastTypeFragment
    }
    paginatedPaymentForecast {
      ...PaymentForecastConnectionTypeConnectionFragment
    }
    referrals {
      ...ReferralConnectionTypeConnectionFragment
    }
    referralsCreated
    rewards {
      ...RewardTypeFragment
    }
    activeReferralSchemes {
      ...ReferralSchemeTypesFragment
    }
    transactions {
      ...TransactionConnectionTypeConnectionFragment
    }
    provisionalTransactions {
      ...ProvisionalTransactionConnectionTypeConnectionFragment
    }
    annualStatements {
      ...AnnualStatementConnectionTypeConnectionFragment
    }
    bills {
      ...BillConnectionTypeConnectionFragment
    }
    billingOptions {
      ...BillingOptionsTypeFragment
    }
    bill {
      ...BillInterfaceFragment
    }
    directDebitInstructions {
      ...DirectDebitInstructionConnectionTypeConnectionFragment
    }
    events {
      ...AccountEventConnectionTypeConnectionFragment
    }
    applications {
      ...AccountApplicationConnectionTypeConnectionFragment
    }
    accountType
    businessType
    business {
      ...BusinessTypeFragment
    }
    commsDeliveryPreference
    communicationDeliveryPreference
    documentAccessibility
    references {
      ...AccountReferenceTypeFragment
    }
    fileAttachments {
      ...AccountFileAttachmentFragment
    }
    maximumRefund {
      ...MaximumRefundTypeFragment
    }
    campaigns {
      ...AccountCampaignTypeFragment
    }
    isInHardship
    activeHardshipAgreements {
      ...HardshipAgreementTypeFragment
    }
    notes {
      ...AccountNoteTypeFragment
    }
    contributionAgreements {
      ...ContributionAgreementTypeFragment
    }
    debtCollectionProceedings {
      ...DebtCollectionProceedingTypeFragment
    }
    createdAt
    preferredLanguageForComms
    projectedBalance
    shouldReviewPayments
    recommendedBalanceAdjustment
    properties {
      ...PropertyTypeFragment
    }
    electricityAgreements {
      ...ElectricityAgreementTypeFragment
    }
    gasAgreements {
      ...GasAgreementTypeFragment
    }
    warmHomeDiscount {
      ...WarmHomeDiscountFragment
    }
    eligibilityForWarmHomeDiscount {
      ...WarmHomeDiscountEligibilityFragment
    }
    billingPostcode
    canRenewTariff
    trackerTariffDailyPricing {
      ...TrackerTariffDailyPricingFragment
    }
    paymentAdequacy {
      ...PaymentAdequacyTypeFragment
    }
    smets2Interest
    smets2RefusalReason
    greenAccomplishments {
      ...GreenAccomplishmentsTypeFragment
    }
    canChangePayments
    cotReadingWindowDays
    canBeWithdrawn
    currentEstimatedSsd
    earliestPossibleSsd
    latestPossibleSsd
    operationsTeam {
      ...OperationsTeamTypeFragment
    }
    canInputMeterReadingsViaIvr
    hasActiveDunningProcess
    hasActiveCollectionsProceedings
    isEligibleForElectricityReadingIncentive
    isEligibleForGasReadingIncentive
    isInBlockingMigration
  }
}

Variables

{
  "phoneNumber": "abc123",
  "portfolioNumber": "abc123"
}

Response

{
  "data": {
    "accounts": [
      {
        "id": "abc123",
        "number": "abc123",
        "status": "PENDING",
        "paymentSchedules": PaymentScheduleConnectionTypeConnection,
        "users": AccountUserType,
        "brand": "abc123",
        "balance": 1,
        "overdueBalance": 1,
        "urn": "abc123",
        "billingName": "abc123",
        "billingSubName": "abc123",
        "billingEmail": "abc123",
        "billingAddress": "abc123",
        "billingAddressLine1": "abc123",
        "billingAddressLine2": "abc123",
        "billingAddressLine3": "abc123",
        "billingAddressLine4": "abc123",
        "billingAddressLine5": "abc123",
        "billingAddressPostcode": "abc123",
        "billingCountryCode": "abc123",
        "billingDeliveryPointIdentifier": "abc123",
        "splitBillingAddress": ["abc123"],
        "address": RichAddressType,
        "portfolio": PortfolioType,
        "ledgers": [LedgerType],
        "metadata": [Metadata],
        "canRequestRefund": true,
        "requestRefundEligibility": RequestRefundEligibilityType,
        "payments": AccountPaymentConnectionTypeConnection,
        "repayments": AccountRepaymentConnectionTypeConnection,
        "paymentForecast": [PaymentForecastType],
        "paginatedPaymentForecast": PaymentForecastConnectionTypeConnection,
        "referrals": ReferralConnectionTypeConnection,
        "referralsCreated": 1,
        "rewards": [RewardType],
        "activeReferralSchemes": ReferralSchemeTypes,
        "transactions": TransactionConnectionTypeConnection,
        "provisionalTransactions": ProvisionalTransactionConnectionTypeConnection,
        "annualStatements": AnnualStatementConnectionTypeConnection,
        "bills": BillConnectionTypeConnection,
        "billingOptions": BillingOptionsType,
        "bill": BillInterface,
        "directDebitInstructions": DirectDebitInstructionConnectionTypeConnection,
        "events": AccountEventConnectionTypeConnection,
        "applications": AccountApplicationConnectionTypeConnection,
        "accountType": "BUSINESS",
        "businessType": "SOLE_TRADER",
        "business": BusinessType,
        "commsDeliveryPreference": "EMAIL",
        "communicationDeliveryPreference": "abc123",
        "documentAccessibility": "LARGE_PRINT",
        "references": [AccountReferenceType],
        "fileAttachments": [AccountFileAttachment],
        "maximumRefund": MaximumRefundType,
        "campaigns": [AccountCampaignType],
        "isInHardship": true,
        "activeHardshipAgreements": [HardshipAgreementType],
        "notes": [AccountNoteType],
        "contributionAgreements": [ContributionAgreementType],
        "debtCollectionProceedings": [DebtCollectionProceedingType],
        "createdAt": "2020-01-01T00:00:00.000Z",
        "preferredLanguageForComms": "abc123",
        "projectedBalance": 1,
        "shouldReviewPayments": true,
        "recommendedBalanceAdjustment": 1,
        "properties": [PropertyType],
        "electricityAgreements": [ElectricityAgreementType],
        "gasAgreements": [GasAgreementType],
        "warmHomeDiscount": WarmHomeDiscount,
        "eligibilityForWarmHomeDiscount": WarmHomeDiscountEligibility,
        "billingPostcode": "abc123",
        "canRenewTariff": true,
        "trackerTariffDailyPricing": TrackerTariffDailyPricing,
        "paymentAdequacy": PaymentAdequacyType,
        "smets2Interest": "INTERESTED",
        "smets2RefusalReason": "SMETS2_INTEREST_REASON_DO_NOT_OWN_HOME",
        "greenAccomplishments": GreenAccomplishmentsType,
        "canChangePayments": true,
        "cotReadingWindowDays": 1,
        "canBeWithdrawn": true,
        "currentEstimatedSsd": "2020-01-01",
        "earliestPossibleSsd": "2020-01-01",
        "latestPossibleSsd": "2020-01-01",
        "operationsTeam": OperationsTeamType,
        "canInputMeterReadingsViaIvr": true,
        "hasActiveDunningProcess": true,
        "hasActiveCollectionsProceedings": true,
        "isEligibleForElectricityReadingIncentive": true,
        "isEligibleForGasReadingIncentive": true,
        "isInBlockingMigration": true
      }
    ]
  }
}

activeAffiliateReferralScheme

Type:ReferralSchemeType

Return the current active referral reward scheme of a given affiliate organisation, if any exists.

Arguments

NameDescription

subdomain (String!)

The affiliate link subdomain.

Query

query ActiveAffiliateReferralScheme($subdomain: String!) {
  activeAffiliateReferralScheme(subdomain: $subdomain) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
  }
}

Variables

{
  "subdomain": "abc123"
}

Response

{
  "data": {
    "activeAffiliateReferralScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123"
    }
  }
}

activeCampaignOffers

Type:[CampaignType]

All active campaigns with offers for the given account.

Arguments

NameDescription

accountNumber (String!)

Query

query ActiveCampaignOffers($accountNumber: String!) {
  activeCampaignOffers(accountNumber: $accountNumber) {
    name
    slug
    expiryDate
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "activeCampaignOffers": [
      {
        "name": "abc123",
        "slug": "abc123",
        "expiryDate": "2020-01-01"
      }
    ]
  }
}

activeDomesticSignupRewardScheme

Type:ReferralSchemeType

Return the current active signup referral reward scheme with the given code, if any exists.

Query

query ActiveDomesticSignupRewardScheme {
  activeDomesticSignupRewardScheme {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
  }
}

Response

{
  "data": {
    "activeDomesticSignupRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123"
    }
  }
}

Arguments

NameDescription

postcode (String!)

searchDomesticOnly (Boolean)

useDes (Boolean)

before (String)

after (String)

first (Int)

last (Int)

Query

query Addresses(
  $postcode: String!,
  $searchDomesticOnly: Boolean,
  $useDes: Boolean,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  addresses(
    postcode: $postcode,
    searchDomesticOnly: $searchDomesticOnly,
    useDes: $useDes,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AddressConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "postcode": "abc123",
  "searchDomesticOnly": true,
  "useDes": true,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "addresses": {
      "pageInfo": PageInfo,
      "edges": AddressConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

mpxn (String!)

startAt (DateTime!)

endAt (DateTime!)

before (String)

after (String)

first (Int)

last (Int)

Query

query ApplicableRates(
  $accountNumber: String!,
  $mpxn: String!,
  $startAt: DateTime!,
  $endAt: DateTime!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  applicableRates(
    accountNumber: $accountNumber,
    mpxn: $mpxn,
    startAt: $startAt,
    endAt: $endAt,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ApplicableRateConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "mpxn": "abc123",
  "startAt": "2020-01-01T00:00:00.000Z",
  "endAt": "2020-01-01T00:00:00.000Z",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "applicableRates": {
      "pageInfo": PageInfo,
      "edges": ApplicableRateConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

areBlanketsAvailable

Type:Boolean

Whether there are still blankets available.

Query

query AreBlanketsAvailable {
  areBlanketsAvailable
}

Response

{
  "data": {
    "areBlanketsAvailable": true
  }
}

areDiscountCodesAvailable

Type:Boolean

Whether or not there are remaining discount codes available at the time of querying.

Query

query AreDiscountCodesAvailable {
  areDiscountCodesAvailable
}

Response

{
  "data": {
    "areDiscountCodesAvailable": true
  }
}

autoTopupConfigs

Type:AutoTopupConfigConnectionTypeConnection

Get the auto top-up configs for a device. Ordered by effective from date, latest first.

Arguments

NameDescription

deviceId (String!)

Target device ID, e.g. 'A1-BC-D2-00-01-23-EF-4G'.

accountNumber (String!)

Target account number, e.g. 'A-A1B2C3D4'.

effectiveFrom (DateTime)

The datetime from which the auto top-up is effective, e.g. '2024-01-01T00:00:00+00:00'.

before (String)

after (String)

first (Int)

last (Int)

Query

query AutoTopupConfigs(
  $deviceId: String!,
  $accountNumber: String!,
  $effectiveFrom: DateTime,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  autoTopupConfigs(
    deviceId: $deviceId,
    accountNumber: $accountNumber,
    effectiveFrom: $effectiveFrom,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AutoTopupConfigConnectionTypeEdgeFragment
    }
  }
}

Variables

{
  "deviceId": "abc123",
  "accountNumber": "abc123",
  "effectiveFrom": "2020-01-01T00:00:00.000Z",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "autoTopupConfigs": {
      "pageInfo": PageInfo,
      "edges": AutoTopupConfigConnectionTypeEdge
    }
  }
}

autoTopupTriggers

Type:AutoTopupTriggerConnectionTypeConnection

Get auto top-up trigger events for an auto topup config. Ordered by triggered_at datetime, latest first.

Arguments

NameDescription

autoTopupConfigId (ID!)

Target auto top-up config ID, e.g. '123'.

triggersFrom (DateTime)

Filter by datetime (inclusive) from which trigger events have occurred, e.g. '2024-01-01T00:00:00+00:00'.

status (SmartDeviceAutoTopupTriggerStatus)

Filter by status of the auto top-up trigger event.

source (SmartDeviceAutoTopupTriggerSources)

Filter by source of the auto top-up trigger event.

failureReason (SmartDeviceAutoTopupTriggerFailureReasons)

Filter by failure reason of the auto top-up trigger event.

before (String)

after (String)

first (Int)

last (Int)

Query

query AutoTopupTriggers(
  $autoTopupConfigId: ID!,
  $triggersFrom: DateTime,
  $status: SmartDeviceAutoTopupTriggerStatus,
  $source: SmartDeviceAutoTopupTriggerSources,
  $failureReason: SmartDeviceAutoTopupTriggerFailureReasons,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  autoTopupTriggers(
    autoTopupConfigId: $autoTopupConfigId,
    triggersFrom: $triggersFrom,
    status: $status,
    source: $source,
    failureReason: $failureReason,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AutoTopupTriggerConnectionTypeEdgeFragment
    }
  }
}

Variables

{
  "autoTopupConfigId": "abc123",
  "triggersFrom": "2020-01-01T00:00:00.000Z",
  "status": "INITIATED",
  "source": "LOW_CREDIT_BALANCE",
  "failureReason": "NO_IMPORT_METER",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "autoTopupTriggers": {
      "pageInfo": PageInfo,
      "edges": AutoTopupTriggerConnectionTypeEdge
    }
  }
}

availableProductFromDisplayName

Type:EnergyProductType

Available energy product, whose display name has the given prefix.

Arguments

NameDescription

displayName (String!)

Display name of the product.

Query

query AvailableProductFromDisplayName($displayName: String!) {
  availableProductFromDisplayName(displayName: $displayName) {
    id
    fullName
    displayName
    description
    availableFrom
    availableTo
    isHidden
    code
    direction
    notes
    isVariable
    isGreen
    isBusiness
    isChargedHalfHourly
    isPrepay
    isDefault
    isOccupier
    term
    tariffs {
      ...EnergyTariffConnectionTypeConnectionFragment
    }
    isAvailable
    isUnavailable
    isFixed
    isDomestic
    includesEpgReduction
    exitFees
    exitFeesType
    tags
  }
}

Variables

{
  "displayName": "abc123"
}

Response

{
  "data": {
    "availableProductFromDisplayName": {
      "id": "abc123",
      "fullName": "abc123",
      "displayName": "abc123",
      "description": "abc123",
      "availableFrom": "2020-01-01T00:00:00.000Z",
      "availableTo": "2020-01-01T00:00:00.000Z",
      "isHidden": true,
      "code": "abc123",
      "direction": "IMPORT",
      "notes": "abc123",
      "isVariable": true,
      "isGreen": true,
      "isBusiness": true,
      "isChargedHalfHourly": true,
      "isPrepay": true,
      "isDefault": true,
      "isOccupier": true,
      "term": 1,
      "tariffs": EnergyTariffConnectionTypeConnection,
      "isAvailable": true,
      "isUnavailable": true,
      "isFixed": true,
      "isDomestic": true,
      "includesEpgReduction": true,
      "exitFees": 1,
      "exitFeesType": "abc123",
      "tags": ["abc123"]
    }
  }
}

availableProductsForMeterPoint

Type:[MPxNProductType]

A list of product codes that are the currently available products for a meter point.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

mpxns ([String]!)

A list of MPxNs.

availableAt (DateTime!)

Query

query AvailableProductsForMeterPoint(
  $accountNumber: String!,
  $mpxns: [String]!,
  $availableAt: DateTime!
) {
  availableProductsForMeterPoint(
    accountNumber: $accountNumber,
    mpxns: $mpxns,
    availableAt: $availableAt
  ) {
    mpxn
    products {
      ...EnergyProductTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "mpxns": "abc123",
  "availableAt": "2020-01-01T00:00:00.000Z"
}

Response

{
  "data": {
    "availableProductsForMeterPoint": [
      {
        "mpxn": "abc123",
        "products": [EnergyProductType]
      }
    ]
  }
}

backendScreen

Type:BackendScreenType

Get mobile screen details to render.

Arguments

NameDescription

screenId (ID!)

The ID of the screen to return.

params ([BackendScreenParamInputType])

List of key-value pairs (strings) to pass as parameters to the screen.

maxVersionSupported (Int)

The maximum version of backend screens supported by the client.

Query

query BackendScreen(
  $screenId: ID!,
  $params: [BackendScreenParamInputType],
  $maxVersionSupported: Int
) {
  backendScreen(
    screenId: $screenId,
    params: $params,
    maxVersionSupported: $maxVersionSupported
  ) {
    ... on ComponentListType {
      ...ComponentListTypeFragment
    }
    ... on GenericBackendScreen {
      ...GenericBackendScreenFragment
    }
    ... on Dashboard {
      ...DashboardFragment
    }
  }
}

Variables

{
  "screenId": "abc123",
  "params": BackendScreenParamInputType,
  "maxVersionSupported": 1
}

Response

{
  "data": {
    "backendScreen": ComponentListType
  }
}

backendScreenEventIds

Type:[String]

Get all registered backend screen event IDs.

Query

query BackendScreenEventIds {
  backendScreenEventIds
}

Response

{
  "data": {
    "backendScreenEventIds": ["abc123"]
  }
}

backendScreenIds

Type:[String]

Get all registered backend screen IDs.

Query

query BackendScreenIds {
  backendScreenIds
}

Response

{
  "data": {
    "backendScreenIds": ["abc123"]
  }
}

balanceForecast

Type:BalanceForecastType

The balance forecast for an account.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

Query

query BalanceForecast($accountNumber: String!) {
  balanceForecast(accountNumber: $accountNumber) {
    isAvailable
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "balanceForecast": {
      "isAvailable": true
    }
  }
}

batteryDevice

Type:BatteryDeviceType

The currently active battery device.

Arguments

NameDescription

accountNumber (String!)

propertyId (Int!)

Query

query BatteryDevice(
  $accountNumber: String!,
  $propertyId: Int!
) {
  batteryDevice(
    accountNumber: $accountNumber,
    propertyId: $propertyId
  ) {
    krakenflexDeviceId
    deviceType
    provider
    params {
      ...BatteryParamsTypeFragment
    }
    deviceStatus {
      ...DeviceStatusTypeFragment
    }
    chargingPreferences {
      ...BatteryChargingPreferencesTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "propertyId": 1
}

Response

{
  "data": {
    "batteryDevice": {
      "krakenflexDeviceId": "abc123",
      "deviceType": "BATTERIES",
      "provider": "DAIKIN",
      "params": BatteryParamsType,
      "deviceStatus": DeviceStatusType,
      "chargingPreferences": BatteryChargingPreferencesType
    }
  }
}

batteryVariants

Type:[BatteryVariantsType]

All supported batteries and their details.

Arguments

NameDescription

make (String)

Only return batteries of a specific make.

Query

query BatteryVariants($make: String) {
  batteryVariants(make: $make) {
    make
    models {
      ...BatteryVariantModelsTypeFragment
    }
  }
}

Variables

{
  "make": "abc123"
}

Response

{
  "data": {
    "batteryVariants": [
      {
        "make": "abc123",
        "models": [BatteryVariantModelsType]
      }
    ]
  }
}

carbonOffset

Type:CarbonOffsetType

The high level type for Carbon Emission Offsets.

Query

query CarbonOffset {
  carbonOffset {
    transportModes {
      ...CarbonOffsetTransportModeTypeFragment
    }
    maxHoursToOffset
    calculateCarbonOffset {
      ...CarbonOffsetCalculationResultTypeFragment
    }
  }
}

Response

{
  "data": {
    "carbonOffset": {
      "transportModes": [CarbonOffsetTransportModeType],
      "maxHoursToOffset": 1,
      "calculateCarbonOffset": CarbonOffsetCalculationResultType
    }
  }
}

caredForAccounts

Type:[String!]!

The account numbers of the accounts that the user is caring for.

Query

query CaredForAccounts {
  caredForAccounts
}

Response

{
  "data": {
    "caredForAccounts": "abc123"
  }
}

chargePointDevices

Type:[ChargePointDevicesType]

All charge point devices.

Query

query ChargePointDevices {
  chargePointDevices {
    make
    models {
      ...ChargePointModelsTypeFragment
    }
  }
}

Response

{
  "data": {
    "chargePointDevices": [
      {
        "make": "abc123",
        "models": [ChargePointModelsType]
      }
    ]
  }
}

chargePointVariants

Type:[ChargePointVariantType]

All charge points variants.

Query

query ChargePointVariants {
  chargePointVariants {
    make
    models {
      ...ChargePointVariantModelTypeFragment
    }
  }
}

Response

{
  "data": {
    "chargePointVariants": [
      {
        "make": "abc123",
        "models": [ChargePointVariantModelType]
      }
    ]
  }
}

charityDonationHistory

Type:CharityDonationHistoryType

Data concerning accounts charity donations.

Arguments

NameDescription

accountNumber (String!)

Query

query CharityDonationHistory($accountNumber: String!) {
  charityDonationHistory(accountNumber: $accountNumber) {
    totalDonatedAmount
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "charityDonationHistory": {
      "totalDonatedAmount": 1
    }
  }
}

completedDispatches

Type:[UpsideDispatchType]

All completed device dispatches 12 hours behind, in reverse time order.

Arguments

NameDescription

accountNumber (String!)

Query

query CompletedDispatches($accountNumber: String!) {
  completedDispatches(accountNumber: $accountNumber) {
    start
    end
    startDt
    endDt
    deltaKwh
    delta
    meta {
      ...UpsideDispatchMetaTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "completedDispatches": [
      {
        "start": "2020-01-01T00:00:00.000Z",
        "end": "2020-01-01T00:00:00.000Z",
        "startDt": "abc123",
        "endDt": "abc123",
        "deltaKwh": 1,
        "delta": 1.0,
        "meta": UpsideDispatchMetaType
      }
    ]
  }
}

consumptionEstimates

Type:ConsumptionEstimates

Consumption estimates based on ofgem statistics.

Query

query ConsumptionEstimates {
  consumptionEstimates {
    low {
      ...ConsumptionEstimateFragment
    }
    medium {
      ...ConsumptionEstimateFragment
    }
    high {
      ...ConsumptionEstimateFragment
    }
  }
}

Response

{
  "data": {
    "consumptionEstimates": {
      "low": ConsumptionEstimate,
      "medium": ConsumptionEstimate,
      "high": ConsumptionEstimate
    }
  }
}

contributionSchemes

Type:[ContributionSchemeType]

Get contribution schemes.

Query

query ContributionSchemes {
  contributionSchemes {
    id
    code
    displayName
    taxable
    acceptingContributions
  }
}

Response

{
  "data": {
    "contributionSchemes": [
      {
        "id": "abc123",
        "code": "abc123",
        "displayName": "abc123",
        "taxable": true,
        "acceptingContributions": true
      }
    ]
  }
}

controllerEuids

Type:[String]

Heat pump controller EUIDs associated with an account.

Arguments

NameDescription

accountNumber (String)

Query

query ControllerEuids($accountNumber: String) {
  controllerEuids(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "controllerEuids": ["abc123"]
  }
}

costOfCharge

Type:[CostOfChargeType]

Aggregated cost of charge for an EV device.

Arguments

NameDescription

accountNumber (String!)

frequency (DataFrequency!)

Frequency by day, week, month or year.

reportDate (Date)

The date up to which data should be relative to.

startDate (Date)

The start date of the results required. Overrides report date (end date) if provided.

Query

query CostOfCharge(
  $accountNumber: String!,
  $frequency: DataFrequency!,
  $reportDate: Date,
  $startDate: Date
) {
  costOfCharge(
    accountNumber: $accountNumber,
    frequency: $frequency,
    reportDate: $reportDate,
    startDate: $startDate
  ) {
    costOfChargeId
    krakenflexDeviceId
    reportDate
    isSmartCharge
    totalConsumption
    totalCostExclTax
    totalCostInclTax
  }
}

Variables

{
  "accountNumber": "abc123",
  "frequency": "DAILY",
  "reportDate": "2020-01-01",
  "startDate": "2020-01-01"
}

Response

{
  "data": {
    "costOfCharge": [
      {
        "costOfChargeId": "abc123",
        "krakenflexDeviceId": "abc123",
        "reportDate": "2020-01-01",
        "isSmartCharge": true,
        "totalConsumption": 1.0,
        "totalCostExclTax": 1.0,
        "totalCostInclTax": 1.0
      }
    ]
  }
}

costOfUsage

Type:CostOfUsageType

Cost of usage recorded by the meter.

Arguments

NameDescription

accountNumber (String)

Account number.

meterId (String)

The electricity or gas meter ID.

fuelType (FuelType)

The energy type, i.e. ELECTRICITY or GAS.

startAt (DateTime)

Datetime the data should be queried from.

grouping (ConsumptionGroupings!)

Aggregate cost according to this grouping.

timezone (String)

Timezone to use for grouping.

Query

query CostOfUsage(
  $accountNumber: String,
  $meterId: String,
  $fuelType: FuelType,
  $startAt: DateTime,
  $grouping: ConsumptionGroupings!,
  $timezone: String
) {
  costOfUsage(
    accountNumber: $accountNumber,
    meterId: $meterId,
    fuelType: $fuelType,
    startAt: $startAt,
    grouping: $grouping,
    timezone: $timezone
  ) {
    costEnabled
    direction
    details {
      ...CostOfUsageConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "meterId": "abc123",
  "fuelType": "ELECTRICITY",
  "startAt": "2020-01-01T00:00:00.000Z",
  "grouping": "QUARTER_HOUR",
  "timezone": "abc123"
}

Response

{
  "data": {
    "costOfUsage": {
      "costEnabled": true,
      "direction": "abc123",
      "details": CostOfUsageConnectionTypeConnection
    }
  }
}

dashboardScreen

Type:Dashboard

Get a dashboard screen to render in the form of a json list of sections containing cards or grouped cards each with an order attribute.

Arguments

NameDescription

dashboardId (ID!)

The ID of the dashboard type screen to return.

accountNumber (String!)

The account number of the user.

maxVersionSupported (Int!)

The maximum version of dahshboard type screens supported by the client.

ledgerId (String)

The ledger id associated to the account.

propertyId (String)

The property id associated to the account.

params ([BackendScreenParamInputType])

List of key-value pairs (strings) to pass as parameters to the screen.

Query

query DashboardScreen(
  $dashboardId: ID!,
  $accountNumber: String!,
  $maxVersionSupported: Int!,
  $ledgerId: String,
  $propertyId: String,
  $params: [BackendScreenParamInputType]
) {
  dashboardScreen(
    dashboardId: $dashboardId,
    accountNumber: $accountNumber,
    maxVersionSupported: $maxVersionSupported,
    ledgerId: $ledgerId,
    propertyId: $propertyId,
    params: $params
  ) {
    id
    typename
    dashboardItems {
      ...SectionTypeFragment
    }
    serialisedDashboardItems
  }
}

Variables

{
  "dashboardId": "abc123",
  "accountNumber": "abc123",
  "maxVersionSupported": 1,
  "ledgerId": "abc123",
  "propertyId": "abc123",
  "params": BackendScreenParamInputType
}

Response

{
  "data": {
    "dashboardScreen": {
      "id": "abc123",
      "typename": "abc123",
      "dashboardItems": SectionType,
      "serialisedDashboardItems": "abc123"
    }
  }
}

defaultPaymentInstruction

Type:PaymentInstructionType

Get the default payment instruction for the account's main ledger.

Arguments

NameDescription

accountNumber (String!)

The account number.

instructionType (PaymentType)

Provide an option to get either a CARD or DIRECT_DEBIT instruction.

Query

query DefaultPaymentInstruction(
  $accountNumber: String!,
  $instructionType: PaymentType
) {
  defaultPaymentInstruction(
    accountNumber: $accountNumber,
    instructionType: $instructionType
  ) {
    id
    status
    sortCode
    iban
    accountHolder
    instructionType
    cardPaymentNetwork
    cardExpiryMonth
    cardExpiryYear
    bankCode
    accountType
    validFrom
    vendor
    cardNumber
    cardType
    maskedAccountIdentifier
  }
}

Variables

{
  "accountNumber": "abc123",
  "instructionType": "BPAY"
}

Response

{
  "data": {
    "defaultPaymentInstruction": {
      "id": "abc123",
      "status": "abc123",
      "sortCode": "abc123",
      "iban": "abc123",
      "accountHolder": "abc123",
      "instructionType": "abc123",
      "cardPaymentNetwork": "abc123",
      "cardExpiryMonth": 1,
      "cardExpiryYear": 1,
      "bankCode": "abc123",
      "accountType": "abc123",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "vendor": "abc123",
      "cardNumber": "abc123",
      "cardType": "abc123",
      "maskedAccountIdentifier": "abc123"
    }
  }
}

defaultRawScore

Type:Int

Get default raw score for a customer feedback form.

Arguments

NameDescription

formId (Int!)

Query

query DefaultRawScore($formId: Int!) {
  defaultRawScore(formId: $formId)
}

Variables

{
  "formId": 1
}

Response

{
  "data": {
    "defaultRawScore": 1
  }
}

devices

Type:[SmartFlexDeviceInterface!]

A list of devices registered to an account.

Arguments

NameDescription

accountNumber (String!)

The account number, e.g. A-12345678.

propertyId (ID)

Only list devices registered to this property.

deviceId (String)

Only list the device with this ID.

Query

query Devices(
  $accountNumber: String!,
  $propertyId: ID,
  $deviceId: String
) {
  devices(
    accountNumber: $accountNumber,
    propertyId: $propertyId,
    deviceId: $deviceId
  ) {
    id
    name
    deviceType
    provider
    status {
      ...SmartFlexDeviceStatusInterfaceFragment
    }
    alerts {
      ...SmartFlexDeviceAlertInterfaceFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "propertyId": "abc123",
  "deviceId": "abc123"
}

Response

{
  "data": {
    "devices": [
      {
        "id": "abc123",
        "name": "abc123",
        "deviceType": "BATTERIES",
        "provider": "DAIKIN",
        "status": SmartFlexDeviceStatusInterface,
        "alerts": SmartFlexDeviceAlertInterface
      }
    ]
  }
}

discountCode

Type:String

The discount code for this account, if one exists.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

Query

query DiscountCode($accountNumber: String!) {
  discountCode(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "discountCode": "abc123"
  }
}

doesAccountMeetVulnerabilityCriteria

Type:Boolean

Whether the account is meets the vulnerability criteria to receive a blanket.

Arguments

NameDescription

accountNumber (String!)

The account number to check.

Query

query DoesAccountMeetVulnerabilityCriteria($accountNumber: String!) {
  doesAccountMeetVulnerabilityCriteria(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "doesAccountMeetVulnerabilityCriteria": true
  }
}

domesticAccountReferralRewardScheme

Type:ReferralSchemeType

Return a referral reward scheme for the given account referral code.

Arguments

NameDescription

code (String!)

Friend referral code.

Query

query DomesticAccountReferralRewardScheme($code: String!) {
  domesticAccountReferralRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "domesticAccountReferralRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123"
    }
  }
}

domesticJoiningRewardScheme

Type:ReferralSchemeType

Return a joining reward scheme with the given code, if it's active. A joining reward can be a signup reward or a promotional reward.

Arguments

NameDescription

code (String!)

Reward code for the scheme.

Query

query DomesticJoiningRewardScheme($code: String!) {
  domesticJoiningRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "domesticJoiningRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123"
    }
  }
}

domesticSignupRewardScheme

Type:ReferralSchemeType

Return a signup referral reward scheme with the given code, if it's active.

Arguments

NameDescription

code (String!)

Reward code for the scheme.

Query

query DomesticSignupRewardScheme($code: String!) {
  domesticSignupRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "domesticSignupRewardScheme": {
      "referralUrl": "abc123",
      "referralDisplayUrl": "abc123",
      "referrerRewardAmount": 1,
      "referredRewardAmount": 1,
      "combinedRewardAmount": 1,
      "loyaltyPointsBonus": 1,
      "canBeReferred": true,
      "code": "abc123",
      "referrerGivenName": "abc123",
      "referrerFamilyName": "abc123",
      "schemeType": "abc123"
    }
  }
}

earliestPossibleDirectDebitPaymentDate

Type:EarliestPossibleDirectDebitPaymentDate

Earliest possible payment date from today for which the first direct debit payment can be made.

Query

query EarliestPossibleDirectDebitPaymentDate {
  earliestPossibleDirectDebitPaymentDate {
    earliestPossibleDirectDebitPaymentDate
  }
}

Response

{
  "data": {
    "earliestPossibleDirectDebitPaymentDate": {
      "earliestPossibleDirectDebitPaymentDate": "2020-01-01"
    }
  }
}

electricVehicles

Type:[ElectricVehicleType]

All electric vehicle types and their details.

Arguments

NameDescription

make (String)

Only return vehicle types for the specified make.

supportedProvider (ProviderChoices)

Only return vehicle types supported by the specified provider, e.g. Tesla.

isIntegrationLive (Boolean)

Only return vehicles that are currently integrated.

Query

query ElectricVehicles(
  $make: String,
  $supportedProvider: ProviderChoices,
  $isIntegrationLive: Boolean
) {
  electricVehicles(
    make: $make,
    supportedProvider: $supportedProvider,
    isIntegrationLive: $isIntegrationLive
  ) {
    make
    models {
      ...ElectricVehicleModelTypeFragment
    }
  }
}

Variables

{
  "make": "abc123",
  "supportedProvider": "DAIKIN",
  "isIntegrationLive": true
}

Response

{
  "data": {
    "electricVehicles": [
      {
        "make": "abc123",
        "models": [ElectricVehicleModelType]
      }
    ]
  }
}

electricityAgreement

Type:AgreementInterface

Get an electricity agreement.

This field requires the Authorization header to be set.

Arguments

NameDescription

id (ID!)

Query

query ElectricityAgreement($id: ID!) {
  electricityAgreement(id: $id) {
    id
    validFrom
    validTo
    agreedFrom
    agreedTo
    isRevoked
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "electricityAgreement": {
      "id": 1,
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "agreedFrom": "2020-01-01T00:00:00.000Z",
      "agreedTo": "2020-01-01T00:00:00.000Z",
      "isRevoked": true
    }
  }
}

electricityMeterReadings

Type:ElectricityMeterReadingConnectionTypeConnection

Fetch electricity meter readings for a given account and meter

This field is a connection type. Connections are used to implement cursor based pagination.

This field requires the Authorization header to be set.

Arguments

NameDescription

accountNumber (String!)

meterId (String!)

eventTypes ([MeterReadingEventType])

before (String)

after (String)

first (Int)

last (Int)

Query

query ElectricityMeterReadings(
  $accountNumber: String!,
  $meterId: String!,
  $eventTypes: [MeterReadingEventType],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  electricityMeterReadings(
    accountNumber: $accountNumber,
    meterId: $meterId,
    eventTypes: $eventTypes,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...ElectricityMeterReadingConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "meterId": "abc123",
  "eventTypes": "CUSTOMER",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "electricityMeterReadings": {
      "pageInfo": PageInfo,
      "edges": ElectricityMeterReadingConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

mpan (String!)

serialNumber (String!)

Query

query ElectricityPrepayLedgers(
  $accountNumber: String!,
  $mpan: String!,
  $serialNumber: String!
) {
  electricityPrepayLedgers(
    accountNumber: $accountNumber,
    mpan: $mpan,
    serialNumber: $serialNumber
  ) {
    creditLedger {
      ...SupplementaryLedgerTypeFragment
    }
    debtLedger {
      ...SupplementaryLedgerTypeFragment
    }
    paymentLedger {
      ...PrepayPaymentLedgerTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "mpan": "abc123",
  "serialNumber": "abc123"
}

Response

{
  "data": {
    "electricityPrepayLedgers": {
      "creditLedger": SupplementaryLedgerType,
      "debtLedger": SupplementaryLedgerType,
      "paymentLedger": PrepayPaymentLedgerType
    }
  }
}

eligibleDeviceTypes

Type:[KrakenFlexDeviceTypes]

A list of device types that are eligible for registration.

Arguments

NameDescription

accountNumber (String!)

The account number, e.g. A-12345678.

Query

query EligibleDeviceTypes($accountNumber: String!) {
  eligibleDeviceTypes(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "eligibleDeviceTypes": "BATTERIES"
  }
}

embeddedNetwork

Type:EmbeddedNetworkType

Get details about an embedded network.

Arguments

NameDescription

id (ID!)

Query

query EmbeddedNetwork($id: ID!) {
  embeddedNetwork(id: $id) {
    id
    name
    embeddedProperties {
      ...EmbeddedPropertyTypeFragment
    }
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "embeddedNetwork": {
      "id": "abc123",
      "name": "abc123",
      "embeddedProperties": [EmbeddedPropertyType]
    }
  }
}

energyMixData

Type:EnergyMixDataType

The current energy generation mix.

Query

query EnergyMixData {
  energyMixData {
    carbonIntensityIndex
  }
}

Response

{
  "data": {
    "energyMixData": {
      "carbonIntensityIndex": "abc123"
    }
  }
}

energyProduct

Type:EnergyProductType

Get an energy product that matches the given code.

Arguments

NameDescription

code (String!)

Code for the energy product.

Query

query EnergyProduct($code: String!) {
  energyProduct(code: $code) {
    id
    fullName
    displayName
    description
    availableFrom
    availableTo
    isHidden
    code
    direction
    notes
    isVariable
    isGreen
    isBusiness
    isChargedHalfHourly
    isPrepay
    isDefault
    isOccupier
    term
    tariffs {
      ...EnergyTariffConnectionTypeConnectionFragment
    }
    isAvailable
    isUnavailable
    isFixed
    isDomestic
    includesEpgReduction
    exitFees
    exitFeesType
    tags
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "energyProduct": {
      "id": "abc123",
      "fullName": "abc123",
      "displayName": "abc123",
      "description": "abc123",
      "availableFrom": "2020-01-01T00:00:00.000Z",
      "availableTo": "2020-01-01T00:00:00.000Z",
      "isHidden": true,
      "code": "abc123",
      "direction": "IMPORT",
      "notes": "abc123",
      "isVariable": true,
      "isGreen": true,
      "isBusiness": true,
      "isChargedHalfHourly": true,
      "isPrepay": true,
      "isDefault": true,
      "isOccupier": true,
      "term": 1,
      "tariffs": EnergyTariffConnectionTypeConnection,
      "isAvailable": true,
      "isUnavailable": true,
      "isFixed": true,
      "isDomestic": true,
      "includesEpgReduction": true,
      "exitFees": 1,
      "exitFeesType": "abc123",
      "tags": ["abc123"]
    }
  }
}

energyProducts

Type:EnergyProductConnectionTypeConnection

Get all products for a given brand and postcode. The supplied postcode will ensure that there are tariffs available on the product for the GSP.

Arguments

NameDescription

postcode (String!)

Postcode to search energy products for.

brand (String)

Filter by a specific energy brand.

brands ([String])

Filter by these brands.

availability (EnergyProductAvailability)

Filter for available or unavailable products only.

filterBy ([EnergyProductFilters])

Filter by the type of energy product.

before (String)

after (String)

first (Int)

last (Int)

Query

query EnergyProducts(
  $postcode: String!,
  $brand: String,
  $brands: [String],
  $availability: EnergyProductAvailability,
  $filterBy: [EnergyProductFilters],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  energyProducts(
    postcode: $postcode,
    brand: $brand,
    brands: $brands,
    availability: $availability,
    filterBy: $filterBy,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...EnergyProductConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "postcode": "abc123",
  "brand": "abc123",
  "brands": ["abc123"],
  "availability": "AVAILABLE",
  "filterBy": "PREPAY",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "energyProducts": {
      "pageInfo": PageInfo,
      "edges": EnergyProductConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

enodeLinkSession

Type:EnodeLinkSessionType

The user specific Enode link session details.

Arguments

NameDescription

accountNumber (String)

vendor (EnodeVendors)

Query

query EnodeLinkSession(
  $accountNumber: String,
  $vendor: EnodeVendors
) {
  enodeLinkSession(
    accountNumber: $accountNumber,
    vendor: $vendor
  ) {
    linkState
    linkUrl
  }
}

Variables

{
  "accountNumber": "abc123",
  "vendor": "AUDI"
}

Response

{
  "data": {
    "enodeLinkSession": {
      "linkState": "abc123",
      "linkUrl": "abc123"
    }
  }
}

fanClubStatus

Type:[FanClubStatus]

Get current status, historic discounts and future projections for a Fan Club source.

Arguments

NameDescription

accountNumber (String)

propertyId (Int)

Query

query FanClubStatus(
  $accountNumber: String,
  $propertyId: Int
) {
  fanClubStatus(
    accountNumber: $accountNumber,
    propertyId: $propertyId
  ) {
    discountSource
    accountNumbers
    propertyIds
    catchments
    thresholds {
      ...ThresholdFragment
    }
    current {
      ...DiscountDataFragment
    }
    historic {
      ...DiscountDataFragment
    }
    forecast {
      ...DiscountForecastFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "propertyId": 1
}

Response

{
  "data": {
    "fanClubStatus": [
      {
        "discountSource": "abc123",
        "accountNumbers": "abc123",
        "propertyIds": 1,
        "catchments": "abc123",
        "thresholds": Threshold,
        "current": DiscountData,
        "historic": DiscountData,
        "forecast": DiscountForecast
      }
    ]
  }
}

fitInstallations

Type:[InstallationType]

Get details about FIT installations attached to an account, including any meters and previous readings.

Arguments

NameDescription

accountNumber (String!)

Account to query for FIT installations.

Query

query FitInstallations($accountNumber: String!) {
  fitInstallations(accountNumber: $accountNumber) {
    fitId
    inspectionAt
    meters {
      ...FitMeterTypeFragment
    }
    propertyAddress {
      ...PropertyAddressTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "fitInstallations": [
      {
        "fitId": "abc123",
        "inspectionAt": "2020-01-01T00:00:00.000Z",
        "meters": [FitMeterType],
        "propertyAddress": PropertyAddressType
      }
    ]
  }
}

fitSchedule

Type:FitScheduleType

Get details about a FIT schedule attached to an account.

Arguments

NameDescription

accountNumber (String!)

The number of the account responsible for this FIT schedule.

scheduleId (String!)

Unique identifier for the schedule.

Query

query FitSchedule(
  $accountNumber: String!,
  $scheduleId: String!
) {
  fitSchedule(
    accountNumber: $accountNumber,
    scheduleId: $scheduleId
  ) {
    scheduleId
    sentAt
    acceptedAt
    temporaryDownloadUrls
  }
}

Variables

{
  "accountNumber": "abc123",
  "scheduleId": "abc123"
}

Response

{
  "data": {
    "fitSchedule": {
      "scheduleId": "abc123",
      "sentAt": "2020-01-01T00:00:00.000Z",
      "acceptedAt": "2020-01-01T00:00:00.000Z",
      "temporaryDownloadUrls": ["abc123"]
    }
  }
}

followOnProduct

Type:FollowOnProductType

Follow on product.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

electricityAgreementId (ID)

Electricity agreement Kraken ID.

gasAgreementId (ID)

Gas agreement Kraken ID.

validAt (DateTime!)

Query

query FollowOnProduct(
  $accountNumber: String!,
  $electricityAgreementId: ID,
  $gasAgreementId: ID,
  $validAt: DateTime!
) {
  followOnProduct(
    accountNumber: $accountNumber,
    electricityAgreementId: $electricityAgreementId,
    gasAgreementId: $gasAgreementId,
    validAt: $validAt
  ) {
    activeFrom
    activeTo
    accountType
    paymentMethod
    renewalProducts {
      ...RenewalProductTypeFragment
    }
    createdAt
  }
}

Variables

{
  "accountNumber": "abc123",
  "electricityAgreementId": "abc123",
  "gasAgreementId": "abc123",
  "validAt": "2020-01-01T00:00:00.000Z"
}

Response

{
  "data": {
    "followOnProduct": {
      "activeFrom": "2020-01-01T00:00:00.000Z",
      "activeTo": "2020-01-01T00:00:00.000Z",
      "accountType": "BUSINESS",
      "paymentMethod": "DIRECT_DEBIT",
      "renewalProducts": [RenewalProductType],
      "createdAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

gasAgreement

Type:AgreementInterface

Get an gas agreement.

This field requires the Authorization header to be set.

Arguments

NameDescription

id (ID!)

Query

query GasAgreement($id: ID!) {
  gasAgreement(id: $id) {
    id
    validFrom
    validTo
    agreedFrom
    agreedTo
    isRevoked
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "gasAgreement": {
      "id": 1,
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "agreedFrom": "2020-01-01T00:00:00.000Z",
      "agreedTo": "2020-01-01T00:00:00.000Z",
      "isRevoked": true
    }
  }
}

gasMeterReadings

Type:GasMeterReadingConnectionTypeConnection

Fetch gas meter readings for a given account and meter

This field is a connection type. Connections are used to implement cursor based pagination.

This field requires the Authorization header to be set.

Arguments

NameDescription

accountNumber (String!)

meterId (String!)

eventTypes ([MeterReadingEventType])

before (String)

after (String)

first (Int)

last (Int)

Query

query GasMeterReadings(
  $accountNumber: String!,
  $meterId: String!,
  $eventTypes: [MeterReadingEventType],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  gasMeterReadings(
    accountNumber: $accountNumber,
    meterId: $meterId,
    eventTypes: $eventTypes,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GasMeterReadingConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "meterId": "abc123",
  "eventTypes": "CUSTOMER",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "gasMeterReadings": {
      "pageInfo": PageInfo,
      "edges": GasMeterReadingConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

mprn (String!)

serialNumber (String!)

Query

query GasPrepayLedgers(
  $accountNumber: String!,
  $mprn: String!,
  $serialNumber: String!
) {
  gasPrepayLedgers(
    accountNumber: $accountNumber,
    mprn: $mprn,
    serialNumber: $serialNumber
  ) {
    creditLedger {
      ...SupplementaryLedgerTypeFragment
    }
    debtLedger {
      ...SupplementaryLedgerTypeFragment
    }
    paymentLedger {
      ...PrepayPaymentLedgerTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "mprn": "abc123",
  "serialNumber": "abc123"
}

Response

{
  "data": {
    "gasPrepayLedgers": {
      "creditLedger": SupplementaryLedgerType,
      "debtLedger": SupplementaryLedgerType,
      "paymentLedger": PrepayPaymentLedgerType
    }
  }
}

goodsProducts

Type:GoodsProductConnectionTypeConnection

List Goods products given a market.

Arguments

NameDescription

marketName (String!)

Market name of the products to list.

productType ([String])

Types of the products to filter by.

code ([String])

Code of the products to filter by.

before (String)

after (String)

first (Int)

last (Int)

Query

query GoodsProducts(
  $marketName: String!,
  $productType: [String],
  $code: [String],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  goodsProducts(
    marketName: $marketName,
    productType: $productType,
    code: $code,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...GoodsProductConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "marketName": "abc123",
  "productType": ["abc123"],
  "code": ["abc123"],
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "goodsProducts": {
      "pageInfo": PageInfo,
      "edges": GoodsProductConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

goodsPurchases

Type:[GoodsPurchase]

List purchases for an account.

Arguments

NameDescription

accountNumber (String!)

The account number.

Query

query GoodsPurchases($accountNumber: String!) {
  goodsPurchases(accountNumber: $accountNumber) {
    code
    ledgerId
    goodsSaleItems {
      ...GoodsSaleItemFragment
    }
    goodsGrants {
      ...GoodsGrantFragment
    }
    marketParams
    clientParams
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "goodsPurchases": [
      {
        "code": "abc123",
        "ledgerId": "abc123",
        "goodsSaleItems": [GoodsSaleItem],
        "goodsGrants": [GoodsGrant],
        "marketParams": {"key": "value"},
        "clientParams": {"key": "value"}
      }
    ]
  }
}

goodsQuotes

Type:[GoodsQuote]

List quotes given an account number or retrieve a Goods quote given a quote code.

Arguments

NameDescription

accountNumber (String)

The account number.

quoteCode (String)

The quote code.

Query

query GoodsQuotes(
  $accountNumber: String,
  $quoteCode: String
) {
  goodsQuotes(
    accountNumber: $accountNumber,
    quoteCode: $quoteCode
  ) {
    id
    code
    totalNetAmount
    quotedAt
    goodsQuotedProducts {
      ...GoodsQuotedProductFragment
    }
    hasQuoteExpired
  }
}

Variables

{
  "accountNumber": "abc123",
  "quoteCode": "abc123"
}

Response

{
  "data": {
    "goodsQuotes": [
      {
        "id": 1,
        "code": "abc123",
        "totalNetAmount": 1,
        "quotedAt": "2020-01-01T00:00:00.000Z",
        "goodsQuotedProducts": [GoodsQuotedProduct],
        "hasQuoteExpired": true
      }
    ]
  }
}

greennessForecast

Type:[GreennessForecastPeriod]

A forecast of how green the electricity generation is predicted to be (do not assume a fixed length, that the periods are contiguous or in time order).

Query

query GreennessForecast {
  greennessForecast {
    validFrom
    validTo
    greennessScore
    greennessIndex
    highlightFlag
  }
}

Response

{
  "data": {
    "greennessForecast": [
      {
        "validFrom": "2020-01-01T00:00:00.000Z",
        "validTo": "2020-01-01T00:00:00.000Z",
        "greennessScore": 1,
        "greennessIndex": "LOW",
        "highlightFlag": true
      }
    ]
  }
}

hasAlreadyReceivedBlanket

Type:Boolean

Whether the account has already received a blanket.

Arguments

NameDescription

accountNumber (String!)

The account number to check.

Query

query HasAlreadyReceivedBlanket($accountNumber: String!) {
  hasAlreadyReceivedBlanket(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "hasAlreadyReceivedBlanket": true
  }
}

hasReceivedADiscountCode

Type:Boolean

Whether the account has already received a discount code.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

Query

query HasReceivedADiscountCode($accountNumber: String!) {
  hasReceivedADiscountCode(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "hasReceivedADiscountCode": true
  }
}

heatPumpControllerConfiguration

Type:ControllerAndZoneConfiguration

Heat pump controller, zones and sensor configuration.

Arguments

NameDescription

accountNumber (String!)

euid (ID!)

Query

query HeatPumpControllerConfiguration(
  $accountNumber: String!,
  $euid: ID!
) {
  heatPumpControllerConfiguration(
    accountNumber: $accountNumber,
    euid: $euid
  ) {
    controller {
      ...ControllerConfigurationFragment
    }
    zones {
      ...ZoneInformationFragment
    }
    heatPump {
      ...HeatPumpConfigurationFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "euid": "abc123"
}

Response

{
  "data": {
    "heatPumpControllerConfiguration": {
      "controller": ControllerConfiguration,
      "zones": [ZoneInformation],
      "heatPump": HeatPumpConfiguration
    }
  }
}

heatPumpControllerStatus

Type:ControllerStatus

Retrieve the heat pump controller device status.

Arguments

NameDescription

accountNumber (String!)

euid (ID!)

Query

query HeatPumpControllerStatus(
  $accountNumber: String!,
  $euid: ID!
) {
  heatPumpControllerStatus(
    accountNumber: $accountNumber,
    euid: $euid
  ) {
    sensors {
      ...SensorStatusFragment
    }
    zones {
      ...ZoneStatusFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "euid": "abc123"
}

Response

{
  "data": {
    "heatPumpControllerStatus": {
      "sensors": [SensorStatus],
      "zones": [ZoneStatus]
    }
  }
}

heatPumpDevice

Type:HeatPumpDeviceType

The currently active heat pump device.

Arguments

NameDescription

accountNumber (String!)

propertyId (Int!)

Query

query HeatPumpDevice(
  $accountNumber: String!,
  $propertyId: Int!
) {
  heatPumpDevice(
    accountNumber: $accountNumber,
    propertyId: $propertyId
  ) {
    krakenflexDeviceId
    deviceType
    provider
    params {
      ...HeatPumpParamsTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "propertyId": 1
}

Response

{
  "data": {
    "heatPumpDevice": {
      "krakenflexDeviceId": "abc123",
      "deviceType": "BATTERIES",
      "provider": "DAIKIN",
      "params": HeatPumpParamsType
    }
  }
}

heatPumpGoodsQuote

Type:HeatPumpGoodsQuote

Heat pump goods quote.

Arguments

NameDescription

code (String!)

Quote code.

Query

query HeatPumpGoodsQuote($code: String!) {
  heatPumpGoodsQuote(code: $code) {
    accountNumber
    code
    quoteId
    quotedProduct {
      ...GoodsQuotedProductFragment
    }
    contactDetails {
      ...ContactDetailsFragment
    }
    addressDetails {
      ...AddressDetailsFragment
    }
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "heatPumpGoodsQuote": {
      "accountNumber": "abc123",
      "code": "abc123",
      "quoteId": 1,
      "quotedProduct": GoodsQuotedProduct,
      "contactDetails": ContactDetails,
      "addressDetails": AddressDetails
    }
  }
}

heatPumpStatus

Type:HeatPumpStatusType

A heat pump registered with KrakenFlex for a given account

Arguments

NameDescription

accountNumber (String!)

Query

query HeatPumpStatus($accountNumber: String!) {
  heatPumpStatus(accountNumber: $accountNumber) {
    isConnected
    climateControlStatus {
      ...ClimateControlDetailsTypeFragment
    }
    waterTemperatureStatus {
      ...WaterTemperatureDetailsTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "heatPumpStatus": {
      "isConnected": true,
      "climateControlStatus": ClimateControlDetailsType,
      "waterTemperatureStatus": WaterTemperatureDetailsType
    }
  }
}

heatPumpVariants

Type:[HeatPumpVariantsType]

All heat pumps and their details.

Arguments

NameDescription

make (String)

Only return heat pumps of a specific make.

isDeprecated (Boolean)

Only return (non-) deprecated heat pumps.

Query

query HeatPumpVariants(
  $make: String,
  $isDeprecated: Boolean
) {
  heatPumpVariants(
    make: $make,
    isDeprecated: $isDeprecated
  ) {
    make
    models {
      ...HeatPumpVariantModelsTypeFragment
    }
  }
}

Variables

{
  "make": "abc123",
  "isDeprecated": true
}

Response

{
  "data": {
    "heatPumpVariants": [
      {
        "make": "abc123",
        "models": [HeatPumpVariantModelsType]
      }
    ]
  }
}

inkConversation

Type:InkConversation!

Get the Ink conversation for a given account.

Arguments

NameDescription

accountNumber (String)

The account number.

conversationRelayId (String)

The conversation's relay id.

Query

query InkConversation(
  $accountNumber: String,
  $conversationRelayId: String
) {
  inkConversation(
    accountNumber: $accountNumber,
    conversationRelayId: $conversationRelayId
  ) {
    id
    status
    contactChannelIdentities {
      ...InkContactChannelIdentitiesFragment
    }
    accountUsers {
      ...AccountUserTypeFragment
    }
    events {
      ...InkConversationEventsConnectionFragment
    }
    buckets {
      ...InkBucketFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "conversationRelayId": "abc123"
}

Response

{
  "data": {
    "inkConversation": {
      "id": "abc123",
      "status": "OPEN",
      "contactChannelIdentities": InkContactChannelIdentities,
      "accountUsers": [AccountUserType],
      "events": InkConversationEventsConnection,
      "buckets": [InkBucket]
    }
  }
}

inkMessage

Type:InkMessage!

Get the content for a given message.

Arguments

NameDescription

messageRelayId (String!)

The message's relay id.

Query

query InkMessage($messageRelayId: String!) {
  inkMessage(messageRelayId: $messageRelayId) {
    ... on InkEmail {
      ...InkEmailFragment
    }
    ... on InkSMS {
      ...InkSMSFragment
    }
    ... on InkLine {
      ...InkLineFragment
    }
    ... on InkWhatsApp {
      ...InkWhatsAppFragment
    }
    ... on InkPost {
      ...InkPostFragment
    }
    ... on InkGenericMessage {
      ...InkGenericMessageFragment
    }
  }
}

Variables

{
  "messageRelayId": "abc123"
}

Response

{
  "data": {
    "inkMessage": InkEmail
  }
}

isPasswordResetTokenValid

Type:Boolean

Check validity of a password reset token.

Arguments

NameDescription

userId (String!)

Base64 encoded user id.

token (String!)

Password reset token to check.

Query

query IsPasswordResetTokenValid(
  $userId: String!,
  $token: String!
) {
  isPasswordResetTokenValid(
    userId: $userId,
    token: $token
  )
}

Variables

{
  "userId": "abc123",
  "token": "abc123"
}

Response

{
  "data": {
    "isPasswordResetTokenValid": true
  }
}

krakenVersion

Type:KrakenVersionType

The current version of kraken.

Query

query KrakenVersion {
  krakenVersion {
    number
    SHA
  }
}

Response

{
  "data": {
    "krakenVersion": {
      "number": "abc123",
      "SHA": "abc123"
    }
  }
}

livePaymentAdequacy

Type:LivePaymentAdequacyQuery

Get up to date payment adequacy data.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

Query

query LivePaymentAdequacy($accountNumber: String!) {
  livePaymentAdequacy(accountNumber: $accountNumber) {
    recommendedPayment {
      ...PaymentBreakdownFragment
    }
    currentBalance
    targetBalance
    estimatedConsumption {
      ...ConsumptionBreakdownFragment
    }
    reviewedOn
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "livePaymentAdequacy": {
      "recommendedPayment": PaymentBreakdown,
      "currentBalance": 1,
      "targetBalance": 1,
      "estimatedConsumption": [ConsumptionBreakdown],
      "reviewedOn": "2020-01-01"
    }
  }
}

loyaltyPointLedgers

Type:[LoyaltyPointLedgerEntryType]

Get the Loyalty Point ledger entries for the passed user.

Query

query LoyaltyPointLedgers {
  loyaltyPointLedgers {
    id
    ledgerType
    value
    balanceBroughtForward
    balanceCarriedForward
    reasonCode
    postedAt
    accountNumber
  }
}

Response

{
  "data": {
    "loyaltyPointLedgers": [
      {
        "id": "abc123",
        "ledgerType": "abc123",
        "value": "abc123",
        "balanceBroughtForward": "abc123",
        "balanceCarriedForward": "abc123",
        "reasonCode": "abc123",
        "postedAt": "2020-01-01T00:00:00.000Z",
        "accountNumber": "abc123"
      }
    ]
  }
}

metadata

Type:[Metadata]

Metadata for a linked object.

Arguments

NameDescription

linkedObjectType (LinkedObjectType)

identifier (String!)

Query

query Metadata(
  $linkedObjectType: LinkedObjectType,
  $identifier: String!
) {
  metadata(
    linkedObjectType: $linkedObjectType,
    identifier: $identifier
  ) {
    key
    value
  }
}

Variables

{
  "linkedObjectType": "ACCOUNT",
  "identifier": "abc123"
}

Response

{
  "data": {
    "metadata": [
      {
        "key": "abc123",
        "value": {"key": "value"}
      }
    ]
  }
}

metadataForKey

Type:Metadata

Metadata for a linked object with key.

Arguments

NameDescription

linkedObjectType (LinkedObjectType)

identifier (String!)

key (String!)

Query

query MetadataForKey(
  $linkedObjectType: LinkedObjectType,
  $identifier: String!,
  $key: String!
) {
  metadataForKey(
    linkedObjectType: $linkedObjectType,
    identifier: $identifier,
    key: $key
  ) {
    key
    value
  }
}

Variables

{
  "linkedObjectType": "ACCOUNT",
  "identifier": "abc123",
  "key": "abc123"
}

Response

{
  "data": {
    "metadataForKey": {
      "key": "abc123",
      "value": {"key": "value"}
    }
  }
}

meterPointProductEligibility

Type:ProductEligibilityForMeterPoint

Check meter point eligibility for an energy product.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

mpxn (String!)

MPXN of a meter point.

productCode (String!)

Energy product code.

Query

query MeterPointProductEligibility(
  $accountNumber: String!,
  $mpxn: String!,
  $productCode: String!
) {
  meterPointProductEligibility(
    accountNumber: $accountNumber,
    mpxn: $mpxn,
    productCode: $productCode
  ) {
    isEligible
  }
}

Variables

{
  "accountNumber": "abc123",
  "mpxn": "abc123",
  "productCode": "abc123"
}

Response

{
  "data": {
    "meterPointProductEligibility": {
      "isEligible": true
    }
  }
}

meterPoints

Type:MeterPointInterface

Get a meter point via it's associated mpan or mprn.

Arguments

NameDescription

mpan (ID)

The MPAN for the electricity meterpoint to return.

mprn (ID)

The MPRN for the gas meterpoint to return.

Query

query MeterPoints(
  $mpan: ID,
  $mprn: ID
) {
  meterPoints(
    mpan: $mpan,
    mprn: $mprn
  ) {
    status
    meters {
      ...MeterFragment
    }
    enrolment {
      ...EnrolmentTypeFragment
    }
  }
}

Variables

{
  "mpan": "abc123",
  "mprn": "abc123"
}

Response

{
  "data": {
    "meterPoints": {
      "status": "abc123",
      "meters": Meter,
      "enrolment": EnrolmentType
    }
  }
}

Arguments

NameDescription

address (AddressSearchType)

searchDomesticOnly (Boolean)

useDes (Boolean)

Query

query MultipleElectricityMeterPointsForAddress(
  $address: AddressSearchType,
  $searchDomesticOnly: Boolean,
  $useDes: Boolean
) {
  multipleElectricityMeterPointsForAddress(
    address: $address,
    searchDomesticOnly: $searchDomesticOnly,
    useDes: $useDes
  ) {
    addressHasMoreThanOneElectricityMeterPoint
    electricityMeterPoints
    addressLine1
    addressLine2
    postcode
  }
}

Variables

{
  "address": AddressSearchType,
  "searchDomesticOnly": true,
  "useDes": true
}

Response

{
  "data": {
    "multipleElectricityMeterPointsForAddress": {
      "addressHasMoreThanOneElectricityMeterPoint": true,
      "electricityMeterPoints": ["abc123"],
      "addressLine1": "abc123",
      "addressLine2": "abc123",
      "postcode": "abc123"
    }
  }
}

Arguments

NameDescription

id (ID!)

The ID of the object

Query

query Node($id: ID!) {
  node(id: $id) {
    id
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "node": {
      "id": "abc123"
    }
  }
}

occupierAccount

Type:OccupierAccount

Looks up an occupier account based on postcode and last 4 digits of the account number

Arguments

NameDescription

postcode (String!)

shortcode (String!)

Query

query OccupierAccount(
  $postcode: String!,
  $shortcode: String!
) {
  occupierAccount(
    postcode: $postcode,
    shortcode: $shortcode
  ) {
    account
    address
    date
    propertyId
    occupyToken
  }
}

Variables

{
  "postcode": "abc123",
  "shortcode": "abc123"
}

Response

{
  "data": {
    "occupierAccount": {
      "account": "abc123",
      "address": "abc123",
      "date": "abc123",
      "propertyId": 1,
      "occupyToken": "abc123"
    }
  }
}

ocppConnection

Type:OCPPConnectionType

To confirm whether a device is connected to OCPP.

Arguments

NameDescription

accountNumber (String!)

Query

query OcppConnection($accountNumber: String!) {
  ocppConnection(accountNumber: $accountNumber) {
    isConnected
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "ocppConnection": {
      "isConnected": true
    }
  }
}

ocppDetails

Type:OCPPDetailsType

The user specific generated OCPP details.

Arguments

NameDescription

accountNumber (String!)

Query

query OcppDetails($accountNumber: String!) {
  ocppDetails(accountNumber: $accountNumber) {
    url
    username
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "ocppDetails": {
      "url": "abc123",
      "username": "abc123"
    }
  }
}

octoHeatPumpControllerConfiguration

Type:ControllerAndZoneConfiguration

Heat pump controller, zones and sensor configuration.

Arguments

NameDescription

accountNumber (String!)

euid (ID!)

Query

query OctoHeatPumpControllerConfiguration(
  $accountNumber: String!,
  $euid: ID!
) {
  octoHeatPumpControllerConfiguration(
    accountNumber: $accountNumber,
    euid: $euid
  ) {
    controller {
      ...ControllerConfigurationFragment
    }
    zones {
      ...ZoneInformationFragment
    }
    heatPump {
      ...HeatPumpConfigurationFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "euid": "abc123"
}

Response

{
  "data": {
    "octoHeatPumpControllerConfiguration": {
      "controller": ControllerConfiguration,
      "zones": [ZoneInformation],
      "heatPump": HeatPumpConfiguration
    }
  }
}

octoHeatPumpControllerEuids

Type:[String]

Heat pump controller EUIDs associated with an account.

Arguments

NameDescription

accountNumber (String)

Query

query OctoHeatPumpControllerEuids($accountNumber: String) {
  octoHeatPumpControllerEuids(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "octoHeatPumpControllerEuids": ["abc123"]
  }
}

octoHeatPumpControllerStatus

Type:ControllerStatus

Retrieve the heat pump controller device status.

Arguments

NameDescription

accountNumber (String!)

euid (ID!)

Query

query OctoHeatPumpControllerStatus(
  $accountNumber: String!,
  $euid: ID!
) {
  octoHeatPumpControllerStatus(
    accountNumber: $accountNumber,
    euid: $euid
  ) {
    sensors {
      ...SensorStatusFragment
    }
    zones {
      ...ZoneStatusFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "euid": "abc123"
}

Response

{
  "data": {
    "octoHeatPumpControllerStatus": {
      "sensors": [SensorStatus],
      "zones": [ZoneStatus]
    }
  }
}

octoHeatPumpControllersAtLocation

Type:[ControllerAtLocation]

Heat pump controllers attached to an account at a given location.

Arguments

NameDescription

accountNumber (String!)

propertyId (ID!)

Query

query OctoHeatPumpControllersAtLocation(
  $accountNumber: String!,
  $propertyId: ID!
) {
  octoHeatPumpControllersAtLocation(
    accountNumber: $accountNumber,
    propertyId: $propertyId
  ) {
    controller {
      ...ControllerFragment
    }
    heatPumpModel
    location {
      ...LocationFragment
    }
    provisionedAt
  }
}

Variables

{
  "accountNumber": "abc123",
  "propertyId": "abc123"
}

Response

{
  "data": {
    "octoHeatPumpControllersAtLocation": [
      {
        "controller": Controller,
        "heatPumpModel": "abc123",
        "location": Location,
        "provisionedAt": "2020-01-01T00:00:00.000Z"
      }
    ]
  }
}

octoHeatPumpLifetimePerformance

Type:LifetimeTelemetry

Latest telemetry values from the heat pump.

Arguments

NameDescription

euid (ID!)

Query

query OctoHeatPumpLifetimePerformance($euid: ID!) {
  octoHeatPumpLifetimePerformance(euid: $euid) {
    readAt
    seasonalCoefficientOfPerformance
    energyInput {
      ...EnergyFragment
    }
    heatOutput {
      ...EnergyFragment
    }
  }
}

Variables

{
  "euid": "abc123"
}

Response

{
  "data": {
    "octoHeatPumpLifetimePerformance": {
      "readAt": "2020-01-01T00:00:00.000Z",
      "seasonalCoefficientOfPerformance": 1.0,
      "energyInput": Energy,
      "heatOutput": Energy
    }
  }
}

octoHeatPumpLivePerformance

Type:LiveTelemetry

Latest telemetry values from the heat pump.

Arguments

NameDescription

euid (ID!)

Query

query OctoHeatPumpLivePerformance($euid: ID!) {
  octoHeatPumpLivePerformance(euid: $euid) {
    readAt
    coefficientOfPerformance
    powerInput {
      ...PowerFragment
    }
    heatOutput {
      ...PowerFragment
    }
    outdoorTemperature {
      ...TemperatureFragment
    }
  }
}

Variables

{
  "euid": "abc123"
}

Response

{
  "data": {
    "octoHeatPumpLivePerformance": {
      "readAt": "2020-01-01T00:00:00.000Z",
      "coefficientOfPerformance": 1.0,
      "powerInput": Power,
      "heatOutput": Power,
      "outdoorTemperature": Temperature
    }
  }
}

octoHeatPumpTimeRangedPerformance

Type:HeatPumpTimeRangedPerformance

Heat pump performance data between two specific dates.

Arguments

NameDescription

euid (ID!)

startAt (TZAwareDateTime!)

endAt (TZAwareDateTime!)

Query

query OctoHeatPumpTimeRangedPerformance(
  $euid: ID!,
  $startAt: TZAwareDateTime!,
  $endAt: TZAwareDateTime!
) {
  octoHeatPumpTimeRangedPerformance(
    euid: $euid,
    startAt: $startAt,
    endAt: $endAt
  ) {
    coefficientOfPerformance
    energyInput {
      ...EnergyFragment
    }
    energyOutput {
      ...EnergyFragment
    }
  }
}

Variables

{
  "euid": "abc123",
  "startAt": TZAwareDateTime,
  "endAt": TZAwareDateTime
}

Response

{
  "data": {
    "octoHeatPumpTimeRangedPerformance": {
      "coefficientOfPerformance": 1.0,
      "energyInput": Energy,
      "energyOutput": Energy
    }
  }
}

octoHeatPumpTimeSeriesPerformance

Type:[HeatPumpPerformanceGroupingNode]

Heat pump performance data over a specified period in time buckets.

Arguments

NameDescription

euid (ID!)

startAt (TZAwareDateTime!)

endAt (TZAwareDateTime!)

performanceGrouping (PerformanceGrouping!)

Query

query OctoHeatPumpTimeSeriesPerformance(
  $euid: ID!,
  $startAt: TZAwareDateTime!,
  $endAt: TZAwareDateTime!,
  $performanceGrouping: PerformanceGrouping!
) {
  octoHeatPumpTimeSeriesPerformance(
    euid: $euid,
    startAt: $startAt,
    endAt: $endAt,
    performanceGrouping: $performanceGrouping
  ) {
    startAt
    endAt
    energyInput {
      ...EnergyFragment
    }
    energyOutput {
      ...EnergyFragment
    }
    outdoorTemperature {
      ...TemperatureFragment
    }
  }
}

Variables

{
  "euid": "abc123",
  "startAt": TZAwareDateTime,
  "endAt": TZAwareDateTime,
  "performanceGrouping": "LIVE"
}

Response

{
  "data": {
    "octoHeatPumpTimeSeriesPerformance": [
      {
        "startAt": "2020-01-01T00:00:00.000Z",
        "endAt": "2020-01-01T00:00:00.000Z",
        "energyInput": Energy,
        "energyOutput": Energy,
        "outdoorTemperature": Temperature
      }
    ]
  }
}

octoPoints

Type:OctoPointsType

Query relating to OctoPoints.

Arguments

NameDescription

accountNumber (String)

Kraken account number.

Query

query OctoPoints($accountNumber: String) {
  octoPoints(accountNumber: $accountNumber) {
    account {
      ...OctoPointsAccountTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "octoPoints": {
      "account": OctoPointsAccountType
    }
  }
}

octocareOnboardingInfo

Type:OctocareOnboardingInfo

Returns the info required to start the onboarding process for a Mini in the cared-for account's property, by the cared.

Arguments

NameDescription

accountNumber (String!)

Cared-for account number.

Query

query OctocareOnboardingInfo($accountNumber: String!) {
  octocareOnboardingInfo(accountNumber: $accountNumber) {
    chfDeviceId
    propertyAddressLine1
    propertyId
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "octocareOnboardingInfo": {
      "chfDeviceId": "abc123",
      "propertyAddressLine1": "abc123",
      "propertyId": "abc123"
    }
  }
}

octocareUsageInfo

Type:OctocareUsageInfo

Returns the info required to request and display live usage information for the cared-for account meter: the meter device ID and 1st address line of the property.

Arguments

NameDescription

accountNumber (String!)

Cared-for account number.

Query

query OctocareUsageInfo($accountNumber: String!) {
  octocareUsageInfo(accountNumber: $accountNumber) {
    meterDeviceId
    propertyAddressLine1
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "octocareUsageInfo": {
      "meterDeviceId": "abc123",
      "propertyAddressLine1": "abc123"
    }
  }
}

octoplusAccountInfo

Type:OctoplusAccountInfoType

Octoplus information for a given account.

Arguments

NameDescription

accountNumber (String!)

Kraken account number.

Query

query OctoplusAccountInfo($accountNumber: String!) {
  octoplusAccountInfo(accountNumber: $accountNumber) {
    isOctoplusEnrolled
    isLoyaltyPointsUser
    octoplusEligibility {
      ...OctoplusEligibilityTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "octoplusAccountInfo": {
      "isOctoplusEnrolled": true,
      "isLoyaltyPointsUser": true,
      "octoplusEligibility": OctoplusEligibilityType
    }
  }
}

octoplusFeatureFlags

Type:OctoplusFeatureFlagsType

Feature flags for the octoplus campaign

Query

query OctoplusFeatureFlags {
  octoplusFeatureFlags {
    shouldClientDisplayOctopointsV2
    shouldClientDisplayOctoplus
    shouldClientDisplayRewards
    shouldClientDisplayOctoplusRewards
    shouldClientDisplayPartnerRewards
    shouldClientDisplayOctoplusPartnerOffers
    shouldClientDisplayOctoplusShoptopusOffers
    shouldClientDisplayOctoplusRelatedOffers
    shouldClientDisplayOctoplusPartnerOfferList
  }
}

Response

{
  "data": {
    "octoplusFeatureFlags": {
      "shouldClientDisplayOctopointsV2": true,
      "shouldClientDisplayOctoplus": true,
      "shouldClientDisplayRewards": true,
      "shouldClientDisplayOctoplusRewards": true,
      "shouldClientDisplayPartnerRewards": true,
      "shouldClientDisplayOctoplusPartnerOffers": true,
      "shouldClientDisplayOctoplusShoptopusOffers": true,
      "shouldClientDisplayOctoplusRelatedOffers": true,
      "shouldClientDisplayOctoplusPartnerOfferList": true
    }
  }
}

octoplusOfferGroups

Type:OctoplusOfferGroupConnectionTypeConnection

Octoplus Offer Groups available for a given account_user and account combination.

Arguments

NameDescription

accountNumber (String!)

Account number for the Octoplus-enrolled account.

id (Int)

ID of the Offer Group being queried.

before (String)

after (String)

first (Int)

last (Int)

Query

query OctoplusOfferGroups(
  $accountNumber: String!,
  $id: Int,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  octoplusOfferGroups(
    accountNumber: $accountNumber,
    id: $id,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...OctoplusOfferGroupConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "id": 1,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "octoplusOfferGroups": {
      "pageInfo": PageInfo,
      "edges": OctoplusOfferGroupConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

octoplusOffers

Type:[OctoplusOfferType]

Octoplus Offers available for a given account_user and account combination

Arguments

NameDescription

accountNumber (String!)

Account number for the Octoplus-enrolled account.

slug (String)

Slug of the offer being queried.

Query

query OctoplusOffers(
  $accountNumber: String!,
  $slug: String
) {
  octoplusOffers(
    accountNumber: $accountNumber,
    slug: $slug
  ) {
    slug
    name
    description
    longDescription
    partnerName
    priceTag
    pointsCost
    availableSitesUrl
    partnerSiteUrl
    imageUrls {
      ...OctoplusOfferImageUrlsTypeFragment
    }
    termsAndConditions
    faqs {
      ...OctoplusOfferFAQsTypeFragment
    }
    usageInstructions
    category
    claimAbility {
      ...OctoplusRewardClaimAbilityTypeFragment
    }
    claimBy
  }
}

Variables

{
  "accountNumber": "abc123",
  "slug": "abc123"
}

Response

{
  "data": {
    "octoplusOffers": [
      {
        "slug": "abc123",
        "name": "abc123",
        "description": "abc123",
        "longDescription": "abc123",
        "partnerName": "abc123",
        "priceTag": "abc123",
        "pointsCost": 1,
        "availableSitesUrl": "abc123",
        "partnerSiteUrl": "abc123",
        "imageUrls": OctoplusOfferImageUrlsType,
        "termsAndConditions": "abc123",
        "faqs": [OctoplusOfferFAQsType],
        "usageInstructions": "abc123",
        "category": "abc123",
        "claimAbility": OctoplusRewardClaimAbilityType,
        "claimBy": "2020-01-01T00:00:00.000Z"
      }
    ]
  }
}

octoplusRewards

Type:[OctoplusRewardType]

Octoplus Rewards for a given account user

Arguments

NameDescription

rewardId (Int)

Id for the reward being queried.

accountNumber (String)

Account number for the Octoplus-enrolled account.

offerSlug (String)

Slug of the offer being queried.

Query

query OctoplusRewards(
  $rewardId: Int,
  $accountNumber: String,
  $offerSlug: String
) {
  octoplusRewards(
    rewardId: $rewardId,
    accountNumber: $accountNumber,
    offerSlug: $offerSlug
  ) {
    id
    accountNumber
    offer {
      ...OctoplusOfferTypeFragment
    }
    offerSlug
    offerName
    priceTag
    partnerName
    usageInstructions
    vouchers {
      ... on OctoplusVoucherType {
        ...OctoplusVoucherTypeFragment
      }
      ... on ShoptopusVoucherType {
        ...ShoptopusVoucherTypeFragment
      }
    }
    claimedAt
    status
  }
}

Variables

{
  "rewardId": 1,
  "accountNumber": "abc123",
  "offerSlug": "abc123"
}

Response

{
  "data": {
    "octoplusRewards": [
      {
        "id": 1,
        "accountNumber": "abc123",
        "offer": OctoplusOfferType,
        "offerSlug": "abc123",
        "offerName": "abc123",
        "priceTag": "abc123",
        "partnerName": "abc123",
        "usageInstructions": "abc123",
        "vouchers": OctoplusVoucherType,
        "claimedAt": "2020-01-01T00:00:00.000Z",
        "status": "PENDING"
      }
    ]
  }
}

passwordValidatorHelpTexts

Type:[String]

The help text of all configured password validators as plain-text or html. Defaults to plain-text.

Arguments

NameDescription

asHtml (Boolean)

Return the results as html instead of plain-text. Defaults to False.

Query

query PasswordValidatorHelpTexts($asHtml: Boolean) {
  passwordValidatorHelpTexts(asHtml: $asHtml)
}

Variables

{
  "asHtml": true
}

Response

{
  "data": {
    "passwordValidatorHelpTexts": ["abc123"]
  }
}

plannedDispatches

Type:[UpsideDispatchType]

All planned device dispatches 24 hours ahead, (usually) in time order.

Arguments

NameDescription

accountNumber (String!)

Query

query PlannedDispatches($accountNumber: String!) {
  plannedDispatches(accountNumber: $accountNumber) {
    start
    end
    startDt
    endDt
    deltaKwh
    delta
    meta {
      ...UpsideDispatchMetaTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "plannedDispatches": [
      {
        "start": "2020-01-01T00:00:00.000Z",
        "end": "2020-01-01T00:00:00.000Z",
        "startDt": "abc123",
        "endDt": "abc123",
        "deltaKwh": 1,
        "delta": 1.0,
        "meta": UpsideDispatchMetaType
      }
    ]
  }
}

prepayBalanceSnapshot

Type:PrepayBalanceSnapshotType

Retrieve a snapshot of a prepay device balance at a moment in time.

Arguments

NameDescription

deviceId (String!)

The ESME or GSME's EUI64 ID, e.g. '12-34-5A-FF-FF-6B-C7-89'.

Query

query PrepayBalanceSnapshot($deviceId: String!) {
  prepayBalanceSnapshot(deviceId: $deviceId) {
    creditInPence
    debtInPence
    emergencyCreditInPence
    asAt
  }
}

Variables

{
  "deviceId": "abc123"
}

Response

{
  "data": {
    "prepayBalanceSnapshot": {
      "creditInPence": 1,
      "debtInPence": 1,
      "emergencyCreditInPence": 1,
      "asAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

prepayPayments

Type:PrepayPaymentConnectionTypeConnection

Payments made to add credit to the account's smart prepay meters.

Arguments

NameDescription

accountNumber (String!)

before (String)

after (String)

first (Int)

last (Int)

Query

query PrepayPayments(
  $accountNumber: String!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  prepayPayments(
    accountNumber: $accountNumber,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...PrepayPaymentConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "accountNumber": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "prepayPayments": {
      "pageInfo": PageInfo,
      "edges": PrepayPaymentConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

productEnrolment

Type:ProductEnrolmentType

Get the details of a product enrolment.

Arguments

NameDescription

accountNumber (String!)

The account to which the enrolment belongs.

enrolmentId (ID!)

The ID for the enrolment.

Query

query ProductEnrolment(
  $accountNumber: String!,
  $enrolmentId: ID!
) {
  productEnrolment(
    accountNumber: $accountNumber,
    enrolmentId: $enrolmentId
  ) {
    id
    account {
      ...AccountTypeFragment
    }
    status
    product {
      ...EnergyProductTypeFragment
    }
    electricityMeterPoint {
      ...ElectricityMeterPointTypeFragment
    }
    gasMeterPoint {
      ...GasMeterPointTypeFragment
    }
    stages {
      ...ProductEnrolmentStageTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "enrolmentId": "abc123"
}

Response

{
  "data": {
    "productEnrolment": {
      "id": "abc123",
      "account": AccountType,
      "status": "NOT_STARTED",
      "product": EnergyProductType,
      "electricityMeterPoint": ElectricityMeterPointType,
      "gasMeterPoint": GasMeterPointType,
      "stages": [ProductEnrolmentStageType]
    }
  }
}

productEnrolments

Type:[ProductEnrolmentType]

Get all of the enrolments for an account.

Arguments

NameDescription

accountNumber (String!)

The account to find all the enrolments for.

Query

query ProductEnrolments($accountNumber: String!) {
  productEnrolments(accountNumber: $accountNumber) {
    id
    account {
      ...AccountTypeFragment
    }
    status
    product {
      ...EnergyProductTypeFragment
    }
    electricityMeterPoint {
      ...ElectricityMeterPointTypeFragment
    }
    gasMeterPoint {
      ...GasMeterPointTypeFragment
    }
    stages {
      ...ProductEnrolmentStageTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "productEnrolments": [
      {
        "id": "abc123",
        "account": AccountType,
        "status": "NOT_STARTED",
        "product": EnergyProductType,
        "electricityMeterPoint": ElectricityMeterPointType,
        "gasMeterPoint": GasMeterPointType,
        "stages": [ProductEnrolmentStageType]
      }
    ]
  }
}

properties

Type:[PropertyType]

The properties attached to the given account.

This field requires the Authorization header to be set.

Arguments

NameDescription

accountNumber (String!)

active (Boolean)

Query

query Properties(
  $accountNumber: String!,
  $active: Boolean
) {
  properties(
    accountNumber: $accountNumber,
    active: $active
  ) {
    id
    postcode
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    smartDeviceNetworks {
      ...SmartMeterDeviceNetworkTypeFragment
    }
    isChangeOfTenancyOngoing
    isSmets2InstallationAllowed
    electricityMeterPoints {
      ...ElectricityMeterPointTypeFragment
    }
    gasMeterPoints {
      ...GasMeterPointTypeFragment
    }
    wanCoverage
    availableSmets2InstallationTimeslots {
      ...Smets2InstallationTimeslotTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "active": true
}

Response

{
  "data": {
    "properties": [
      {
        "id": "abc123",
        "postcode": "abc123",
        "address": "abc123",
        "richAddress": PropertyRichAddressType,
        "splitAddress": ["abc123"],
        "occupancyPeriods": [OccupancyPeriodType],
        "coordinates": CoordinatesType,
        "embeddedNetwork": EmbeddedNetworkType,
        "measurements": MeasurementConnection,
        "smartDeviceNetworks": [SmartMeterDeviceNetworkType],
        "isChangeOfTenancyOngoing": true,
        "isSmets2InstallationAllowed": true,
        "electricityMeterPoints": [ElectricityMeterPointType],
        "gasMeterPoints": [GasMeterPointType],
        "wanCoverage": "HIGH",
        "availableSmets2InstallationTimeslots": [Smets2InstallationTimeslotType]
      }
    ]
  }
}

property

Type:PropertyType

A property with the given ID. Usually associated with supply points.

This field requires the Authorization header to be set.

Arguments

NameDescription

id (ID!)

Query

query Property($id: ID!) {
  property(id: $id) {
    id
    postcode
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    smartDeviceNetworks {
      ...SmartMeterDeviceNetworkTypeFragment
    }
    isChangeOfTenancyOngoing
    isSmets2InstallationAllowed
    electricityMeterPoints {
      ...ElectricityMeterPointTypeFragment
    }
    gasMeterPoints {
      ...GasMeterPointTypeFragment
    }
    wanCoverage
    availableSmets2InstallationTimeslots {
      ...Smets2InstallationTimeslotTypeFragment
    }
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "property": {
      "id": "abc123",
      "postcode": "abc123",
      "address": "abc123",
      "richAddress": PropertyRichAddressType,
      "splitAddress": ["abc123"],
      "occupancyPeriods": [OccupancyPeriodType],
      "coordinates": CoordinatesType,
      "embeddedNetwork": EmbeddedNetworkType,
      "measurements": MeasurementConnection,
      "smartDeviceNetworks": [SmartMeterDeviceNetworkType],
      "isChangeOfTenancyOngoing": true,
      "isSmets2InstallationAllowed": true,
      "electricityMeterPoints": [ElectricityMeterPointType],
      "gasMeterPoints": [GasMeterPointType],
      "wanCoverage": "HIGH",
      "availableSmets2InstallationTimeslots": [Smets2InstallationTimeslotType]
    }
  }
}

propertySearch

Type:[PropertyType]

Search for properties that are already in Kraken and match the search term.

Arguments

NameDescription

searchTerm (String!)

The search term. It can be an address or a meter point identifier.

Query

query PropertySearch($searchTerm: String!) {
  propertySearch(searchTerm: $searchTerm) {
    id
    postcode
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    smartDeviceNetworks {
      ...SmartMeterDeviceNetworkTypeFragment
    }
    isChangeOfTenancyOngoing
    isSmets2InstallationAllowed
    electricityMeterPoints {
      ...ElectricityMeterPointTypeFragment
    }
    gasMeterPoints {
      ...GasMeterPointTypeFragment
    }
    wanCoverage
    availableSmets2InstallationTimeslots {
      ...Smets2InstallationTimeslotTypeFragment
    }
  }
}

Variables

{
  "searchTerm": "abc123"
}

Response

{
  "data": {
    "propertySearch": [
      {
        "id": "abc123",
        "postcode": "abc123",
        "address": "abc123",
        "richAddress": PropertyRichAddressType,
        "splitAddress": ["abc123"],
        "occupancyPeriods": [OccupancyPeriodType],
        "coordinates": CoordinatesType,
        "embeddedNetwork": EmbeddedNetworkType,
        "measurements": MeasurementConnection,
        "smartDeviceNetworks": [SmartMeterDeviceNetworkType],
        "isChangeOfTenancyOngoing": true,
        "isSmets2InstallationAllowed": true,
        "electricityMeterPoints": [ElectricityMeterPointType],
        "gasMeterPoints": [GasMeterPointType],
        "wanCoverage": "HIGH",
        "availableSmets2InstallationTimeslots": [Smets2InstallationTimeslotType]
      }
    ]
  }
}

providerAuthDetails

Type:ProviderAuthDetailsType

Auth details (e.g. OAuth 2.0 URI) for the provider (if available).

Arguments

NameDescription

provider (ProviderChoices!)

The provider to get the auth details for.

deviceType (KrakenFlexDeviceTypes!)

The device type to get the auth details for (as providers may support multiple).

clientType (ClientType)

The client type the request originated from. Used when oauth_uri is different between web and app.

accountNumber (String)

The account number that will be associated with the device. Required for some providers.

propertyId (Int)

The ID of the property the device belongs to.

Query

query ProviderAuthDetails(
  $provider: ProviderChoices!,
  $deviceType: KrakenFlexDeviceTypes!,
  $clientType: ClientType,
  $accountNumber: String,
  $propertyId: Int
) {
  providerAuthDetails(
    provider: $provider,
    deviceType: $deviceType,
    clientType: $clientType,
    accountNumber: $accountNumber,
    propertyId: $propertyId
  ) {
    oauthUri
  }
}

Variables

{
  "provider": "DAIKIN",
  "deviceType": "BATTERIES",
  "clientType": "APP",
  "accountNumber": "abc123",
  "propertyId": 1
}

Response

{
  "data": {
    "providerAuthDetails": {
      "oauthUri": "abc123"
    }
  }
}

providerVirtualKeyDetails

Type:ProviderVirtualKeyDetailsType

Virtual key details (e.g. certificate public key) for the provider (if available).

Arguments

NameDescription

provider (ProviderChoices!)

The provider to get the virtual key details for.

deviceType (KrakenFlexDeviceTypes!)

The device type to get the virtual key details for (as providers may support multiple).

Query

query ProviderVirtualKeyDetails(
  $provider: ProviderChoices!,
  $deviceType: KrakenFlexDeviceTypes!
) {
  providerVirtualKeyDetails(
    provider: $provider,
    deviceType: $deviceType
  ) {
    virtualKeyName
    virtualKeyUri
  }
}

Variables

{
  "provider": "DAIKIN",
  "deviceType": "BATTERIES"
}

Response

{
  "data": {
    "providerVirtualKeyDetails": {
      "virtualKeyName": "abc123",
      "virtualKeyUri": "abc123"
    }
  }
}

question

Type:String

Get the customer feedback survey question.

Arguments

NameDescription

formId (Int!)

Query

query Question($formId: Int!) {
  question(formId: $formId)
}

Variables

{
  "formId": 1
}

Response

{
  "data": {
    "question": "abc123"
  }
}

quote

Type:QuoteType

If a quote code and product id are supplied, this returns that quote. Otherwise it returns an empty quote. This is a convenient way to expose both existing quotes, as well as the OFGEM consumption profiles are creating a quote.

Arguments

NameDescription

code (String)

Query

query Quote($code: String) {
  quote(code: $code) {
    code
    postcode
    gspGroupId
    includesElectricity
    includesGas
    isBusiness
    meterType
    mpan
    paymentMethod
    elecAnnualConsumptionStandard
    elecAnnualConsumptionDay
    elecAnnualConsumptionNight
    elecEstimate
    gasAnnualConsumption
    gasEstimate
    partnerProductId
    latitude
    longitude
    address {
      ...QuoteAddressTypeFragment
    }
    consumptionEstimates {
      ...ConsumptionEstimatesFragment
    }
    quotedProducts {
      ...QuotedProductTypeFragment
    }
    termsAndConditions {
      ...TermsAndConditionsTypeFragment
    }
    mprn
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "quote": {
      "code": "abc123",
      "postcode": "abc123",
      "gspGroupId": "abc123",
      "includesElectricity": true,
      "includesGas": true,
      "isBusiness": true,
      "meterType": "NO_METER",
      "mpan": "abc123",
      "paymentMethod": "DIRECTDEBIT",
      "elecAnnualConsumptionStandard": 1,
      "elecAnnualConsumptionDay": 1,
      "elecAnnualConsumptionNight": 1,
      "elecEstimate": true,
      "gasAnnualConsumption": 1,
      "gasEstimate": true,
      "partnerProductId": 1,
      "latitude": 1.0,
      "longitude": 1.0,
      "address": QuoteAddressType,
      "consumptionEstimates": ConsumptionEstimates,
      "quotedProducts": [QuotedProductType],
      "termsAndConditions": TermsAndConditionsType,
      "mprn": "abc123"
    }
  }
}

quoteRequest

Type:QuoteRequest

This is a work in progress and not in use yet.

Arguments

NameDescription

quoteCode (String!)

Code of the quote request.

Query

query QuoteRequest($quoteCode: String!) {
  quoteRequest(quoteCode: $quoteCode) {
    electricitySupplyPoints {
      ...ElectricitySupplyPointFragment
    }
    gasSupplyPoints {
      ...GasSupplyPointFragment
    }
    createdAt
    code
  }
}

Variables

{
  "quoteCode": "abc123"
}

Response

{
  "data": {
    "quoteRequest": {
      "electricitySupplyPoints": [ElectricitySupplyPoint],
      "gasSupplyPoints": [GasSupplyPoint],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "code": "abc123"
    }
  }
}

rateLimit

Type:RateLimitInformation

Information about rate limit for viewer.

Query

query RateLimit {
  rateLimit {
    limit
    remainingPoints
    usedPoints
  }
}

Response

{
  "data": {
    "rateLimit": {
      "limit": 1,
      "remainingPoints": 1,
      "usedPoints": 1
    }
  }
}

registeredKrakenflexDevice

Type:KrakenFlexDeviceType

A device registered with KrakenFlex for a given account.

Arguments

NameDescription

accountNumber (String!)

Query

query RegisteredKrakenflexDevice($accountNumber: String!) {
  registeredKrakenflexDevice(accountNumber: $accountNumber) {
    krakenflexDeviceId
    provider
    vehicleMake
    vehicleModel
    vehicleBatterySizeInKwh
    chargePointMake
    chargePointModel
    chargePointPowerInKw
    status
    suspended
    hasToken
    createdAt
    stateOfChargeLimit {
      ...StateOfChargeLimitFragment
    }
    testDispatchFailureReason
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "registeredKrakenflexDevice": {
      "krakenflexDeviceId": "abc123",
      "provider": "DAIKIN",
      "vehicleMake": "abc123",
      "vehicleModel": "abc123",
      "vehicleBatterySizeInKwh": 1.0,
      "chargePointMake": "abc123",
      "chargePointModel": "abc123",
      "chargePointPowerInKw": 1.0,
      "status": "abc123",
      "suspended": true,
      "hasToken": true,
      "createdAt": "2020-01-01T00:00:00.000Z",
      "stateOfChargeLimit": StateOfChargeLimit,
      "testDispatchFailureReason": "NONE"
    }
  }
}

savingSessions

Type:SavingSessionsType

Saving sessions queries for an account.

Arguments

NameDescription

accountNumber (String)

Kraken account number.

Query

query SavingSessions($accountNumber: String) {
  savingSessions(accountNumber: $accountNumber) {
    account {
      ...SavingSessionsAccountTypeFragment
    }
    events {
      ...SavingSessionsEventTypeFragment
    }
    eventCount
    nationalAggregatedStats {
      ...SavingSessionsNationalAggregatedStatsTypeFragment
    }
    prizeDrawInformation {
      ...SavingSessionsPrizeDrawInformationTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "savingSessions": {
      "account": SavingSessionsAccountType,
      "events": [SavingSessionsEventType],
      "eventCount": 1,
      "nationalAggregatedStats": SavingSessionsNationalAggregatedStatsType,
      "prizeDrawInformation": SavingSessionsPrizeDrawInformationType
    }
  }
}

segInstallation

Type:SEGInstallationType!

The validity of a SEG installation via the MCS installation database.

Arguments

NameDescription

mcsCertificateNumber (String!)

The MCS certificate number.

Query

query SegInstallation($mcsCertificateNumber: String!) {
  segInstallation(mcsCertificateNumber: $mcsCertificateNumber) {
    isValid
  }
}

Variables

{
  "mcsCertificateNumber": "abc123"
}

Response

{
  "data": {
    "segInstallation": {
      "isValid": true
    }
  }
}

shoptopusVoucherAvailability

Type:[ShoptopusVoucherAvailabilityType]

Describes availability of Shoptopus Vouchers for given Octopoint amounts.

Arguments

NameDescription

voucherValues ([Int]!)

The values (in Octopoints) for which to return voucher availability (maximum 5 values).

Query

query ShoptopusVoucherAvailability($voucherValues: [Int]!) {
  shoptopusVoucherAvailability(voucherValues: $voucherValues) {
    value
    availability
  }
}

Variables

{
  "voucherValues": 1
}

Response

{
  "data": {
    "shoptopusVoucherAvailability": [
      {
        "value": 1,
        "availability": true
      }
    ]
  }
}

siteworksCoconutAppointmentPollDelay

Type:Int

Setting to determine delay in first poll when fetching async timeslots (in ms).

Query

query SiteworksCoconutAppointmentPollDelay {
  siteworksCoconutAppointmentPollDelay
}

Response

{
  "data": {
    "siteworksCoconutAppointmentPollDelay": 1
  }
}

siteworksCoconutAppointmentPollInterval

Type:Int

Setting to determine interval when fetching async timeslots (in ms).

Query

query SiteworksCoconutAppointmentPollInterval {
  siteworksCoconutAppointmentPollInterval
}

Response

{
  "data": {
    "siteworksCoconutAppointmentPollInterval": 1
  }
}

siteworksCoconutAppointmentPollMaxCount

Type:Int

Setting to determine how many times at most to fetch async timeslots.

Query

query SiteworksCoconutAppointmentPollMaxCount {
  siteworksCoconutAppointmentPollMaxCount
}

Response

{
  "data": {
    "siteworksCoconutAppointmentPollMaxCount": 1
  }
}

smartDeviceNetwork

Type:SmartMeterDeviceNetworkType

Retrieve smartmeter devices connected to the same Home Area Network.

Arguments

NameDescription

deviceId (String!)

The deviceId of one of the devices on the Home Area Network.

Query

query SmartDeviceNetwork($deviceId: String!) {
  smartDeviceNetwork(deviceId: $deviceId) {
    id
    smartDevices {
      ...SmartMeterDeviceTypeFragment
    }
  }
}

Variables

{
  "deviceId": "abc123"
}

Response

{
  "data": {
    "smartDeviceNetwork": {
      "id": "abc123",
      "smartDevices": [SmartMeterDeviceType]
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

Query

query SmartMeterDataPreferences($accountNumber: String!) {
  smartMeterDataPreferences(accountNumber: $accountNumber) {
    readingFrequency
    readingsAnalysisConsentProvided
    readingsAnalysisConsentUpdatedDatetime
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "smartMeterDataPreferences": {
      "readingFrequency": "DAILY",
      "readingsAnalysisConsentProvided": true,
      "readingsAnalysisConsentUpdatedDatetime": "2020-01-01T00:00:00.000Z"
    }
  }
}

smartMeterTelemetry

Type:[SmartMeterTelemetryType]

Query telemetry data collected by the CAD associated with the provided ESME or GSME device ID.

If only the smart meter device ID is provided, the latest data available will be returned.

Additionally including the range options (start, end, and grouping) will return the data for that time period, at the desired granularity.

Arguments

NameDescription

deviceId (String!)

The ESME or GSME's EUI64 ID, e.g. '12-34-5A-FF-FF-6B-C7-89'

start (DateTime)

The start time of the range of readings (inclusive), e.g. '2022-01-28T16:33:22+00:00'. If no UTC timezone offset is included, UTC (+00:00) will be assumed.

end (DateTime)

The end time of the range of readings (exclusive), e.g. '2022-01-28T16:34:42+00:00'. If no UTC timezone offset is included, UTC (+00:00) will be assumed.

grouping (TelemetryGrouping)

The granularity of the returned data. The representative data item (e.g. consumption) for each group (e.g. every 5 minutes) will be the mean value over that period.

Query

query SmartMeterTelemetry(
  $deviceId: String!,
  $start: DateTime,
  $end: DateTime,
  $grouping: TelemetryGrouping
) {
  smartMeterTelemetry(
    deviceId: $deviceId,
    start: $start,
    end: $end,
    grouping: $grouping
  ) {
    readAt
    consumption
    demand
    consumptionDelta
    costDelta
    costDeltaWithTax
  }
}

Variables

{
  "deviceId": "abc123",
  "start": "2020-01-01T00:00:00.000Z",
  "end": "2020-01-01T00:00:00.000Z",
  "grouping": "TEN_SECONDS"
}

Response

{
  "data": {
    "smartMeterTelemetry": [
      {
        "readAt": "2020-01-01T00:00:00.000Z",
        "consumption": 1.0,
        "demand": 1.0,
        "consumptionDelta": 1.0,
        "costDelta": 1.0,
        "costDeltaWithTax": 1.0
      }
    ]
  }
}

smartTariffComparison

Type:SmartTariffComparisonType

Compare consumption costs for different smart tariffs.

Arguments

NameDescription

mpan (String)

MPAN of the import meter point linked to the meter.

Query

query SmartTariffComparison($mpan: String) {
  smartTariffComparison(mpan: $mpan) {
    currentCost
    currentCostWithTax
    costComparisons {
      ...TariffComparisonTypeFragment
    }
  }
}

Variables

{
  "mpan": "abc123"
}

Response

{
  "data": {
    "smartTariffComparison": {
      "currentCost": 1.0,
      "currentCostWithTax": 1.0,
      "costComparisons": [TariffComparisonType]
    }
  }
}

taskResult

Type:TaskResult

Get the status of a background task.

Arguments

NameDescription

taskId (String!)

accountNumber (String!)

Query

query TaskResult(
  $taskId: String!,
  $accountNumber: String!
) {
  taskResult(
    taskId: $taskId,
    accountNumber: $accountNumber
  ) {
    status
    result
    error
  }
}

Variables

{
  "taskId": "abc123",
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "taskResult": {
      "status": "STARTED",
      "result": {"key": "value"},
      "error": "abc123"
    }
  }
}

termsAndConditionsForProduct

Type:TermsAndConditionsType

Get the active terms and conditions for a product.

Arguments

NameDescription

productCode (String!)

Query

query TermsAndConditionsForProduct($productCode: String!) {
  termsAndConditionsForProduct(productCode: $productCode) {
    name
    pdfUrl
    brandCode
    markdown
    html
    version
    effectiveFrom
  }
}

Variables

{
  "productCode": "abc123"
}

Response

{
  "data": {
    "termsAndConditionsForProduct": {
      "name": "abc123",
      "pdfUrl": "abc123",
      "brandCode": "abc123",
      "markdown": "abc123",
      "html": "abc123",
      "version": "abc123",
      "effectiveFrom": "2020-01-01T00:00:00.000Z"
    }
  }
}

urls

Type:Urls

URLs for an account.

Arguments

NameDescription

accountNumber (String!)

The account number of the URLs' account.

Query

query Urls($accountNumber: String!) {
  urls(accountNumber: $accountNumber) {
    wheelOfFortuneElec
    wheelOfFortuneGas
    meterReadingSubmission
    tariffRenewal
    bookSmartMeterInstallation
    updateSensitiveCustomerData
    savingSessionsJoinCampaign
    savingSessionsDashboard
    savingSessionsJoinNextEvent
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "urls": {
      "wheelOfFortuneElec": "abc123",
      "wheelOfFortuneGas": "abc123",
      "meterReadingSubmission": "abc123",
      "tariffRenewal": "abc123",
      "bookSmartMeterInstallation": "abc123",
      "updateSensitiveCustomerData": "abc123",
      "savingSessionsJoinCampaign": "abc123",
      "savingSessionsDashboard": "abc123",
      "savingSessionsJoinNextEvent": "abc123"
    }
  }
}

userVehicles

Type:[UserVehiclesType]

A list of vehicles available to the user.

Arguments

NameDescription

accountNumber (String)

supportedProvider (ProviderChoices)

The provider used to authenticate the device (default Enode).

authentication (AuthenticationInput)

The authentication details required given the chosen provider.

Query

query UserVehicles(
  $accountNumber: String,
  $supportedProvider: ProviderChoices,
  $authentication: AuthenticationInput
) {
  userVehicles(
    accountNumber: $accountNumber,
    supportedProvider: $supportedProvider,
    authentication: $authentication
  ) {
    vehicleId
    information {
      ...VehicleInformationTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "supportedProvider": "DAIKIN",
  "authentication": AuthenticationInput
}

Response

{
  "data": {
    "userVehicles": [
      {
        "vehicleId": "abc123",
        "information": VehicleInformationType
      }
    ]
  }
}

vehicleChargingPreferences

Type:VehicleChargingPreferencesType

Vehicle charging preference details.

Arguments

NameDescription

accountNumber (String!)

Query

query VehicleChargingPreferences($accountNumber: String!) {
  vehicleChargingPreferences(accountNumber: $accountNumber) {
    weekdayTargetTime
    weekdayTargetSoc
    weekendTargetTime
    weekendTargetSoc
    minimumSocPercentage
    maximumSocPercentage
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "vehicleChargingPreferences": {
      "weekdayTargetTime": "abc123",
      "weekdayTargetSoc": 1,
      "weekendTargetTime": "abc123",
      "weekendTargetSoc": 1,
      "minimumSocPercentage": 1,
      "maximumSocPercentage": 1
    }
  }
}

viewer

Type:AccountUserType

The currently authenticated user.

This field requires the Authorization header to be set.

Query

query Viewer {
  viewer {
    id
    accounts {
      ...AccountInterfaceFragment
    }
    givenName
    familyName
    email
    mobile
    landline
    title
    pronouns
    isDeceased
    liveSecretKey
    portfolios {
      ...PortfolioConnectionTypeConnectionFragment
    }
    dateOfBirth
    details {
      ...AccountUserDetailTypeFragment
    }
    displayName
    firstName
    lastName
    fullName
    preferredName
    portfolioId
    portfolioIds
    specialCircumstances {
      ...SpecialCircumstancesTypeFragment
    }
    preferences {
      ...AccountUserCommsPreferencesFragment
    }
    landlinePhoneNumber
    alternativePhoneNumbers
    hasFamilyIssues
    isInHardship
    accountUserRoles {
      ...AccountUserRoleTypeFragment
    }
    portfolioUserRoles {
      ...PortfolioUserRoleTypeFragment
    }
    holdMusicChoices {
      ...TrackOptionTypeFragment
    }
    isOptedInToWof
  }
}

Response

{
  "data": {
    "viewer": {
      "id": "abc123",
      "accounts": AccountInterface,
      "givenName": "abc123",
      "familyName": "abc123",
      "email": "abc123",
      "mobile": "abc123",
      "landline": "abc123",
      "title": "abc123",
      "pronouns": "abc123",
      "isDeceased": true,
      "liveSecretKey": "abc123",
      "portfolios": PortfolioConnectionTypeConnection,
      "dateOfBirth": "2020-01-01",
      "details": [AccountUserDetailType],
      "displayName": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "fullName": "abc123",
      "preferredName": "abc123",
      "portfolioId": "abc123",
      "portfolioIds": ["abc123"],
      "specialCircumstances": SpecialCircumstancesType,
      "preferences": AccountUserCommsPreferences,
      "landlinePhoneNumber": "abc123",
      "alternativePhoneNumbers": ["abc123"],
      "hasFamilyIssues": true,
      "isInHardship": true,
      "accountUserRoles": [AccountUserRoleType],
      "portfolioUserRoles": [PortfolioUserRoleType],
      "holdMusicChoices": [TrackOptionType],
      "isOptedInToWof": true
    }
  }
}

wanCoverage

Type:WANCoverageStrengths

Likelihood that a smart meter at the given postcode will get a stable network connection.

Arguments

NameDescription

postcode (String!)

Query

query WanCoverage($postcode: String!) {
  wanCoverage(postcode: $postcode)
}

Variables

{
  "postcode": "abc123"
}

Response

{
  "data": {
    "wanCoverage": "HIGH"
  }
}

wanCoverageDetail

Type:[WanCoverageDetail]

Detailed WAN coverage report for a given post code and optional address identifier

Arguments

NameDescription

postcode (String!)

addressIdentifier (String)

Query

query WanCoverageDetail(
  $postcode: String!,
  $addressIdentifier: String
) {
  wanCoverageDetail(
    postcode: $postcode,
    addressIdentifier: $addressIdentifier
  ) {
    postcode
    addressIdentifier
    isCoverageAvailable
    anticipatedCoverageAt
    wanTechnology
    auxiliaryEquipment
    connectivityLikelihood
    additionalInformation
  }
}

Variables

{
  "postcode": "abc123",
  "addressIdentifier": "abc123"
}

Response

{
  "data": {
    "wanCoverageDetail": [
      {
        "postcode": "abc123",
        "addressIdentifier": "abc123",
        "isCoverageAvailable": true,
        "anticipatedCoverageAt": "abc123",
        "wanTechnology": "abc123",
        "auxiliaryEquipment": "abc123",
        "connectivityLikelihood": "abc123",
        "additionalInformation": "abc123"
      }
    ]
  }
}

wheelOfFortuneSegments

Type:WheelSegmentsType!

Retrieve the segments to be displayed on the Wheel of Fortune.

This field requires the Authorization header to be set.

Query

query WheelOfFortuneSegments {
  wheelOfFortuneSegments {
    segments
  }
}

Response

{
  "data": {
    "wheelOfFortuneSegments": {
      "segments": [1]
    }
  }
}

wheelOfFortuneSpins

Type:AvailableSpinsType!

Retrieve the number of available Wheel of Fortune spins, per energy type, of an account by the account number.

This field requires the Authorization header to be set.

Arguments

NameDescription

accountNumber (String!)

The account number for which the available spins are gathered.

Query

query WheelOfFortuneSpins($accountNumber: String!) {
  wheelOfFortuneSpins(accountNumber: $accountNumber) {
    electricity {
      ...SupplyTypeSpecificSpinsTypeFragment
    }
    gas {
      ...SupplyTypeSpecificSpinsTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "wheelOfFortuneSpins": {
      "electricity": SupplyTypeSpecificSpinsType,
      "gas": SupplyTypeSpecificSpinsType
    }
  }
}

wofUrls

Type:[AccountUrl]

List Wheel of Fortune URLs for an account.

Arguments

NameDescription

accountNumber (String!)

Query

query WofUrls($accountNumber: String!) {
  wofUrls(accountNumber: $accountNumber) {
    urlIdentifier
    url
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "wofUrls": [
      {
        "urlIdentifier": "abc123",
        "url": "abc123"
      }
    ]
  }
}