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.

API Site

account

Type: AccountType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about an account.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Query

query Account($accountNumber: String!) {
  account(accountNumber: $accountNumber) {
    id
    number
    status
    paymentSchedules {
      ...PaymentScheduleConnectionTypeConnectionFragment
    }
    users {
      ...AccountUserTypeFragment
    }
    consentData
    complaints {
      ...ComplaintConnectionTypeConnectionFragment
    }
    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
    }
    paymentPlans {
      ...PaymentPlanConnectionTypeConnectionFragment
    }
    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
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    events {
      ...AccountEventConnectionTypeConnectionFragment
    }
    applications {
      ...AccountApplicationConnectionTypeConnectionFragment
    }
    accountType
    businessType
    business {
      ...BusinessTypeFragment
    }
    commsDeliveryPreference
    communicationDeliveryPreference
    documentAccessibility
    references {
      ...AccountReferenceTypeFragment
    }
    fileAttachments {
      ...AccountFileAttachmentFragment
    }
    paginatedFileAttachments {
      ...AccountFileAttachmentConnectionTypeConnectionFragment
    }
    maximumRefund {
      ...MaximumRefundTypeFragment
    }
    campaigns {
      ...AccountCampaignTypeFragment
    }
    isInHardship
    activeHardshipAgreements {
      ...HardshipAgreementTypeFragment
    }
    notes {
      ...AccountNoteTypeFragment
    }
    contributionAgreements {
      ...ContributionAgreementTypeFragment
    }
    assistanceAgreements {
      ...AssistanceAgreementTypeFragment
    }
    debtCollectionProceedings {
      ...DebtCollectionProceedingTypeFragment
    }
    createdAt
    preferredLanguageForComms
    consents {
      ...ConsentTypeFragment
    }
    reminders {
      ...AccountReminderConnectionTypeConnectionFragment
    }
    properties {
      ...PropertyTypeFragment
    }
    marketSupplyAgreements {
      ...AgreementConnectionFragment
    }
    canModifyPayments {
      ...CanModifyPaymentsTypeFragment
    }
    meterPointStatus
    isShellAccount
    isEligibleForIntelligentOctopus
    agreements {
      ...AgreementTypeFragment
    }
    isOnSupply
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "account": {
      "id": "abc123",
      "number": "abc123",
      "status": "PENDING",
      "paymentSchedules": PaymentScheduleConnectionTypeConnection,
      "users": AccountUserType,
      "consentData": {"key": "value"},
      "complaints": ComplaintConnectionTypeConnection,
      "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,
      "paymentPlans": PaymentPlanConnectionTypeConnection,
      "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,
      "paymentMethods": PaymentInstructionConnectionTypeConnection,
      "events": AccountEventConnectionTypeConnection,
      "applications": AccountApplicationConnectionTypeConnection,
      "accountType": "BUSINESS",
      "businessType": "SOLE_TRADER",
      "business": BusinessType,
      "commsDeliveryPreference": "EMAIL",
      "communicationDeliveryPreference": "abc123",
      "documentAccessibility": "LARGE_PRINT",
      "references": [AccountReferenceType],
      "fileAttachments": [AccountFileAttachment],
      "paginatedFileAttachments": AccountFileAttachmentConnectionTypeConnection,
      "maximumRefund": MaximumRefundType,
      "campaigns": [AccountCampaignType],
      "isInHardship": true,
      "activeHardshipAgreements": [HardshipAgreementType],
      "notes": [AccountNoteType],
      "contributionAgreements": [ContributionAgreementType],
      "assistanceAgreements": [AssistanceAgreementType],
      "debtCollectionProceedings": [DebtCollectionProceedingType],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "preferredLanguageForComms": "abc123",
      "consents": ConsentType,
      "reminders": AccountReminderConnectionTypeConnection,
      "properties": [PropertyType],
      "marketSupplyAgreements": AgreementConnection,
      "canModifyPayments": CanModifyPaymentsType,
      "meterPointStatus": "abc123",
      "isShellAccount": true,
      "isEligibleForIntelligentOctopus": true,
      "agreements": [AgreementType],
      "isOnSupply": true
    }
  }
}

accountChargeReasons

Type: [ChargeReasonType]

URL: https://api.oeus-kraken.energy/v1/graphql/

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"
      }
    ]
  }
}

accountContract

Type: Contract

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about an account contract.

The possible errors that can be raised are:

  • KT-CT-10003: Contract not found.
  • KT-CT-10005: Missing required parameter: either identifier or accountNumber must be provided.
  • KT-CT-10006: Account not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

identifier (String)

The identifier of the contract.

accountNumber (String)

The account number to find the contract for.

version (Int)

The version of the contract.

Query

query AccountContract(
  $identifier: String,
  $accountNumber: String,
  $version: Int
) {
  accountContract(
    identifier: $identifier,
    accountNumber: $accountNumber,
    version: $version
  ) {
    identifier
    title
    party
    subject {
      ...AccountTypeFragment
    }
    status
    validFrom
    validTo
    signedAt
    cancelledAt
    lifecycle {
      ...ContractVersionFragment
    }
    terms {
      ...TermInterfaceFragment
    }
  }
}

Variables

{
  "identifier": "abc123",
  "accountNumber": "abc123",
  "version": 1
}

Response

{
  "data": {
    "accountContract": {
      "identifier": NonEmptyString,
      "title": "abc123",
      "party": ContractParty,
      "subject": [AccountType],
      "status": "REVOKED",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "signedAt": "2020-01-01T00:00:00.000Z",
      "cancelledAt": "2020-01-01T00:00:00.000Z",
      "lifecycle": ContractVersion,
      "terms": TermInterface
    }
  }
}

accountCreditReasons

Type: [CreditReasonType]

URL: https://api.oeus-kraken.energy/v1/graphql/

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"
      }
    ]
  }
}

accountInfoPrechecksValidation

Type: PrechecksValidationOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns whether the given data passes pre-check validation.

Arguments

Name Description

precheckData (PrechecksValidationInputType!)

Data for pre-check validation.

Query

query AccountInfoPrechecksValidation($precheckData: PrechecksValidationInputType!) {
  accountInfoPrechecksValidation(precheckData: $precheckData) {
    denyEnrollment
    email {
      ...PrecheckEmailValidationOutputFragment
    }
  }
}

Variables

{
  "precheckData": PrechecksValidationInputType
}

Response

{
  "data": {
    "accountInfoPrechecksValidation": {
      "denyEnrollment": true,
      "email": PrecheckEmailValidationOutput
    }
  }
}

accountIoEligibility

Type: AccountIoEligibility

URL: https://api.oeus-kraken.energy/v1/graphql/

Determines whether an account is eligible to register devices with SmartFlex.

Arguments

Name Description

accountNumber (String!)

Account number.

propertyId (Int)

            The property's id where the device will be registered to.
            Note: in future, eligibility checks will be dependent on the property id and
            it will be a required input.

Query

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

Variables

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

Response

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

accountReference

Type: [AccountReferenceType]

URL: https://api.oeus-kraken.energy/v1/graphql/

List of matching account references.

The possible errors that can be raised are:

  • KT-CT-8310: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

value (String)

Filter account references by this value.

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
      }
    ]
  }
}

accounts

Type: [AccountType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about multiple accounts.

Arguments

Name Description

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
    }
    consentData
    complaints {
      ...ComplaintConnectionTypeConnectionFragment
    }
    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
    }
    paymentPlans {
      ...PaymentPlanConnectionTypeConnectionFragment
    }
    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
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    events {
      ...AccountEventConnectionTypeConnectionFragment
    }
    applications {
      ...AccountApplicationConnectionTypeConnectionFragment
    }
    accountType
    businessType
    business {
      ...BusinessTypeFragment
    }
    commsDeliveryPreference
    communicationDeliveryPreference
    documentAccessibility
    references {
      ...AccountReferenceTypeFragment
    }
    fileAttachments {
      ...AccountFileAttachmentFragment
    }
    paginatedFileAttachments {
      ...AccountFileAttachmentConnectionTypeConnectionFragment
    }
    maximumRefund {
      ...MaximumRefundTypeFragment
    }
    campaigns {
      ...AccountCampaignTypeFragment
    }
    isInHardship
    activeHardshipAgreements {
      ...HardshipAgreementTypeFragment
    }
    notes {
      ...AccountNoteTypeFragment
    }
    contributionAgreements {
      ...ContributionAgreementTypeFragment
    }
    assistanceAgreements {
      ...AssistanceAgreementTypeFragment
    }
    debtCollectionProceedings {
      ...DebtCollectionProceedingTypeFragment
    }
    createdAt
    preferredLanguageForComms
    consents {
      ...ConsentTypeFragment
    }
    reminders {
      ...AccountReminderConnectionTypeConnectionFragment
    }
    properties {
      ...PropertyTypeFragment
    }
    marketSupplyAgreements {
      ...AgreementConnectionFragment
    }
    canModifyPayments {
      ...CanModifyPaymentsTypeFragment
    }
    meterPointStatus
    isShellAccount
    isEligibleForIntelligentOctopus
    agreements {
      ...AgreementTypeFragment
    }
    isOnSupply
  }
}

Variables

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

Response

{
  "data": {
    "accounts": [
      {
        "id": "abc123",
        "number": "abc123",
        "status": "PENDING",
        "paymentSchedules": PaymentScheduleConnectionTypeConnection,
        "users": AccountUserType,
        "consentData": {"key": "value"},
        "complaints": ComplaintConnectionTypeConnection,
        "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,
        "paymentPlans": PaymentPlanConnectionTypeConnection,
        "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,
        "paymentMethods": PaymentInstructionConnectionTypeConnection,
        "events": AccountEventConnectionTypeConnection,
        "applications": AccountApplicationConnectionTypeConnection,
        "accountType": "BUSINESS",
        "businessType": "SOLE_TRADER",
        "business": BusinessType,
        "commsDeliveryPreference": "EMAIL",
        "communicationDeliveryPreference": "abc123",
        "documentAccessibility": "LARGE_PRINT",
        "references": [AccountReferenceType],
        "fileAttachments": [AccountFileAttachment],
        "paginatedFileAttachments": AccountFileAttachmentConnectionTypeConnection,
        "maximumRefund": MaximumRefundType,
        "campaigns": [AccountCampaignType],
        "isInHardship": true,
        "activeHardshipAgreements": [HardshipAgreementType],
        "notes": [AccountNoteType],
        "contributionAgreements": [ContributionAgreementType],
        "assistanceAgreements": [AssistanceAgreementType],
        "debtCollectionProceedings": [DebtCollectionProceedingType],
        "createdAt": "2020-01-01T00:00:00.000Z",
        "preferredLanguageForComms": "abc123",
        "consents": ConsentType,
        "reminders": AccountReminderConnectionTypeConnection,
        "properties": [PropertyType],
        "marketSupplyAgreements": AgreementConnection,
        "canModifyPayments": CanModifyPaymentsType,
        "meterPointStatus": "abc123",
        "isShellAccount": true,
        "isEligibleForIntelligentOctopus": true,
        "agreements": [AgreementType],
        "isOnSupply": true
      }
    ]
  }
}

accountsSearch

Type: [AccountSearchItemType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Search for account that are already in Kraken and match the search terms.

Arguments

Name Description

searchTerms (AccountSearchInputType)

Search operators.

maxResults (Int)

The maximum number of results to return.

Query

query AccountsSearch(
  $searchTerms: AccountSearchInputType,
  $maxResults: Int
) {
  accountsSearch(
    searchTerms: $searchTerms,
    maxResults: $maxResults
  ) {
    account {
      ...AccountTypeFragment
    }
    score
  }
}

Variables

{
  "searchTerms": AccountSearchInputType,
  "maxResults": 1
}

Response

{
  "data": {
    "accountsSearch": [
      {
        "account": AccountType,
        "score": "1.0"
      }
    ]
  }
}

activeAffiliateReferralScheme

Type: ReferralSchemeType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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
    maxRecurrence
    isUsageAtCapacity
  }
}

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",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

activeDomesticSignupRewardScheme

Type: ReferralSchemeType

URL: https://api.oeus-kraken.energy/v1/graphql/

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
    maxRecurrence
    isUsageAtCapacity
  }
}

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",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

addressLookup

Type: [AddressTdspMappingOutputType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get address mapping by providing ESI ID or address details.

Arguments

Name Description

esiId (String)

The ESI ID of the meter point at the address.

address (String)

The street address.

address2 (String)

The second line of the street address.

city (String)

The city of the address.

postCode (String)

The postal code of the address.

state (String)

The state of the address.

Query

query AddressLookup(
  $esiId: String,
  $address: String,
  $address2: String,
  $city: String,
  $postCode: String,
  $state: String
) {
  addressLookup(
    esiId: $esiId,
    address: $address,
    address2: $address2,
    city: $city,
    postCode: $postCode,
    state: $state
  ) {
    esiId
    houseNumber
    address
    address2
    city
    postCode
    state
    serviceProvider
    loadZone
    isCustomer {
      ...OeCustomerOutputFragment
    }
    isKrakenCustomer {
      ...IsKrakenCustomerOutputFragment
    }
    meterType
    premiseType
  }
}

Variables

{
  "esiId": "abc123",
  "address": "abc123",
  "address2": "abc123",
  "city": "abc123",
  "postCode": "abc123",
  "state": "abc123"
}

Response

{
  "data": {
    "addressLookup": [
      {
        "esiId": "abc123",
        "houseNumber": "abc123",
        "address": "abc123",
        "address2": "abc123",
        "city": "abc123",
        "postCode": "abc123",
        "state": "abc123",
        "serviceProvider": "AEP_TCC",
        "loadZone": "LZ_HOUSTON",
        "isCustomer": OeCustomerOutput,
        "isKrakenCustomer": IsKrakenCustomerOutput,
        "meterType": "AMSM",
        "premiseType": "RESIDENTIAL"
      }
    ]
  }
}

Arguments

Name Description

search (String!)

Query

query AddressLookupUsingEsSearch($search: String!) {
  addressLookupUsingEsSearch(search: $search) {
    esiId
    houseNumber
    address
    address2
    city
    postCode
    state
    serviceProvider
    loadZone
    isCustomer {
      ...OeCustomerOutputFragment
    }
    isKrakenCustomer {
      ...IsKrakenCustomerOutputFragment
    }
    meterType
    premiseType
  }
}

Variables

{
  "search": "abc123"
}

Response

{
  "data": {
    "addressLookupUsingEsSearch": [
      {
        "esiId": "abc123",
        "houseNumber": "abc123",
        "address": "abc123",
        "address2": "abc123",
        "city": "abc123",
        "postCode": "abc123",
        "state": "abc123",
        "serviceProvider": "AEP_TCC",
        "loadZone": "LZ_HOUSTON",
        "isCustomer": OeCustomerOutput,
        "isKrakenCustomer": IsKrakenCustomerOutput,
        "meterType": "AMSM",
        "premiseType": "RESIDENTIAL"
      }
    ]
  }
}

Type: AffiliateLinkType!

URL: https://api.oeus-kraken.energy/v1/graphql/

Link object for an affiliate organization.

The possible errors that can be raised are:

  • KT-CT-7713: Invalid data.
  • KT-CT-7718: Affiliate link is expired.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

subdomain (String!)

The affiliate link subdomain.

Query

query AffiliateLink($subdomain: String!) {
  affiliateLink(subdomain: $subdomain) {
    id
    organisation {
      ...AffiliateOrganisationTypeFragment
    }
    subdomain
    trainingStatus
    isBusiness
    contactName
    contactEmail
    landingUrl
  }
}

Variables

{
  "subdomain": "abc123"
}

Response

{
  "data": {
    "affiliateLink": {
      "id": "abc123",
      "organisation": AffiliateOrganisationType,
      "subdomain": "abc123",
      "trainingStatus": "NOT_APPLICABLE",
      "isBusiness": true,
      "contactName": "abc123",
      "contactEmail": "abc123",
      "landingUrl": "abc123"
    }
  }
}

affiliateOrganisation

Type: AffiliateOrganisationType

URL: https://api.oeus-kraken.energy/v1/graphql/

Return the details of a given affiliate organization, if any exists.

The possible errors that can be raised are:

  • KT-CT-7701: The affiliate organisation was not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

id (Int!)

The affiliate organisation ID.

Query

query AffiliateOrganisation($id: Int!) {
  affiliateOrganisation(id: $id) {
    id
    name
    contactEmail
    salesChannel
    canRenewTariffs
    defaultAccountType
    allowAlternativePaymentMethods
    canRegisterBusinessMeterPoints
    canRegisterPortfolioAccounts
    canRegisterCustomersWithoutEmailAddress
    canUseIvrSupportApi
    skipMeterPointAddressValidation
    salesChannelCode
    isFieldSalesOnlyProduct
  }
}

Variables

{
  "id": 1
}

Response

{
  "data": {
    "affiliateOrganisation": {
      "id": "abc123",
      "name": "abc123",
      "contactEmail": "abc123",
      "salesChannel": "DIRECT",
      "canRenewTariffs": true,
      "defaultAccountType": "BUSINESS",
      "allowAlternativePaymentMethods": true,
      "canRegisterBusinessMeterPoints": true,
      "canRegisterPortfolioAccounts": true,
      "canRegisterCustomersWithoutEmailAddress": true,
      "canUseIvrSupportApi": true,
      "skipMeterPointAddressValidation": true,
      "salesChannelCode": "abc123",
      "isFieldSalesOnlyProduct": true
    }
  }
}

Arguments

Name Description

input (APIBrownoutInput)

Statuses to filter for. Otherwise return active and upcoming brownouts.

before (String)

after (String)

first (Int)

last (Int)

Query

query ApiBrownouts(
  $input: APIBrownoutInput,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  apiBrownouts(
    input: $input,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...APIBrownoutEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "input": APIBrownoutInput,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "apiBrownouts": {
      "pageInfo": PageInfo,
      "edges": APIBrownoutEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

Name Description

input (APIExceptionQueryInput)

Fields to filter for. Otherwise don't filter at all.

before (String)

after (String)

first (Int)

last (Int)

Query

query ApiExceptions(
  $input: APIExceptionQueryInput,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  apiExceptions(
    input: $input,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...APIExceptionConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "input": APIExceptionQueryInput,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "apiExceptions": {
      "pageInfo": PageInfo,
      "edges": APIExceptionConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

appSessions

Type: AppSessionConnectionTypeConnection!

URL: https://api.oeus-kraken.energy/v1/graphql/

App sessions recorded at the specified address.

Arguments

Name Description

postcode (String!)

The postcode of the address at which the app session was recorded.

before (String)

after (String)

first (Int)

last (Int)

Query

query AppSessions(
  $postcode: String!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  appSessions(
    postcode: $postcode,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AppSessionConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

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

Response

{
  "data": {
    "appSessions": {
      "pageInfo": PageInfo,
      "edges": AppSessionConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

authorizedApplications

Type: [AuthorizedApplication]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all the confidential-client applications the current user has authorized.

Query

query AuthorizedApplications {
  authorizedApplications {
    name
    clientId
  }
}

Response

{
  "data": {
    "authorizedApplications": [
      {
        "name": "abc123",
        "clientId": "abc123"
      }
    ]
  }
}

availableProductSwitchDates

Type: [Date]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get available dates for product switch.

The possible errors that can be raised are:

  • KT-CT-1501: Agreement not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

agreementId (Int!)

Agreement ID.

maxRange (Int)

The maximum number of days to look for available dates.

Query

query AvailableProductSwitchDates(
  $agreementId: Int!,
  $maxRange: Int
) {
  availableProductSwitchDates(
    agreementId: $agreementId,
    maxRange: $maxRange
  )
}

Variables

{
  "agreementId": 1,
  "maxRange": 1
}

Response

{
  "data": {
    "availableProductSwitchDates": ["2020-01-01"]
  }
}

availableProducts

Type: [SupplyProductType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get available products for the given market.

The possible errors that can be raised are:

  • KT-CT-4930: Unsupported market.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

marketName (String!)

Products available for the target market.

Query

query AvailableProducts($marketName: String!) {
  availableProducts(marketName: $marketName) {
    id
    code
    notes
    fullName
    displayName
    description
    availableFrom
    availableTo
    isHidden
    term
    endsAt
    brandCode
    marketName
    availabilityStatus
    termsContractType
    termsAndConditionsTypes {
      ...TermsAndConditionsTypeFragment
    }
    params
    tags
  }
}

Variables

{
  "marketName": "abc123"
}

Response

{
  "data": {
    "availableProducts": [
      {
        "id": "abc123",
        "code": "abc123",
        "notes": "abc123",
        "fullName": "abc123",
        "displayName": "abc123",
        "description": "abc123",
        "availableFrom": "2020-01-01T00:00:00.000Z",
        "availableTo": "2020-01-01T00:00:00.000Z",
        "isHidden": true,
        "term": 1,
        "endsAt": "2020-01-01T00:00:00.000Z",
        "brandCode": "abc123",
        "marketName": "abc123",
        "availabilityStatus": "EVERYONE",
        "termsContractType": "abc123",
        "termsAndConditionsTypes": TermsAndConditionsType,
        "params": {"key": "value"},
        "tags": "abc123"
      }
    ]
  }
}

availableServiceDates

Type: [Date]

URL: https://api.oeus-kraken.energy/v1/graphql/

List of available dates for move-in/switch/other service orders.

Arguments

Name Description

esiId (String!)

ESI ID of meter point.

Query

query AvailableServiceDates($esiId: String!) {
  availableServiceDates(esiId: $esiId)
}

Variables

{
  "esiId": "abc123"
}

Response

{
  "data": {
    "availableServiceDates": ["2020-01-01"]
  }
}

backendScreen

Type: BackendScreenType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get mobile screen details to render.

The possible errors that can be raised are:

  • KT-CT-8001: No backend screen available.
  • KT-CT-8005: Backend screen does not support parameters.
  • KT-CT-8008: Incorrect or missing data necessary to build the screen.
  • KT-CT-8006: Error applying parameters to backend screen.
  • KT-CT-8009: Error translating screen content.
  • KT-CT-8010: Invalid step ID.
  • KT-CT-8011: Cannot rewind past a previous irreversible step.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

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
  )
}

Variables

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

Response

{
  "data": {
    "backendScreen": BackendScreenType
  }
}

backendScreenEventIds

Type: [String]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all registered backend screen event IDs.

Query

query BackendScreenEventIds {
  backendScreenEventIds
}

Response

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

backendScreenIds

Type: [String]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all registered backend screen IDs.

Query

query BackendScreenIds {
  backendScreenIds
}

Response

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

bankDetailsValidation

Type: BankDetailsValidationResult

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

Arguments

Name Description

iban (NonEmptyString!)

The IBAN of the bank account.

Query

query BankDetailsValidation($iban: NonEmptyString!) {
  bankDetailsValidation(iban: $iban) {
    areValid
    message
  }
}

Variables

{
  "iban": NonEmptyString
}

Response

{
  "data": {
    "bankDetailsValidation": {
      "areValid": true,
      "message": "abc123"
    }
  }
}

batteryDevice

Type: BatteryDeviceType

URL: https://api.oeus-kraken.energy/v1/graphql/

The currently active battery device.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'batteryDevice' field is deprecated.

Use `SmartFlexInverter` on `devices` query instead.

- Marked as deprecated on 2025-09-08.
- Scheduled for removal on or after 2025-12-08.

Arguments

Name Description

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": "BYD",
      "params": BatteryParamsType,
      "deviceStatus": DeviceStatusType,
      "chargingPreferences": BatteryChargingPreferencesType
    }
  }
}

batteryVariants

Type: [BatteryVariantsType]

URL: https://api.oeus-kraken.energy/v1/graphql/

All supported batteries and their details.

Arguments

Name Description

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]
      }
    ]
  }
}

business

Type: BusinessType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about a business.

The possible errors that can be raised are:

  • KT-CT-11101: The viewer is not authorized to execute the query/mutation. Check the ownership/permissions of provided data.
  • KT-CT-11107: Unauthorized.
  • KT-CT-1605: Invalid input.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

id (ID)

The business ID.

details ([BusinessDetailInput])

List of business detail key-value pairs to filter by.

Query

query Business(
  $id: ID,
  $details: [BusinessDetailInput]
) {
  business(
    id: $id,
    details: $details
  ) {
    id
    name
    number
    businessType
    sectors
    details {
      ...BusinessDetailTypeFragment
    }
    billingAddress {
      ...RichAddressTypeFragment
    }
    legalAddress {
      ...RichAddressTypeFragment
    }
    linkedAccountNumber
    linkedAccountNumbers
    segmentName
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "id": "abc123",
  "details": BusinessDetailInput
}

Response

{
  "data": {
    "business": {
      "id": "abc123",
      "name": "abc123",
      "number": "abc123",
      "businessType": "SOLE_TRADER",
      "sectors": BusinessSectorString,
      "details": [BusinessDetailType],
      "billingAddress": RichAddressType,
      "legalAddress": RichAddressType,
      "linkedAccountNumber": "abc123",
      "linkedAccountNumbers": "abc123",
      "segmentName": "abc123",
      "paymentMethods": PaymentInstructionConnectionTypeConnection
    }
  }
}

businessAccountReferralRewardScheme

Type: ReferralSchemeType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

code (String!)

Friend referral code.

Query

query BusinessAccountReferralRewardScheme($code: String!) {
  businessAccountReferralRewardScheme(code: $code) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Variables

{
  "code": "abc123"
}

Response

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

businessContract

Type: Contract

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about an account contract.

The possible errors that can be raised are:

  • KT-CT-10003: Contract not found.
  • KT-CT-10005: Missing required parameter: either identifier or accountNumber must be provided.
  • KT-CT-10006: Account not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

identifier (String)

The identifier of the contract.

accountNumber (String)

The account number to find the business contract for.

version (Int)

The version of the contract.

Query

query BusinessContract(
  $identifier: String,
  $accountNumber: String,
  $version: Int
) {
  businessContract(
    identifier: $identifier,
    accountNumber: $accountNumber,
    version: $version
  ) {
    identifier
    title
    party
    subject {
      ...AccountTypeFragment
    }
    status
    validFrom
    validTo
    signedAt
    cancelledAt
    lifecycle {
      ...ContractVersionFragment
    }
    terms {
      ...TermInterfaceFragment
    }
  }
}

Variables

{
  "identifier": "abc123",
  "accountNumber": "abc123",
  "version": 1
}

Response

{
  "data": {
    "businessContract": {
      "identifier": NonEmptyString,
      "title": "abc123",
      "party": ContractParty,
      "subject": [AccountType],
      "status": "REVOKED",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "signedAt": "2020-01-01T00:00:00.000Z",
      "cancelledAt": "2020-01-01T00:00:00.000Z",
      "lifecycle": ContractVersion,
      "terms": TermInterface
    }
  }
}

call

Type: CallInterface!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get a call for a given ID.

The possible errors that can be raised are:

  • KT-CT-11802: Call not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

id (ID!)

The call ID.

Query

query Call($id: ID!) {
  call(id: $id) {
    id
    account {
      ...AccountTypeFragment
    }
    metadata {
      ...CallMetadataItemTypeFragment
    }
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "call": {
      "id": "abc123",
      "account": AccountType,
      "metadata": CallMetadataItemType
    }
  }
}

callTag

Type: CallTagType!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the call tag for a given ID.

The possible errors that can be raised are:

  • KT-CT-11809: Call tag not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

id (ID!)

The call tag ID.

Query

query CallTag($id: ID!) {
  callTag(id: $id) {
    id
    name
    isActive
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "callTag": {
      "id": "abc123",
      "name": "abc123",
      "isActive": true
    }
  }
}

Arguments

Name Description

name (String)

Filter by call tag name.

isActive (Boolean)

Filter by active status.

before (String)

after (String)

first (Int)

last (Int)

Query

query CallTags(
  $name: String,
  $isActive: Boolean,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  callTags(
    name: $name,
    isActive: $isActive,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CallTagConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "name": "abc123",
  "isActive": true,
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "callTags": {
      "pageInfo": PageInfo,
      "edges": CallTagConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

Name Description

accountNumber (String!)

The account number.

before (String)

after (String)

first (Int)

last (Int)

Query

query Campaigns(
  $accountNumber: String!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  campaigns(
    accountNumber: $accountNumber,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...AccountCampaignConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

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

Response

{
  "data": {
    "campaigns": {
      "pageInfo": PageInfo,
      "edges": AccountCampaignConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Query

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

Response

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

collectionProcessDetails

Type: CollectionProcessDetailsType

URL: https://api.oeus-kraken.energy/v1/graphql/

Collection process record details.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-11201: No Collection Process Records associated with id.
  • KT-CT-11206: Unable to retrieve disconnection related data for collection process.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

collectionProcessRecordNumber (String!)

The collection process record number.

Query

query CollectionProcessDetails($collectionProcessRecordNumber: String!) {
  collectionProcessDetails(collectionProcessRecordNumber: $collectionProcessRecordNumber) {
    collectionProcessRecordNumber
    isPaused
    isComplete
    isActive
    completionType
    associatedItems {
      ...CollectionProcessRecordAssociatedItemTypeFragment
    }
    pausedDays
  }
}

Variables

{
  "collectionProcessRecordNumber": "abc123"
}

Response

{
  "data": {
    "collectionProcessDetails": {
      "collectionProcessRecordNumber": "abc123",
      "isPaused": true,
      "isComplete": true,
      "isActive": true,
      "completionType": "abc123",
      "associatedItems": [CollectionProcessRecordAssociatedItemType],
      "pausedDays": 1
    }
  }
}

complaint

Type: ComplaintType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get a complaint.

The possible errors that can be raised are:

  • KT-CT-12301: Complaint not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

complaintId (Int!)

Query

query Complaint($complaintId: Int!) {
  complaint(complaintId: $complaintId) {
    id
    contacts {
      ...ComplaintContactConnectionTypeConnectionFragment
    }
    type
    subtype
    creationDate
    resolutionDate
    assigneeId
  }
}

Variables

{
  "complaintId": 1
}

Response

{
  "data": {
    "complaint": {
      "id": "abc123",
      "contacts": ComplaintContactConnectionTypeConnection,
      "type": "abc123",
      "subtype": "abc123",
      "creationDate": "2020-01-01",
      "resolutionDate": "2020-01-01",
      "assigneeId": "abc123"
    }
  }
}

completedDispatches

Type: [UpsideDispatchType]

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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
      }
    ]
  }
}

consentTypes

Type: [ConsentTypeType]

URL: https://api.oeus-kraken.energy/v1/graphql/

A list of the consent types available.

Query

query ConsentTypes {
  consentTypes {
    code
    description
    name
    defaultValue
  }
}

Response

{
  "data": {
    "consentTypes": [
      {
        "code": "abc123",
        "description": "abc123",
        "name": "abc123",
        "defaultValue": "ACCEPTED"
      }
    ]
  }
}

Query

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

Response

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

costOfCharge

Type: [CostOfChargeType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Aggregated cost of charge for an EV device.

Deprecated

The 'costOfCharge' field is deprecated.

Use `cost` field on `SmartFlexChargingSession` instead.

- Marked as deprecated on 2025-05-13.
- Scheduled for removal on or after 2025-08-13.

Arguments

Name Description

accountNumber (String!)

frequency (DataFrequency!)

Frequency by day, week, month or year.

startDate (Date)

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

Query

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

Variables

{
  "accountNumber": "abc123",
  "frequency": "DAILY",
  "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
      }
    ]
  }
}

creditCheckStatus

Type: CreditCheckOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns the credit check status for the given account.

The possible errors that can be raised are:

  • KT-US-4111: You are not authorized to view this account's credit score status.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Query

query CreditCheckStatus($accountNumber: String!) {
  creditCheckStatus(accountNumber: $accountNumber) {
    status
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "creditCheckStatus": {
      "status": "PASSED"
    }
  }
}

currentAndHistoricalProductPriceHistory

Type: [CurrentAndHistoricalProductPricingHistoryOutput]

URL: https://api.oeus-kraken.energy/v1/graphql/

    Get current and historical electricity products' price history for the given period.
    Note: period should be less than or equal to last thirteen months.

Arguments

Name Description

filterBy (CurrentAndHistoricalProductPricingHistoryInput!)

Query

query CurrentAndHistoricalProductPriceHistory($filterBy: CurrentAndHistoricalProductPricingHistoryInput!) {
  currentAndHistoricalProductPriceHistory(filterBy: $filterBy) {
    fullName
    displayName
    priceHistory {
      ...PricingHistoryFragment
    }
  }
}

Response

{
  "data": {
    "currentAndHistoricalProductPriceHistory": [
      {
        "fullName": "abc123",
        "displayName": "abc123",
        "priceHistory": [PricingHistory]
      }
    ]
  }
}

customerFeedbackForms

Type: CustomerFeedbackFormConnectionTypeConnection

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns all active customer feedback forms for the account's brand.

Arguments

Name Description

accountNumber (String!)

The account number.

feedbackSource (CustomerFeedbackSourceChoices)

Feedback sources currently supported.

before (String)

after (String)

first (Int)

last (Int)

Query

query CustomerFeedbackForms(
  $accountNumber: String!,
  $feedbackSource: CustomerFeedbackSourceChoices,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  customerFeedbackForms(
    accountNumber: $accountNumber,
    feedbackSource: $feedbackSource,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CustomerFeedbackFormConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

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

Response

{
  "data": {
    "customerFeedbackForms": {
      "pageInfo": PageInfo,
      "edges": CustomerFeedbackFormConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

Name Description

input (DailyReadingInput!)

Query

query DailyReadings($input: DailyReadingInput!) {
  dailyReadings(input: $input) {
    meterPointId
    readAt
    meterReading
    dailyUsage
    source
  }
}

Variables

{
  "input": DailyReadingInput
}

Response

{
  "data": {
    "dailyReadings": [
      {
        "meterPointId": 1,
        "readAt": "abc123",
        "meterReading": "1.0",
        "dailyUsage": "1.0",
        "source": "abc123"
      }
    ]
  }
}

dashboardScreen

Type: Dashboard

URL: https://api.oeus-kraken.energy/v1/graphql/

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.

The possible errors that can be raised are:

  • KT-CT-3820: Received both ledger ID and number.
  • KT-CT-8001: No backend screen available.
  • KT-CT-8005: Backend screen does not support parameters.
  • KT-CT-8008: Incorrect or missing data necessary to build the screen.
  • KT-CT-8006: Error applying parameters to backend screen.
  • KT-CT-8009: Error translating screen content.
  • KT-CT-8010: Invalid step ID.
  • KT-CT-8011: Cannot rewind past a previous irreversible step.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

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.

ledgerNumber (String)

The ledger number 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!,
  $ledgerNumber: String,
  $propertyId: String,
  $params: [BackendScreenParamInputType]
) {
  dashboardScreen(
    dashboardId: $dashboardId,
    accountNumber: $accountNumber,
    maxVersionSupported: $maxVersionSupported,
    ledgerNumber: $ledgerNumber,
    propertyId: $propertyId,
    params: $params
  ) {
    id
    typename
    dashboardItems {
      ...SectionTypeFragment
    }
    serialisedDashboardItems
  }
}

Variables

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

Response

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

defaultPaymentInstruction

Type: PaymentInstructionType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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
    supplementaryLedger {
      ...SupplementaryLedgerTypeFragment
    }
    bankCode
    accountType
    validFrom
    vendor
    cardNumber
    cardType
    maskedAccountIdentifier
    owners {
      ...PaymentInstructionOwnerTypeFragment
    }
  }
}

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,
      "supplementaryLedger": SupplementaryLedgerType,
      "bankCode": "abc123",
      "accountType": "abc123",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "vendor": "abc123",
      "cardNumber": "abc123",
      "cardType": "abc123",
      "maskedAccountIdentifier": "abc123",
      "owners": [PaymentInstructionOwnerType]
    }
  }
}

defaultRawScore

Type: Int

URL: https://api.oeus-kraken.energy/v1/graphql/

Get default raw score for a customer feedback form.

The possible errors that can be raised are:

  • KT-CT-5513: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

formId (Int!)

Query

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

Variables

{
  "formId": 1
}

Response

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

depositAgreements

Type: [DepositAgreementOutput]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get deposit agreements for a given account.

Arguments

Name Description

accountNumber (String!)

Query

query DepositAgreements($accountNumber: String!) {
  depositAgreements(accountNumber: $accountNumber) {
    depositKey
    depositAmount
    acceptedAt
    fulfilledAt
    collectionDate
    dueDate
    returnStrategy
    currentEligibilityStatus {
      ...CurrentEligibilityStatusOutputFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "depositAgreements": [
      {
        "depositKey": "abc123",
        "depositAmount": 1,
        "acceptedAt": "2020-01-01T00:00:00.000Z",
        "fulfilledAt": "2020-01-01T00:00:00.000Z",
        "collectionDate": "2020-01-01",
        "dueDate": "2020-01-01",
        "returnStrategy": "abc123",
        "currentEligibilityStatus": CurrentEligibilityStatusOutput
      }
    ]
  }
}

devices

Type: [SmartFlexDeviceInterface!]

URL: https://api.oeus-kraken.energy/v1/graphql/

A list of devices registered to an account.

Arguments

Name Description

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.

integrationDeviceId (String)

Only list the device with this integration device ID.

Query

query Devices(
  $accountNumber: String!,
  $propertyId: ID,
  $deviceId: String,
  $integrationDeviceId: String
) {
  devices(
    accountNumber: $accountNumber,
    propertyId: $propertyId,
    deviceId: $deviceId,
    integrationDeviceId: $integrationDeviceId
  ) {
    id
    name
    deviceType
    provider
    integrationDeviceId
    status {
      ...SmartFlexDeviceStatusInterfaceFragment
    }
    propertyId
    alerts {
      ...SmartFlexDeviceAlertInterfaceFragment
    }
    onboardingWizard {
      ...SmartFlexOnboardingWizardFragment
    }
    preferences {
      ...SmartFlexDevicePreferencesInterfaceFragment
    }
    preferenceSetting {
      ...FlexDevicePreferenceSettingInterfaceFragment
    }
    reAuthenticationState {
      ...DeviceReAuthenticationInterfaceFragment
    }
  }
}

Variables

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

Response

{
  "data": {
    "devices": [
      {
        "id": "abc123",
        "name": "abc123",
        "deviceType": "BATTERIES",
        "provider": "BYD",
        "integrationDeviceId": "abc123",
        "status": SmartFlexDeviceStatusInterface,
        "propertyId": "abc123",
        "alerts": SmartFlexDeviceAlertInterface,
        "onboardingWizard": SmartFlexOnboardingWizard,
        "preferences": SmartFlexDevicePreferencesInterface,
        "preferenceSetting": FlexDevicePreferenceSettingInterface,
        "reAuthenticationState": DeviceReAuthenticationInterface
      }
    ]
  }
}

domesticAccountReferralRewardScheme

Type: ReferralSchemeType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

code (String!)

Friend referral code.

Query

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

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",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

domesticJoiningRewardScheme

Type: ReferralSchemeType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Name Description

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
    maxRecurrence
    isUsageAtCapacity
  }
}

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",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

domesticSignupRewardScheme

Type: ReferralSchemeType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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
    maxRecurrence
    isUsageAtCapacity
  }
}

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",
      "maxRecurrence": 1,
      "isUsageAtCapacity": true
    }
  }
}

efls

Type: [EflType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all active Electricity Facts Label (EFLs).

By default, the query will return active EFLs for all service providers in both English (EN) and Spanish (ES) versions.

Query can be filtered by the given service provider, product id, and language.

Arguments

Name Description

productId (ID)

Retrieve EFLs for the given product id.

serviceProvider (ServiceProvider)

Retrieve EFLs for the given service provider.

loadZone (LoadZone)

Retrieve EFLs applicable in the given load zone.

language (EFLLanguage)

Retrieve EFLs for the given language.

Query

query Efls(
  $productId: ID,
  $serviceProvider: ServiceProvider,
  $loadZone: LoadZone,
  $language: EFLLanguage
) {
  efls(
    productId: $productId,
    serviceProvider: $serviceProvider,
    loadZone: $loadZone,
    language: $language
  ) {
    id
    serviceProvider
    loadZone
    language
    version
    url
    productDisplayName
    productCode
  }
}

Variables

{
  "productId": "abc123",
  "serviceProvider": "AEP_TCC",
  "loadZone": "LZ_HOUSTON",
  "language": "EN"
}

Response

{
  "data": {
    "efls": [
      {
        "id": "abc123",
        "serviceProvider": "AEP_TCC",
        "loadZone": "LZ_HOUSTON",
        "language": "abc123",
        "version": "abc123",
        "url": "abc123",
        "productDisplayName": "abc123",
        "productCode": "abc123"
      }
    ]
  }
}

electricVehicles

Type: [ElectricVehicleType]

URL: https://api.oeus-kraken.energy/v1/graphql/

All electric vehicle types and their details.

Arguments

Name Description

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": "BYD",
  "isIntegrationLive": true
}

Response

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

eligibilityToJoinLoyaltyPointsProgram

Type: LoyaltyPointsProgramEligibilityType

URL: https://api.oeus-kraken.energy/v1/graphql/

Check if an account is eligible to join the loyalty points program.

The possible errors that can be raised are:

  • KT-CT-9202: Loyalty Points adapter not configured.
  • KT-CT-9218: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

input (LoyaltyPointsProgramEligibilityInput!)

Query

query EligibilityToJoinLoyaltyPointsProgram($input: LoyaltyPointsProgramEligibilityInput!) {
  eligibilityToJoinLoyaltyPointsProgram(input: $input) {
    isEligible
    primaryIneligibilityReason
  }
}

Variables

Response

{
  "data": {
    "eligibilityToJoinLoyaltyPointsProgram": {
      "isEligible": true,
      "primaryIneligibilityReason": "abc123"
    }
  }
}

eligibleDeviceTypes

Type: [KrakenFlexDeviceTypes]

URL: https://api.oeus-kraken.energy/v1/graphql/

A list of device types that are eligible for registration.

Arguments

Name Description

accountNumber (String!)

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

propertyId (Int)

            The property's id where the device will be registered to.
            Note: in future, eligible device types will be dependent on the property id and
            it will be a required input.

Query

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

Variables

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

Response

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

embeddedNetwork

Type: EmbeddedNetworkType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about an embedded network.

Arguments

Name Description

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]
    }
  }
}

Query

query EnergyMixData {
  energyMixData {
    carbonIntensityIndex
  }
}

Response

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

enodeLinkSession

Type: EnodeLinkSessionType

URL: https://api.oeus-kraken.energy/v1/graphql/

The user specific Enode link session details.

The possible errors that can be raised are:

  • KT-CT-4328: Invalid data.
  • KT-CT-1111: Unauthorized.
  • KT-CT-4319: Unable to get Enode link session.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

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"
    }
  }
}

flexPlannedDispatches

Type: [SmartFlexDispatch]

URL: https://api.oeus-kraken.energy/v1/graphql/

All planned device dispatches in time order.

Arguments

Name Description

deviceId (String!)

The SmartFlex device ID to get the planned dispatches for.

Query

query FlexPlannedDispatches($deviceId: String!) {
  flexPlannedDispatches(deviceId: $deviceId) {
    start
    end
    type
    energyAddedKwh
  }
}

Variables

{
  "deviceId": "abc123"
}

Response

{
  "data": {
    "flexPlannedDispatches": [
      {
        "start": "2020-01-01T00:00:00.000Z",
        "end": "2020-01-01T00:00:00.000Z",
        "type": "SMART",
        "energyAddedKwh": "1.0"
      }
    ]
  }
}

fraudMeterPointChecks

Type: FraudMeterPointCheckType

URL: https://api.oeus-kraken.energy/v1/graphql/

Check if a given meter point ID is in suspicious meter point IDs list.

Arguments

Name Description

meterPointId (String!)

The meter point ID.

Query

query FraudMeterPointChecks($meterPointId: String!) {
  fraudMeterPointChecks(meterPointId: $meterPointId) {
    meterPointId
    isInSuspiciousList
  }
}

Variables

{
  "meterPointId": "abc123"
}

Response

{
  "data": {
    "fraudMeterPointChecks": {
      "meterPointId": "abc123",
      "isInSuspiciousList": true
    }
  }
}

fraudRiskLevel

Type: FinancialRiskLevelType

URL: https://api.oeus-kraken.energy/v1/graphql/

Check if a given ID and type have a financial risk level.

Arguments

Name Description

identifierValue (String!)

The ID to be checked.

identifierType (String!)

The type of object the ID represents.

Query

query FraudRiskLevel(
  $identifierValue: String!,
  $identifierType: String!
) {
  fraudRiskLevel(
    identifierValue: $identifierValue,
    identifierType: $identifierType
  ) {
    identifierValue
    identifierType
    riskLevel
    isInRiskList
  }
}

Variables

{
  "identifierValue": "abc123",
  "identifierType": "abc123"
}

Response

{
  "data": {
    "fraudRiskLevel": {
      "identifierValue": "abc123",
      "identifierType": "abc123",
      "riskLevel": "1.0",
      "isInRiskList": true
    }
  }
}

getAccountCheckoutInformation

Type: AccountCheckoutInformationOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns basic product information to finalize checkout.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4177: Unauthorized.
  • KT-CT-4910: No product exists with the given input.
  • KT-CT-3815: No active payment schedule found for this account.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

input (AccountCheckoutInformationInput!)

Query

query GetAccountCheckoutInformation($input: AccountCheckoutInformationInput!) {
  getAccountCheckoutInformation(input: $input) {
    productId
    productName
    isPrepayProduct
    depositRequiredForPrepayProduct
    prepayProductBalanceThreshold
    pricePerKwh
  }
}

Variables

Response

{
  "data": {
    "getAccountCheckoutInformation": {
      "productId": "abc123",
      "productName": "abc123",
      "isPrepayProduct": true,
      "depositRequiredForPrepayProduct": true,
      "prepayProductBalanceThreshold": 1,
      "pricePerKwh": "1.0"
    }
  }
}

getAccountCreatedAt

Type: AccountCreatedAtOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

Arguments

Name Description

accountNumber (String!)

Query

query GetAccountCreatedAt($accountNumber: String!) {
  getAccountCreatedAt(accountNumber: $accountNumber) {
    createdAt
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "getAccountCreatedAt": {
      "createdAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

getAccountCreatedByAffiliate

Type: AccountCreatedByAffiliateOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns basic account information.

The possible errors that can be raised are:

  • KT-US-7706: Please provide with either an account number or an email address.
  • KT-US-7702: Unauthorized.
  • KT-US-7703: Unauthorized.
  • KT-US-7704: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

input (AccountCreatedByAffiliateInput!)

Query

query GetAccountCreatedByAffiliate($input: AccountCreatedByAffiliateInput!) {
  getAccountCreatedByAffiliate(input: $input) {
    accountNumber
    emailAddress
    meterPointStatus
  }
}

Variables

Response

{
  "data": {
    "getAccountCreatedByAffiliate": {
      "accountNumber": "abc123",
      "emailAddress": "abc123",
      "meterPointStatus": "ON_SUPPLY"
    }
  }
}

getAccountReferralScheme

Type: ReferralSchemeType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get active domestic referral scheme for the given account number.

Arguments

Name Description

accountNumber (String!)

Query

query GetAccountReferralScheme($accountNumber: String!) {
  getAccountReferralScheme(accountNumber: $accountNumber) {
    referralUrl
    referralDisplayUrl
    referrerRewardAmount
    referredRewardAmount
    combinedRewardAmount
    loyaltyPointsBonus
    canBeReferred
    code
    referrerGivenName
    referrerFamilyName
    schemeType
    maxRecurrence
    isUsageAtCapacity
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

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

getAccountWithUrn

Type: AccountType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get an account using a urn.

The possible errors that can be raised are:

  • KT-US-4114: URN must be a non-empty string.
  • KT-CT-4120: Invalid urn.
  • KT-US-4115: Multiple objects returned.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

urn (String!)

Query

query GetAccountWithUrn($urn: String!) {
  getAccountWithUrn(urn: $urn) {
    id
    number
    status
    paymentSchedules {
      ...PaymentScheduleConnectionTypeConnectionFragment
    }
    users {
      ...AccountUserTypeFragment
    }
    consentData
    complaints {
      ...ComplaintConnectionTypeConnectionFragment
    }
    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
    }
    paymentPlans {
      ...PaymentPlanConnectionTypeConnectionFragment
    }
    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
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
    events {
      ...AccountEventConnectionTypeConnectionFragment
    }
    applications {
      ...AccountApplicationConnectionTypeConnectionFragment
    }
    accountType
    businessType
    business {
      ...BusinessTypeFragment
    }
    commsDeliveryPreference
    communicationDeliveryPreference
    documentAccessibility
    references {
      ...AccountReferenceTypeFragment
    }
    fileAttachments {
      ...AccountFileAttachmentFragment
    }
    paginatedFileAttachments {
      ...AccountFileAttachmentConnectionTypeConnectionFragment
    }
    maximumRefund {
      ...MaximumRefundTypeFragment
    }
    campaigns {
      ...AccountCampaignTypeFragment
    }
    isInHardship
    activeHardshipAgreements {
      ...HardshipAgreementTypeFragment
    }
    notes {
      ...AccountNoteTypeFragment
    }
    contributionAgreements {
      ...ContributionAgreementTypeFragment
    }
    assistanceAgreements {
      ...AssistanceAgreementTypeFragment
    }
    debtCollectionProceedings {
      ...DebtCollectionProceedingTypeFragment
    }
    createdAt
    preferredLanguageForComms
    consents {
      ...ConsentTypeFragment
    }
    reminders {
      ...AccountReminderConnectionTypeConnectionFragment
    }
    properties {
      ...PropertyTypeFragment
    }
    marketSupplyAgreements {
      ...AgreementConnectionFragment
    }
    canModifyPayments {
      ...CanModifyPaymentsTypeFragment
    }
    meterPointStatus
    isShellAccount
    isEligibleForIntelligentOctopus
    agreements {
      ...AgreementTypeFragment
    }
    isOnSupply
  }
}

Variables

{
  "urn": "abc123"
}

Response

{
  "data": {
    "getAccountWithUrn": {
      "id": "abc123",
      "number": "abc123",
      "status": "PENDING",
      "paymentSchedules": PaymentScheduleConnectionTypeConnection,
      "users": AccountUserType,
      "consentData": {"key": "value"},
      "complaints": ComplaintConnectionTypeConnection,
      "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,
      "paymentPlans": PaymentPlanConnectionTypeConnection,
      "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,
      "paymentMethods": PaymentInstructionConnectionTypeConnection,
      "events": AccountEventConnectionTypeConnection,
      "applications": AccountApplicationConnectionTypeConnection,
      "accountType": "BUSINESS",
      "businessType": "SOLE_TRADER",
      "business": BusinessType,
      "commsDeliveryPreference": "EMAIL",
      "communicationDeliveryPreference": "abc123",
      "documentAccessibility": "LARGE_PRINT",
      "references": [AccountReferenceType],
      "fileAttachments": [AccountFileAttachment],
      "paginatedFileAttachments": AccountFileAttachmentConnectionTypeConnection,
      "maximumRefund": MaximumRefundType,
      "campaigns": [AccountCampaignType],
      "isInHardship": true,
      "activeHardshipAgreements": [HardshipAgreementType],
      "notes": [AccountNoteType],
      "contributionAgreements": [ContributionAgreementType],
      "assistanceAgreements": [AssistanceAgreementType],
      "debtCollectionProceedings": [DebtCollectionProceedingType],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "preferredLanguageForComms": "abc123",
      "consents": ConsentType,
      "reminders": AccountReminderConnectionTypeConnection,
      "properties": [PropertyType],
      "marketSupplyAgreements": AgreementConnection,
      "canModifyPayments": CanModifyPaymentsType,
      "meterPointStatus": "abc123",
      "isShellAccount": true,
      "isEligibleForIntelligentOctopus": true,
      "agreements": [AgreementType],
      "isOnSupply": true
    }
  }
}

getAllRealTimeLmpData

Type: [ErcotMarketData]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get Real-Time LMPs for Load Zones and Trading Hubs.

Query

query GetAllRealTimeLmpData {
  getAllRealTimeLmpData {
    SettlementPoint
    LMP
    LMP5MinuteDifference
    RtorpaRtordpaLmp
    RtorpaRtordpaLmp5MinDifference
    lastUpdatedAt
    lastUpdatedAtDatetime
  }
}

Response

{
  "data": {
    "getAllRealTimeLmpData": [
      {
        "SettlementPoint": "HB_BUSAVG",
        "LMP": 1.0,
        "LMP5MinuteDifference": 1.0,
        "RtorpaRtordpaLmp": 1.0,
        "RtorpaRtordpaLmp5MinDifference": 1.0,
        "lastUpdatedAt": CustomGrapheneDateTime,
        "lastUpdatedAtDatetime": "2020-01-01T00:00:00.000Z"
      }
    ]
  }
}

getFanClubDiscount

Type: FanClubDiscountOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Get whether the percentage of wind power on the grid is sufficient for an energy discount to apply.

Query

query GetFanClubDiscount {
  getFanClubDiscount {
    windGenerationPercentage
    discountAmount
  }
}

Response

{
  "data": {
    "getFanClubDiscount": {
      "windGenerationPercentage": "1.0",
      "discountAmount": "1.0"
    }
  }
}

getFanClubWindPowerProjections

Type: FanClubWindPowerProjections

URL: https://api.oeus-kraken.energy/v1/graphql/

Future wind power projections recieved from ERCOT. Updates every four hours.

The possible errors that can be raised are:

  • KT-US-4518: Cannot query projections with given input.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

hoursIntoFuture (Int)

Returns predictions for this many hours into the future. Defaults to 48 yeidling two days.

Query

query GetFanClubWindPowerProjections($hoursIntoFuture: Int) {
  getFanClubWindPowerProjections(hoursIntoFuture: $hoursIntoFuture) {
    windPowerProjections {
      ...WindPowerProjectionFragment
    }
  }
}

Variables

{
  "hoursIntoFuture": 1
}

Response

{
  "data": {
    "getFanClubWindPowerProjections": {
      "windPowerProjections": [WindPowerProjection]
    }
  }
}

getLmpValue

Type: [ErcotMarketData]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get Real-Time LMPs for Load Zones based on the given LMP value and sort option.

Arguments

Name Description

value (Float)

sort (SortByOptions)

Query

query GetLmpValue(
  $value: Float,
  $sort: SortByOptions
) {
  getLmpValue(
    value: $value,
    sort: $sort
  ) {
    SettlementPoint
    LMP
    LMP5MinuteDifference
    RtorpaRtordpaLmp
    RtorpaRtordpaLmp5MinDifference
    lastUpdatedAt
    lastUpdatedAtDatetime
  }
}

Variables

{
  "value": 1.0,
  "sort": "GREATER_THAN"
}

Response

{
  "data": {
    "getLmpValue": [
      {
        "SettlementPoint": "HB_BUSAVG",
        "LMP": 1.0,
        "LMP5MinuteDifference": 1.0,
        "RtorpaRtordpaLmp": 1.0,
        "RtorpaRtordpaLmp5MinDifference": 1.0,
        "lastUpdatedAt": CustomGrapheneDateTime,
        "lastUpdatedAtDatetime": "2020-01-01T00:00:00.000Z"
      }
    ]
  }
}

Arguments

Name Description

appointmentId (UUID)

The Kraken ID of the appointment to return.

Query

query GetOnSiteJobsAppointmentById($appointmentId: UUID) {
  getOnSiteJobsAppointmentById(appointmentId: $appointmentId) {
    id
    externalJobType
    startAt
    endAt
    externalReference
    jobDetails
    jobNotes
    comments
    cancellationSubCategory
    krakenWorkCategory
    agent
    status
    commsStrategy
    cancellationCategory
    appointmentActions {
      ...OnSiteJobsAppointmentActionConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "appointmentId": "500c164d-38c7-4f74-9ac6-be210197e9e4"
}

Response

{
  "data": {
    "getOnSiteJobsAppointmentById": {
      "id": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "externalJobType": "abc123",
      "startAt": "2020-01-01T00:00:00.000Z",
      "endAt": "2020-01-01T00:00:00.000Z",
      "externalReference": "abc123",
      "jobDetails": {"key": "value"},
      "jobNotes": {"key": "value"},
      "comments": "abc123",
      "cancellationSubCategory": "abc123",
      "krakenWorkCategory": "EXCHANGE",
      "agent": "GENERIC_AGENT",
      "status": "PENDING",
      "commsStrategy": "SEND_ALL",
      "cancellationCategory": "CANCELLED_BY_CUSTOMER",
      "appointmentActions": OnSiteJobsAppointmentActionConnectionTypeConnection
    }
  }
}

getOnSiteJobsAppointmentSlots

Type: OnSiteJobsAppointmentSlotResultsType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get appointment slot results using appointment booking session ID.

Arguments

Name Description

appointmentBookingSessionId (UUID!)

Appointment booking session ID to fetch slots for. ID can be obtained via startOnSiteJobsAppointmentBookingSession mutation.

appointmentDate (Date!)

Appointment date (inclusive) to fetch slots from.

Query

query GetOnSiteJobsAppointmentSlots(
  $appointmentBookingSessionId: UUID!,
  $appointmentDate: Date!
) {
  getOnSiteJobsAppointmentSlots(
    appointmentBookingSessionId: $appointmentBookingSessionId,
    appointmentDate: $appointmentDate
  ) {
    slots {
      ...OnSiteJobsAppointmentSlotTypeFragment
    }
    isComplete
  }
}

Variables

{
  "appointmentBookingSessionId": "500c164d-38c7-4f74-9ac6-be210197e9e4",
  "appointmentDate": "2020-01-01"
}

Response

{
  "data": {
    "getOnSiteJobsAppointmentSlots": {
      "slots": OnSiteJobsAppointmentSlotType,
      "isComplete": true
    }
  }
}

Arguments

Name Description

externalReference (String!)

The external reference of the appointments to return.

before (String)

after (String)

first (Int)

last (Int)

Query

query GetOnSiteJobsAppointmentsByExternalReference(
  $externalReference: String!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  getOnSiteJobsAppointmentsByExternalReference(
    externalReference: $externalReference,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...OnSiteJobsAppointmentTypeConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

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

Response

{
  "data": {
    "getOnSiteJobsAppointmentsByExternalReference": {
      "pageInfo": PageInfo,
      "edges": OnSiteJobsAppointmentTypeConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

getOnSiteJobsJobTypes

Type: [OnSiteJobsJobTypeType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get available job types for an on-site jobs request.

Arguments

Name Description

requestId (UUID!)

The ID of the request for which to fetch available job types.

workCategory (OnSiteJobsWorkCategory)

Work category to filter job types by. If it's left as blank, all job types will be returned.

Query

query GetOnSiteJobsJobTypes(
  $requestId: UUID!,
  $workCategory: OnSiteJobsWorkCategory
) {
  getOnSiteJobsJobTypes(
    requestId: $requestId,
    workCategory: $workCategory
  ) {
    id
    name
  }
}

Variables

{
  "requestId": "500c164d-38c7-4f74-9ac6-be210197e9e4",
  "workCategory": "EXCHANGE"
}

Response

{
  "data": {
    "getOnSiteJobsJobTypes": [
      {
        "id": "abc123",
        "name": "abc123"
      }
    ]
  }
}

Arguments

Name Description

requestId (UUID)

The ID of the request to return.

Query

query GetOnSiteJobsRequestById($requestId: UUID) {
  getOnSiteJobsRequestById(requestId: $requestId) {
    id
    reason
    subReason
    isEmergency
    externalReference
    agent
    comment
    account
    marketSupplyPoints {
      ...SupplyPointConnectionTypeConnectionFragment
    }
    property {
      ...PropertyTypeFragment
    }
    status
    overallActionsStatus
    requestActions {
      ...OnSiteJobsRequestActionConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "requestId": "500c164d-38c7-4f74-9ac6-be210197e9e4"
}

Response

{
  "data": {
    "getOnSiteJobsRequestById": {
      "id": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "reason": "abc123",
      "subReason": "abc123",
      "isEmergency": true,
      "externalReference": "abc123",
      "agent": "abc123",
      "comment": "abc123",
      "account": "abc123",
      "marketSupplyPoints": SupplyPointConnectionTypeConnection,
      "property": PropertyType,
      "status": "APPROVAL_PENDING",
      "overallActionsStatus": "SKIPPED",
      "requestActions": OnSiteJobsRequestActionConnectionTypeConnection
    }
  }
}

getQuote

Type: GetQuoteOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns a quote request including all quoted products.

The possible errors that can be raised are:

  • KT-CT-4619: Quote with given code not found.
  • KT-CT-4620: Badly formed hexadecimal UUID string.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

code (String!)

The selected quote's UUID code.

Query

query GetQuote($code: String!) {
  getQuote(code: $code) {
    quoteId
    code
    quotedProducts {
      ...QuotedProductsFragment
    }
    isExpired
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "getQuote": {
      "quoteId": "abc123",
      "code": "abc123",
      "quotedProducts": [QuotedProducts],
      "isExpired": true
    }
  }
}

getReferralCodeStatus

Type: ReferralCodeStatusType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the status of a referral code.

The possible errors that can be raised are:

  • KT-CT-6724: Referral claim code not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

code (String!)

The referral code to check.

Query

query GetReferralCodeStatus($code: String!) {
  getReferralCodeStatus(code: $code) {
    isValid
    description
    descriptionInSpanish
    maxRecurrence
    codeType
  }
}

Variables

{
  "code": "abc123"
}

Response

{
  "data": {
    "getReferralCodeStatus": {
      "isValid": true,
      "description": "abc123",
      "descriptionInSpanish": "abc123",
      "maxRecurrence": "abc123",
      "codeType": "REFERRAL_CODE"
    }
  }
}

getReferralCompetitionStats

Type: [ReferralCompetitionStats]

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns the referral competition stats.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Query

query GetReferralCompetitionStats($accountNumber: String!) {
  getReferralCompetitionStats(accountNumber: $accountNumber) {
    referralCode
    numOfReferrals
    numOfPersonalConnectedDevices
    numOfReferredConnectedDevices
    numOfEntries
    rank
    customIdentifier
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "getReferralCompetitionStats": [
      {
        "referralCode": "abc123",
        "numOfReferrals": 1.0,
        "numOfPersonalConnectedDevices": 1,
        "numOfReferredConnectedDevices": 1,
        "numOfEntries": 1.0,
        "rank": 1,
        "customIdentifier": "abc123"
      }
    ]
  }
}

getSettlementPoint

Type: ErcotMarketData

URL: https://api.oeus-kraken.energy/v1/graphql/

Get Real-Time LMPs for Load Zones based on the given settlement point.

Arguments

Name Description

settlementPoint (SettlementPointOptions!)

Returns pricing for the given settlement point.

Query

query GetSettlementPoint($settlementPoint: SettlementPointOptions!) {
  getSettlementPoint(settlementPoint: $settlementPoint) {
    SettlementPoint
    LMP
    LMP5MinuteDifference
    RtorpaRtordpaLmp
    RtorpaRtordpaLmp5MinDifference
    lastUpdatedAt
    lastUpdatedAtDatetime
  }
}

Variables

{
  "settlementPoint": "HB_BUSAVG"
}

Response

{
  "data": {
    "getSettlementPoint": {
      "SettlementPoint": "HB_BUSAVG",
      "LMP": 1.0,
      "LMP5MinuteDifference": 1.0,
      "RtorpaRtordpaLmp": 1.0,
      "RtorpaRtordpaLmp5MinDifference": 1.0,
      "lastUpdatedAt": CustomGrapheneDateTime,
      "lastUpdatedAtDatetime": "2020-01-01T00:00:00.000Z"
    }
  }
}

getSolarContestStats

Type: SolarContestStats

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns stats for the top solar exporters along with the given account's export data. The results are ranked from the highest to lowest exporters.

The possible errors that can be raised are:

  • KT-CT-4177: Unauthorized.
  • KT-US-9101: No solar stats found.
  • KT-US-9102: Unable to find solar contest stats for the given account.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

The account number to calculate stats for.

Query

query GetSolarContestStats($accountNumber: String!) {
  getSolarContestStats(accountNumber: $accountNumber) {
    statsFetchedAt
    solarContestStats {
      ...SolarContestStatFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "getSolarContestStats": {
      "statsFetchedAt": "2020-01-01T00:00:00.000Z",
      "solarContestStats": [SolarContestStat]
    }
  }
}

getSolarForecastedData

Type: AllSolarForecastedData

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns solar forecasted data.

The possible errors that can be raised are:

  • KT-US-9103: Unable to find solar forecasted data.
  • KT-CT-1113: Disabled GraphQL field requested.

Query

query GetSolarForecastedData {
  getSolarForecastedData {
    solarForecastedData {
      ...SolarForecastedDataFragment
    }
    lastUpdatedAt
  }
}

Response

{
  "data": {
    "getSolarForecastedData": {
      "solarForecastedData": [SolarForecastedData],
      "lastUpdatedAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

getSystemWideDayAheadPrices

Type: AllSystemWidePriceData

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns the system wide day ahead prices.

The possible errors that can be raised are:

  • KT-US-9104: Unable to get system wide day ahead forecasted prices.
  • KT-CT-1113: Disabled GraphQL field requested.

Query

query GetSystemWideDayAheadPrices {
  getSystemWideDayAheadPrices {
    systemWidePriceData {
      ...SystemWidePriceFragment
    }
    lastUpdatedAt
  }
}

Response

{
  "data": {
    "getSystemWideDayAheadPrices": {
      "systemWidePriceData": [SystemWidePrice],
      "lastUpdatedAt": "2020-01-01T00:00:00.000Z"
    }
  }
}

getThermostatDetails

Type: GetThermostatDetailsOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-7223: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'getThermostatDetails' field is deprecated.

Please use 'devices' query with `... on SmartFlexThermostatStatus` instead.

- Marked as deprecated on 2024-10-08.
- Scheduled for removal on or after 2025-02-01.

Arguments

Name Description

accountNumber (String!)

Query

query GetThermostatDetails($accountNumber: String!) {
  getThermostatDetails(accountNumber: $accountNumber) {
    thermostats {
      ...GetThermostatDetailsTypeFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "getThermostatDetails": {
      "thermostats": [GetThermostatDetailsType]
    }
  }
}

Arguments

Name Description

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
    }
  }
}

Arguments

Name Description

accountNumber (String!)

The account number.

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

goodsQuotes

Type: [GoodsQuote]

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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": "abc123",
        "code": "abc123",
        "totalNetAmount": 1,
        "quotedAt": "2020-01-01T00:00:00.000Z",
        "goodsQuotedProducts": [GoodsQuotedProduct],
        "hasQuoteExpired": true
      }
    ]
  }
}

Query

query InboundCallAverageWaitTime {
  inboundCallAverageWaitTime {
    yesterday
    recent
  }
}

Response

{
  "data": {
    "inboundCallAverageWaitTime": {
      "yesterday": 1,
      "recent": 1
    }
  }
}

inkConversation

Type: InkConversation!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the Ink conversation for a given account.

The possible errors that can be raised are:

  • KT-CT-7612: The Ink conversation was not found.
  • KT-CT-4177: Unauthorized.
  • KT-CT-7610: No Ink conversation for account.
  • KT-CT-7617: Must supply account number or relay id to get a conversation.
  • KT-CT-7638: Invalid conversation ID.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

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!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the content for a given message.

The possible errors that can be raised are:

  • KT-CT-7611: The message was not found.
  • KT-CT-7638: Invalid conversation ID.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

messageRelayId (String!)

The message's relay id.

Query

query InkMessage($messageRelayId: String!) {
  inkMessage(messageRelayId: $messageRelayId)
}

Variables

{
  "messageRelayId": "abc123"
}

Response

{
  "data": {
    "inkMessage": InkMessage
  }
}

inkMessageAttributes

Type: InkMessageAttributes!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get attributes of a message at time of query.

The possible errors that can be raised are:

  • KT-CT-7611: The message was not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

vendor (String!)

The message's vendor.

vendorId (String!)

The message's vendor id.

Query

query InkMessageAttributes(
  $vendor: String!,
  $vendorId: String!
) {
  inkMessageAttributes(
    vendor: $vendor,
    vendorId: $vendorId
  ) {
    accounts
    accountType
    buckets
    conversationId
    hourOccurredAt
    hoursWaiting
    isAssignedToUserBucket
    isFirstFromContact
    isNewThread
    opsTeam
    recentlyReceivedAutoReplies
    replyToCommsSms
    weekDayOccurredAt
  }
}

Variables

{
  "vendor": "abc123",
  "vendorId": "abc123"
}

Response

{
  "data": {
    "inkMessageAttributes": {
      "accounts": "abc123",
      "accountType": "abc123",
      "buckets": ["abc123"],
      "conversationId": 1,
      "hourOccurredAt": 1,
      "hoursWaiting": 1,
      "isAssignedToUserBucket": true,
      "isFirstFromContact": true,
      "isNewThread": true,
      "opsTeam": "abc123",
      "recentlyReceivedAutoReplies": "abc123",
      "replyToCommsSms": "abc123",
      "weekDayOccurredAt": 1
    }
  }
}

inkMessageTextContent

Type: String!

URL: https://api.oeus-kraken.energy/v1/graphql/

Fetch the text content of a given message.

The possible errors that can be raised are:

  • KT-CT-7611: The message was not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

messageId (ID!)

The message's id or relay id.

Query

query InkMessageTextContent($messageId: ID!) {
  inkMessageTextContent(messageId: $messageId)
}

Variables

{
  "messageId": "abc123"
}

Response

{
  "data": {
    "inkMessageTextContent": "abc123"
  }
}

intervalReadings

Type: [IntervalReadingOutput]

URL: https://api.oeus-kraken.energy/v1/graphql/

15 minute interval readings for a meter point.

Arguments

Name Description

input (IntervalReadingInput!)

Query

query IntervalReadings($input: IntervalReadingInput!) {
  intervalReadings(input: $input) {
    meterPointId
    fromDatetime
    toDatetime
    consumption
    price
  }
}

Variables

{
  "input": IntervalReadingInput
}

Response

{
  "data": {
    "intervalReadings": [
      {
        "meterPointId": 1,
        "fromDatetime": "2020-01-01T00:00:00.000Z",
        "toDatetime": "2020-01-01T00:00:00.000Z",
        "consumption": "1.0",
        "price": "1.0"
      }
    ]
  }
}

isAutopayEnabled

Type: AutoPayOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns whether autopay is enabled for the given account.

Arguments

Name Description

accountNumber (String!)

considerFutureSchedule (Boolean)

Consider future schedules that are not yet active.

Query

query IsAutopayEnabled(
  $accountNumber: String!,
  $considerFutureSchedule: Boolean
) {
  isAutopayEnabled(
    accountNumber: $accountNumber,
    considerFutureSchedule: $considerFutureSchedule
  ) {
    isEnabled
  }
}

Variables

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

Response

{
  "data": {
    "isAutopayEnabled": {
      "isEnabled": true
    }
  }
}

isCustomerEligibleToGiveFeedbackFollowingCall

Type: Boolean

URL: https://api.oeus-kraken.energy/v1/graphql/

Check if customer is eligible to give feedback following a phone call.

The possible errors that can be raised are:

  • KT-CT-5519: Voice call not found.
  • KT-CT-5521: Eligibility configuration not found.
  • KT-CT-5522: Invalid eligibility configuration.
  • KT-CT-5523: Invalid account or account user.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Number of the account.

accountUserNumber (String!)

Number of the account user.

callId (Int!)

ID of the voice call.

Query

query IsCustomerEligibleToGiveFeedbackFollowingCall(
  $accountNumber: String!,
  $accountUserNumber: String!,
  $callId: Int!
) {
  isCustomerEligibleToGiveFeedbackFollowingCall(
    accountNumber: $accountNumber,
    accountUserNumber: $accountUserNumber,
    callId: $callId
  )
}

Variables

{
  "accountNumber": "abc123",
  "accountUserNumber": "abc123",
  "callId": 1
}

Response

{
  "data": {
    "isCustomerEligibleToGiveFeedbackFollowingCall": true
  }
}

isCustomerEligibleToGiveFeedbackFollowingEmail

Type: Boolean

URL: https://api.oeus-kraken.energy/v1/graphql/

Check if customer is eligible to give feedback following an email conversation.

The possible errors that can be raised are:

  • KT-CT-5520: Ink conversation not found.
  • KT-CT-5521: Eligibility configuration not found.
  • KT-CT-5522: Invalid eligibility configuration.
  • KT-CT-5523: Invalid account or account user.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Number of the account.

accountUserNumber (String!)

Number of the account user.

inkConversationId (Int!)

ID of the Ink conversation.

conversationClosedAt (DateTime!)

Datetime when the conversation was closed.

Query

query IsCustomerEligibleToGiveFeedbackFollowingEmail(
  $accountNumber: String!,
  $accountUserNumber: String!,
  $inkConversationId: Int!,
  $conversationClosedAt: DateTime!
) {
  isCustomerEligibleToGiveFeedbackFollowingEmail(
    accountNumber: $accountNumber,
    accountUserNumber: $accountUserNumber,
    inkConversationId: $inkConversationId,
    conversationClosedAt: $conversationClosedAt
  )
}

Variables

{
  "accountNumber": "abc123",
  "accountUserNumber": "abc123",
  "inkConversationId": 1,
  "conversationClosedAt": "2020-01-01T00:00:00.000Z"
}

Response

{
  "data": {
    "isCustomerEligibleToGiveFeedbackFollowingEmail": true
  }
}

isPasswordResetTokenValid

Type: Boolean

URL: https://api.oeus-kraken.energy/v1/graphql/

Check validity of a password reset token.

Arguments

Name Description

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
  }
}

isPostCodeQuotable

Type: IsQuotableOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns whether a post code is quotable and has multiple TDSPs or load zones.

Arguments

Name Description

postcode (String!)

The post code to check.

Query

query IsPostCodeQuotable($postcode: String!) {
  isPostCodeQuotable(postcode: $postcode) {
    isQuotable
    hasMultipleTdspsOrLoadZones
  }
}

Variables

{
  "postcode": "abc123"
}

Response

{
  "data": {
    "isPostCodeQuotable": {
      "isQuotable": true,
      "hasMultipleTdspsOrLoadZones": true
    }
  }
}

isValidSubdomain

Type: SubdomainOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Returns whether the subdomain is valid.

Arguments

Name Description

subdomain (String!)

Subdomain to check.

Query

query IsValidSubdomain($subdomain: String!) {
  isValidSubdomain(subdomain: $subdomain) {
    isValid
  }
}

Variables

{
  "subdomain": "abc123"
}

Response

{
  "data": {
    "isValidSubdomain": {
      "isValid": true
    }
  }
}

joinSupplierProcess

Type: JoinSupplierProcessType

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-10332: Join supplier process not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

number (String!)

The join supplier process number, e.g. JS-12345678.

Query

query JoinSupplierProcess($number: String!) {
  joinSupplierProcess(number: $number) {
    id
    status
    supplyPoints {
      ...SupplyPointConnectionTypeConnectionFragment
    }
    number
    currentProcessData {
      ...JoinSupplierProcessDataTypeFragment
    }
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "joinSupplierProcess": {
      "id": "abc123",
      "status": "PENDING",
      "supplyPoints": SupplyPointConnectionTypeConnection,
      "number": "abc123",
      "currentProcessData": JoinSupplierProcessDataType
    }
  }
}

Query

query KrakenVersion {
  krakenVersion {
    number
    SHA
  }
}

Response

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

Arguments

Name Description

accountNumber (String!)

Account number.

Query

query LanguagePreference($accountNumber: String!) {
  languagePreference(accountNumber: $accountNumber)
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "languagePreference": "ENGLISH"
  }
}

latestMoveOutDate

Type: LatestMoveOutDateOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

For on-supply accounts, return the latest requested MVO (Move out) date, or return None if there are no MVO events scheduled for the account.

The possible errors that can be raised are:

  • KT-CT-6623: Unauthorized.
  • KT-CT-4922: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Query

query LatestMoveOutDate($accountNumber: String!) {
  latestMoveOutDate(accountNumber: $accountNumber) {
    latestMoveOutDate
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "latestMoveOutDate": {
      "latestMoveOutDate": "2020-01-01T00:00:00.000Z"
    }
  }
}

leadBlocklistValidations

Type: LeadBlockListValidationOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

Arguments

Name Description

blockListEntries (LeadBlockListValidationInput)

List of client-configured black list entry types.

Query

query LeadBlocklistValidations($blockListEntries: LeadBlockListValidationInput) {
  leadBlocklistValidations(blockListEntries: $blockListEntries) {
    valid
    blockListHits
  }
}

Variables

{
  "blockListEntries": LeadBlockListValidationInput
}

Response

{
  "data": {
    "leadBlocklistValidations": {
      "valid": true,
      "blockListHits": ["abc123"]
    }
  }
}

leadByNumber

Type: LeadOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-8907: Lead not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

number (String)

Lead number.

Query

query LeadByNumber($number: String) {
  leadByNumber(number: $number) {
    leadId
    givenName
    familyName
    billingName
    billingAddress {
      ...AddressOutputFragment
    }
    email
    phoneNumber
    number
    stage
    extraDetails
    brand
    salesChannel
    assignedToTeam
    assignedToUser
    nationalId
    leadType
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "leadByNumber": {
      "leadId": "abc123",
      "givenName": "abc123",
      "familyName": "abc123",
      "billingName": "abc123",
      "billingAddress": AddressOutput,
      "email": "abc123",
      "phoneNumber": "abc123",
      "number": "abc123",
      "stage": "abc123",
      "extraDetails": {"key": "value"},
      "brand": "abc123",
      "salesChannel": "abc123",
      "assignedToTeam": "abc123",
      "assignedToUser": "abc123",
      "nationalId": "abc123",
      "leadType": "abc123"
    }
  }
}

leaveSupplierProcess

Type: LeaveSupplierProcessType

URL: https://api.oeus-kraken.energy/v1/graphql/

Details associated with a LeaveSupplier process.

The possible errors that can be raised are:

  • KT-CT-10302: Invalid data.
  • KT-CT-10333: Missing either number of leave supplier process id.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

number (String)

The leave supplier process number, e.g. LS-12345678.

Query

query LeaveSupplierProcess($number: String) {
  leaveSupplierProcess(number: $number) {
    id
    status
    number
    supplyPoints {
      ...SupplyPointConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "leaveSupplierProcess": {
      "id": "abc123",
      "status": "PENDING",
      "number": "abc123",
      "supplyPoints": SupplyPointConnectionTypeConnection
    }
  }
}

legalDocuments

Type: LegalDocumentsOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

Arguments

Name Description

language (LegalDocumentLanguageOption!)

Query

query LegalDocuments($language: LegalDocumentLanguageOption!) {
  legalDocuments(language: $language) {
    prepaidDisclosureStatement {
      ...LinkFragment
    }
    termsOfService {
      ...LinkFragment
    }
    termsOfUse {
      ...LinkFragment
    }
    yourRightsAsACustomer {
      ...LinkFragment
    }
  }
}

Variables

{
  "language": "ENGLISH"
}

Response

{
  "data": {
    "legalDocuments": {
      "prepaidDisclosureStatement": Link,
      "termsOfService": Link,
      "termsOfUse": Link,
      "yourRightsAsACustomer": Link
    }
  }
}

lifecycleProcesses

Type: LifecycleProcessesType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all lifecycle processes associated with an account.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

onlyActive (Boolean)

A flag to filter out only active/current processes.

sortOrder (LifecycleProcessesSortOrder)

The chronological order in which the lifecycle processes are sorted.

accountNumber (String!)

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

Query

query LifecycleProcesses(
  $onlyActive: Boolean,
  $sortOrder: LifecycleProcessesSortOrder,
  $accountNumber: String!
) {
  lifecycleProcesses(
    onlyActive: $onlyActive,
    sortOrder: $sortOrder,
    accountNumber: $accountNumber
  ) {
    leaveSupplierProcesses {
      ...LeaveSupplierProcessConnectionTypeConnectionFragment
    }
    joinSupplierProcesses {
      ...JoinSupplierProcessConnectionTypeConnectionFragment
    }
    occupyPropertyProcesses {
      ...OccupyPropertyProcessConnectionTypeConnectionFragment
    }
    leavePropertyProcesses {
      ...LeavePropertyProcessConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "onlyActive": true,
  "sortOrder": "ASC",
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "lifecycleProcesses": {
      "leaveSupplierProcesses": LeaveSupplierProcessConnectionTypeConnection,
      "joinSupplierProcesses": JoinSupplierProcessConnectionTypeConnection,
      "occupyPropertyProcesses": OccupyPropertyProcessConnectionTypeConnection,
      "leavePropertyProcesses": LeavePropertyProcessConnectionTypeConnection
    }
  }
}

livePaymentAdequacyCalculation

Type: LivePaymentAdequacyCalculation

URL: https://api.oeus-kraken.energy/v1/graphql/

Get payment adequacy data with an up to date calculation.

The possible errors that can be raised are:

  • KT-CT-3963: Could not calculate live PA data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

ledgerNumber (String!)

Kraken ledger number.

Query

query LivePaymentAdequacyCalculation($ledgerNumber: String!) {
  livePaymentAdequacyCalculation(ledgerNumber: $ledgerNumber) {
    suggestedNewMonthlyAmount
    consumption {
      ...ConsumptionBreakdownConnectionTypeConnectionFragment
    }
    averageMonthlyCharge
    existingMonthlyAmount
    balanceAdjustment
    currentBalance
    targetBalance
    reviewedOn
  }
}

Variables

{
  "ledgerNumber": "abc123"
}

Response

{
  "data": {
    "livePaymentAdequacyCalculation": {
      "suggestedNewMonthlyAmount": 1,
      "consumption": ConsumptionBreakdownConnectionTypeConnection,
      "averageMonthlyCharge": 1,
      "existingMonthlyAmount": 1,
      "balanceAdjustment": 1,
      "currentBalance": 1,
      "targetBalance": 1,
      "reviewedOn": "2020-01-01"
    }
  }
}

loyaltyCards

Type: [LoyaltyCardType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all loyalty cards for the given account user.

Arguments

Name Description

accountUserId (String!)

Account user id.

Query

query LoyaltyCards($accountUserId: String!) {
  loyaltyCards(accountUserId: $accountUserId) {
    id
    scheme
    number
    status
  }
}

Variables

{
  "accountUserId": "abc123"
}

Response

{
  "data": {
    "loyaltyCards": [
      {
        "id": "abc123",
        "scheme": "abc123",
        "number": "abc123",
        "status": "abc123"
      }
    ]
  }
}

loyaltyPointLedgerEntry

Type: LoyaltyPointLedgerEntryType

URL: https://api.oeus-kraken.energy/v1/graphql/

Resolve a loyalty point ledger entry

The possible errors that can be raised are:

  • KT-CT-9215: Loyalty points balance query disabled.
  • KT-CT-9223: Loyalty points ledger entry not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

input (LoyaltyPointLedgerEntryInput!)

Query

query LoyaltyPointLedgerEntry($input: LoyaltyPointLedgerEntryInput!) {
  loyaltyPointLedgerEntry(input: $input) {
    id
    ledgerType
    value
    balanceBroughtForward
    balanceCarriedForward
    reasonCode
    idempotencyKey
    postedAt
    accountNumber
  }
}

Variables

Response

{
  "data": {
    "loyaltyPointLedgerEntry": {
      "id": "abc123",
      "ledgerType": "abc123",
      "value": "abc123",
      "balanceBroughtForward": "abc123",
      "balanceCarriedForward": "abc123",
      "reasonCode": "abc123",
      "idempotencyKey": "500c164d-38c7-4f74-9ac6-be210197e9e4",
      "postedAt": "2020-01-01T00:00:00.000Z",
      "accountNumber": "abc123"
    }
  }
}

loyaltyPointLedgers

Type: [LoyaltyPointLedgerEntryType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the Loyalty Point ledger entries for the passed user.

Query

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

Response

{
  "data": {
    "loyaltyPointLedgers": [
      {
        "id": "abc123",
        "ledgerType": "abc123",
        "value": "abc123",
        "balanceBroughtForward": "abc123",
        "balanceCarriedForward": "abc123",
        "reasonCode": "abc123",
        "idempotencyKey": "500c164d-38c7-4f74-9ac6-be210197e9e4",
        "postedAt": "2020-01-01T00:00:00.000Z",
        "accountNumber": "abc123"
      }
    ]
  }
}

loyaltyPointsBalance

Type: AccountLoyaltyPointsType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the loyalty points balance for an account.

The possible errors that can be raised are:

  • KT-CT-9218: Unauthorized.
  • KT-CT-9217: Unauthorized.
  • KT-CT-9215: Loyalty points balance query disabled.
  • KT-CT-9216: Unauthorized.
  • KT-CT-9222: Loyalty points balance query requires either accountNumber field (deprecated) or input object (preferred) with account number and optional account user id.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

input (LoyaltyPointsBalanceInput)

Query

query LoyaltyPointsBalance($input: LoyaltyPointsBalanceInput) {
  loyaltyPointsBalance(input: $input) {
    loyaltyPoints
    totalMonetaryAmount
  }
}

Variables

Response

{
  "data": {
    "loyaltyPointsBalance": {
      "loyaltyPoints": 1,
      "totalMonetaryAmount": 1
    }
  }
}

metadata

Type: [Metadata]

URL: https://api.oeus-kraken.energy/v1/graphql/

Metadata for a linked object.

Arguments

Name Description

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

URL: https://api.oeus-kraken.energy/v1/graphql/

Metadata for a linked object with key.

The possible errors that can be raised are:

  • KT-CT-4123: Unauthorized.
  • KT-CT-4124: Unauthorized.
  • KT-CT-8411: Invalid data.
  • KT-CT-4179: No metadata found with given key.
  • KT-CT-4155: Invalid data.
  • KT-CT-4177: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

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"}
    }
  }
}

mfaDevices

Type: [MfaDevice]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all MFA devices for the current user.

Query

query MfaDevices {
  mfaDevices {
    deviceType
    isConfirmed
  }
}

Response

{
  "data": {
    "mfaDevices": [
      {
        "deviceType": "abc123",
        "isConfirmed": true
      }
    ]
  }
}

Arguments

Name Description

id (ID!)

The ID of the object

Query

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

Variables

{
  "id": "abc123"
}

Response

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

ocppConnection

Type: OCPPConnectionType

URL: https://api.oeus-kraken.energy/v1/graphql/

To confirm whether a device is connected to OCPP.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4311: Unable to confirm OCPP connection.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

ocppDetails

Type: OCPPDetailsType

URL: https://api.oeus-kraken.energy/v1/graphql/

The user specific generated OCPP details.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

offerForQuoting

Type: OfferType

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

Arguments

Name Description

identifier (ID)

The identifier of the offer to query.

Query

query OfferForQuoting($identifier: ID) {
  offerForQuoting(identifier: $identifier) {
    identifier
    quote {
      ...QuoteType_Fragment
    }
    description
    validFrom
    validTo
    acceptedAt
    rejectedAt
    createdBy {
      ...ActorTypeFragment
    }
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "offerForQuoting": {
      "identifier": "abc123",
      "quote": QuoteType_,
      "description": "abc123",
      "validFrom": "2020-01-01T00:00:00.000Z",
      "validTo": "2020-01-01T00:00:00.000Z",
      "acceptedAt": "2020-01-01T00:00:00.000Z",
      "rejectedAt": "2020-01-01T00:00:00.000Z",
      "createdBy": ActorType
    }
  }
}

offerGroupForQuoting

Type: OfferGroupType

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

Arguments

Name Description

identifier (ID)

The identifier of the offer group to query.

Query

query OfferGroupForQuoting($identifier: ID) {
  offerGroupForQuoting(identifier: $identifier) {
    identifier
    offers {
      ...OfferTypeFragment
    }
    createdAt
    createdBy {
      ...ActorTypeFragment
    }
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "offerGroupForQuoting": {
      "identifier": "abc123",
      "offers": [OfferType],
      "createdAt": "2020-01-01T00:00:00.000Z",
      "createdBy": ActorType
    }
  }
}

opportunityByNumber

Type: OpportunityOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-8906: Opportunity not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

number (String)

Opportunity number identifier.

Query

query OpportunityByNumber($number: String) {
  opportunityByNumber(number: $number) {
    opportunityId
    leadNumber
    leadType
    name
    email
    phoneNumber
    number
    stage
    extraDetails
    opportunityAddress {
      ...AddressOutputFragment
    }
    salesChannel
    assignedToTeam
    assignedToUser
    productOfferingId
    offerGroupId
    consents {
      ...ConsentOutputFragment
    }
  }
}

Variables

{
  "number": "abc123"
}

Response

{
  "data": {
    "opportunityByNumber": {
      "opportunityId": "abc123",
      "leadNumber": "abc123",
      "leadType": "abc123",
      "name": "abc123",
      "email": "abc123",
      "phoneNumber": "abc123",
      "number": "abc123",
      "stage": "abc123",
      "extraDetails": {"key": "value"},
      "opportunityAddress": AddressOutput,
      "salesChannel": "abc123",
      "assignedToTeam": "abc123",
      "assignedToUser": "abc123",
      "productOfferingId": "abc123",
      "offerGroupId": "abc123",
      "consents": [ConsentOutput]
    }
  }
}

opportunityValueByKey

Type: String

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-8903: Unable to update opportunity.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

opportunityId (ID)

The identifier of the opportunity to query.

key (String)

The key the a funnel-specific value you wish to obtain.

Query

query OpportunityValueByKey(
  $opportunityId: ID,
  $key: String
) {
  opportunityValueByKey(
    opportunityId: $opportunityId,
    key: $key
  )
}

Variables

{
  "opportunityId": "abc123",
  "key": "abc123"
}

Response

{
  "data": {
    "opportunityValueByKey": "abc123"
  }
}

orderDetails

Type: OrderDetailsType

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-13101: Order not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

identifier (String!)

Order identifier.

Query

query OrderDetails($identifier: String!) {
  orderDetails(identifier: $identifier) {
    order {
      ...OrderTypeFragment
    }
    status
    resources {
      ...OrderResourceFragment
    }
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "orderDetails": {
      "order": OrderType,
      "status": "PENDING",
      "resources": [OrderResource]
    }
  }
}

passwordValidatorHelpTexts

Type: [String]

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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"]
  }
}

paymentFingerprintChecks

Type: PaymentFingerPrintCheckType

URL: https://api.oeus-kraken.energy/v1/graphql/

Check if a given payment fingerprint already exists and/or is risk-listed.

Arguments

Name Description

fingerprint (String!)

Fingerprint.

Query

query PaymentFingerprintChecks($fingerprint: String!) {
  paymentFingerprintChecks(fingerprint: $fingerprint) {
    fingerprint
    isFound
    isRiskListed
  }
}

Variables

{
  "fingerprint": "abc123"
}

Response

{
  "data": {
    "paymentFingerprintChecks": {
      "fingerprint": "abc123",
      "isFound": true,
      "isRiskListed": true
    }
  }
}

paymentRequests

Type: PaymentRequestsType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all payment requests for the given ledger.

Arguments

Name Description

ledgerNumber (String!)

Kraken ledger number.

Query

query PaymentRequests($ledgerNumber: String!) {
  paymentRequests(ledgerNumber: $ledgerNumber) {
    paymentRequest {
      ...PaymentRequestConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "ledgerNumber": "abc123"
}

Response

{
  "data": {
    "paymentRequests": {
      "paymentRequest": PaymentRequestConnectionTypeConnection
    }
  }
}

plannedDispatches

Type: [UpsideDispatchType]

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Deprecated

The 'plannedDispatches' field is deprecated.

Please use 'flexPlannedDispatches' instead.

- Marked as deprecated on 2025-05-27.
- Scheduled for removal on or after 2025-08-27.

Arguments

Name Description

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
      }
    ]
  }
}

portfolio

Type: PortfolioType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about a portfolio, using its portfolio number.

The possible errors that can be raised are:

  • KT-CT-9403: Received an invalid portfolioId.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

portfolioNumber (String!)

Portfolio number to be retrieved.

Query

query Portfolio($portfolioNumber: String!) {
  portfolio(portfolioNumber: $portfolioNumber) {
    id
    number
    createdAt
    updatedAt
    billingName
    collectiveBilling
    operationsTeam {
      ...OperationsTeamTypeFragment
    }
    leadAccountNumber
    brand
    name
    depth
    parent {
      ...PortfolioTypeFragment
    }
    ancestors {
      ...PortfolioConnectionTypeConnectionFragment
    }
    descendants {
      ...PortfolioConnectionTypeConnectionFragment
    }
    accounts {
      ...AccountConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "portfolioNumber": "abc123"
}

Response

{
  "data": {
    "portfolio": {
      "id": "abc123",
      "number": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "updatedAt": "2020-01-01T00:00:00.000Z",
      "billingName": "abc123",
      "collectiveBilling": true,
      "operationsTeam": OperationsTeamType,
      "leadAccountNumber": "abc123",
      "brand": "abc123",
      "name": "abc123",
      "depth": 1,
      "parent": PortfolioType,
      "ancestors": PortfolioConnectionTypeConnection,
      "descendants": PortfolioConnectionTypeConnection,
      "accounts": AccountConnectionTypeConnection
    }
  }
}

portfolioByReference

Type: PortfolioType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get details about a portfolio, using its reference.

The possible errors that can be raised are:

  • KT-CT-9409: Invalid portfolio reference.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

portfolioReference (PortfolioReferenceInput!)

Portfolio reference namespace-value pair to filter by.

Query

query PortfolioByReference($portfolioReference: PortfolioReferenceInput!) {
  portfolioByReference(portfolioReference: $portfolioReference) {
    id
    number
    createdAt
    updatedAt
    billingName
    collectiveBilling
    operationsTeam {
      ...OperationsTeamTypeFragment
    }
    leadAccountNumber
    brand
    name
    depth
    parent {
      ...PortfolioTypeFragment
    }
    ancestors {
      ...PortfolioConnectionTypeConnectionFragment
    }
    descendants {
      ...PortfolioConnectionTypeConnectionFragment
    }
    accounts {
      ...AccountConnectionTypeConnectionFragment
    }
  }
}

Variables

{
  "portfolioReference": PortfolioReferenceInput
}

Response

{
  "data": {
    "portfolioByReference": {
      "id": "abc123",
      "number": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "updatedAt": "2020-01-01T00:00:00.000Z",
      "billingName": "abc123",
      "collectiveBilling": true,
      "operationsTeam": OperationsTeamType,
      "leadAccountNumber": "abc123",
      "brand": "abc123",
      "name": "abc123",
      "depth": 1,
      "parent": PortfolioType,
      "ancestors": PortfolioConnectionTypeConnection,
      "descendants": PortfolioConnectionTypeConnection,
      "accounts": AccountConnectionTypeConnection
    }
  }
}

possibleErrors

Type: PossibleErrorsOutputType

URL: https://api.oeus-kraken.energy/v1/graphql/

Possible errors of the requested query/mutation.

The possible errors that can be raised are:

  • KT-CT-1606: Query/Mutation not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

input (PossibleErrorsInputType!)

Query or Mutation for which to get the possible errors list.

Query

query PossibleErrors($input: PossibleErrorsInputType!) {
  possibleErrors(input: $input) {
    name
    type
    authErrors
    possibleErrors {
      ...PossibleErrorTypeFragment
    }
  }
}

Variables

Response

{
  "data": {
    "possibleErrors": {
      "name": "abc123",
      "type": "query",
      "authErrors": true,
      "possibleErrors": [PossibleErrorType]
    }
  }
}

printBatch

Type: PrintBatchType!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get print batch details, including messages in the batch.

The possible errors that can be raised are:

  • KT-CT-9013: Invalid data.
  • KT-CT-9012: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

batchId (ID)

The print batch ID.

Query

query PrintBatch($batchId: ID) {
  printBatch(batchId: $batchId) {
    id
    status
    messages {
      ...PrintMessageTypeConnectionFragment
    }
  }
}

Variables

{
  "batchId": "abc123"
}

Response

{
  "data": {
    "printBatch": {
      "id": "abc123",
      "status": "OPEN",
      "messages": PrintMessageTypeConnection
    }
  }
}

products

Type: [ProductType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all available electricity products.

Arguments

Name Description

id (ID)

ID of the product.

displayName (String)

Name of the product. For example: 30-Day Wholesale Rate.

basedOnTimeOfUse (Boolean)

Get products that have the Time of Use flag.

availableAt (DateTime)

Filters products that are available until the given time.

If the available_at argument is not provided, it defaults to the current localtime (America/Chicago).

prepay (Boolean)

Get products that have the Prepay flag.

Query

query Products(
  $id: ID,
  $displayName: String,
  $basedOnTimeOfUse: Boolean,
  $availableAt: DateTime,
  $prepay: Boolean
) {
  products(
    id: $id,
    displayName: $displayName,
    basedOnTimeOfUse: $basedOnTimeOfUse,
    availableAt: $availableAt,
    prepay: $prepay
  ) {
    id
    code
    notes
    fullName
    displayName
    description
    availableFrom
    availableTo
    term
    endsAt
    marketName
    availabilityStatus
    termsContractType
    isWholesale
    generationCredit
    basedOnTimeOfUse
    autoTopUpMinimumAmount
    autoTopUpDefaultAmount
    prepay
    ioDiscountEnabled
    rates {
      ...RatesTypeFragment
    }
  }
}

Variables

{
  "id": "abc123",
  "displayName": "abc123",
  "basedOnTimeOfUse": true,
  "availableAt": "2020-01-01T00:00:00.000Z",
  "prepay": true
}

Response

{
  "data": {
    "products": [
      {
        "id": "abc123",
        "code": "abc123",
        "notes": "abc123",
        "fullName": "abc123",
        "displayName": "abc123",
        "description": "abc123",
        "availableFrom": "2020-01-01T00:00:00.000Z",
        "availableTo": "2020-01-01T00:00:00.000Z",
        "term": 1,
        "endsAt": "2020-01-01T00:00:00.000Z",
        "marketName": "abc123",
        "availabilityStatus": "PUBLIC",
        "termsContractType": "abc123",
        "isWholesale": true,
        "generationCredit": true,
        "basedOnTimeOfUse": true,
        "autoTopUpMinimumAmount": 1,
        "autoTopUpDefaultAmount": 1,
        "prepay": true,
        "ioDiscountEnabled": true,
        "rates": RatesType
      }
    ]
  }
}

productsWithConciseApplicableRates

Type: [ProductWithRatesOutput]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get all available electricity products with concise rates.

Arguments

Name Description

filterProductsBy (ProductInput)

Query

query ProductsWithConciseApplicableRates($filterProductsBy: ProductInput) {
  productsWithConciseApplicableRates(filterProductsBy: $filterProductsBy) {
    id
    code
    fullName
    displayName
    description
    term
    rates {
      ...ConciseRatesOutputFragment
    }
    consolidatedRates {
      ...ConciseRatesOutputFragment
    }
    prepay
  }
}

Variables

{
  "filterProductsBy": ProductInput
}

Response

{
  "data": {
    "productsWithConciseApplicableRates": [
      {
        "id": "abc123",
        "code": "abc123",
        "fullName": "abc123",
        "displayName": "abc123",
        "description": "abc123",
        "term": 1,
        "rates": [ConciseRatesOutput],
        "consolidatedRates": [ConciseRatesOutput],
        "prepay": true
      }
    ]
  }
}

properties

Type: [PropertyType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Properties linked to the account now and in the future.

Arguments

Name Description

accountNumber (String!)

activeFrom (DateTime)

Returns properties that have an effective period that ends at or after the given activeFrom datetime.

Query

query Properties(
  $accountNumber: String!,
  $activeFrom: DateTime
) {
  properties(
    accountNumber: $accountNumber,
    activeFrom: $activeFrom
  ) {
    id
    addressLine1
    addressLine2
    addressLine3
    addressLine4
    addressLine5
    postcode
    label
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    meterPoints {
      ...ElectricityMeterPointTypeFragment
    }
  }
}

Variables

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

Response

{
  "data": {
    "properties": [
      {
        "id": "abc123",
        "addressLine1": "abc123",
        "addressLine2": "abc123",
        "addressLine3": "abc123",
        "addressLine4": "abc123",
        "addressLine5": "abc123",
        "postcode": "abc123",
        "label": "abc123",
        "address": "abc123",
        "richAddress": PropertyRichAddressType,
        "splitAddress": ["abc123"],
        "occupancyPeriods": [OccupancyPeriodType],
        "coordinates": CoordinatesType,
        "embeddedNetwork": EmbeddedNetworkType,
        "measurements": MeasurementConnection,
        "meterPoints": [ElectricityMeterPointType]
      }
    ]
  }
}

propertiesSearch

Type: [PropertySearchResult!]!

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

searchTerm (String!)

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

Query

query PropertiesSearch($searchTerm: String!) {
  propertiesSearch(searchTerm: $searchTerm) {
    score
    property {
      ...PropertyTypeFragment
    }
  }
}

Variables

{
  "searchTerm": "abc123"
}

Response

{
  "data": {
    "propertiesSearch": {
      "score": "1.0",
      "property": PropertyType
    }
  }
}

property

Type: PropertyType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

id (ID!)

The property ID.

Query

query Property($id: ID!) {
  property(id: $id) {
    id
    addressLine1
    addressLine2
    addressLine3
    addressLine4
    addressLine5
    postcode
    label
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    meterPoints {
      ...ElectricityMeterPointTypeFragment
    }
  }
}

Variables

{
  "id": "abc123"
}

Response

{
  "data": {
    "property": {
      "id": "abc123",
      "addressLine1": "abc123",
      "addressLine2": "abc123",
      "addressLine3": "abc123",
      "addressLine4": "abc123",
      "addressLine5": "abc123",
      "postcode": "abc123",
      "label": "abc123",
      "address": "abc123",
      "richAddress": PropertyRichAddressType,
      "splitAddress": ["abc123"],
      "occupancyPeriods": [OccupancyPeriodType],
      "coordinates": CoordinatesType,
      "embeddedNetwork": EmbeddedNetworkType,
      "measurements": MeasurementConnection,
      "meterPoints": [ElectricityMeterPointType]
    }
  }
}

propertySearch

Type: [PropertyType]

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Deprecated

The 'propertySearch' field is deprecated.

This query is being deprecated in favour of `propertiesSearch`. The latter returns not only the matched properties but the level of confidence in the results through the `score` field.

- Marked as deprecated on 2023-05-23.
- Scheduled for removal on or after 2024-01-01.

Arguments

Name Description

searchTerm (String!)

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

Query

query PropertySearch($searchTerm: String!) {
  propertySearch(searchTerm: $searchTerm) {
    id
    addressLine1
    addressLine2
    addressLine3
    addressLine4
    addressLine5
    postcode
    label
    address
    richAddress {
      ...PropertyRichAddressTypeFragment
    }
    splitAddress
    occupancyPeriods {
      ...OccupancyPeriodTypeFragment
    }
    coordinates {
      ...CoordinatesTypeFragment
    }
    embeddedNetwork {
      ...EmbeddedNetworkTypeFragment
    }
    measurements {
      ...MeasurementConnectionFragment
    }
    meterPoints {
      ...ElectricityMeterPointTypeFragment
    }
  }
}

Variables

{
  "searchTerm": "abc123"
}

Response

{
  "data": {
    "propertySearch": [
      {
        "id": "abc123",
        "addressLine1": "abc123",
        "addressLine2": "abc123",
        "addressLine3": "abc123",
        "addressLine4": "abc123",
        "addressLine5": "abc123",
        "postcode": "abc123",
        "label": "abc123",
        "address": "abc123",
        "richAddress": PropertyRichAddressType,
        "splitAddress": ["abc123"],
        "occupancyPeriods": [OccupancyPeriodType],
        "coordinates": CoordinatesType,
        "embeddedNetwork": EmbeddedNetworkType,
        "measurements": MeasurementConnection,
        "meterPoints": [ElectricityMeterPointType]
      }
    ]
  }
}

providerAuthDetails

Type: ProviderAuthDetailsType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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": "BYD",
  "deviceType": "BATTERIES",
  "clientType": "APP",
  "accountNumber": "abc123",
  "propertyId": 1
}

Response

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

providerVirtualKeyDetails

Type: ProviderVirtualKeyDetailsType

URL: https://api.oeus-kraken.energy/v1/graphql/

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

Arguments

Name Description

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": "BYD",
  "deviceType": "BATTERIES"
}

Response

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

Arguments

Name Description

input (QueryComplexityInputType!)

Query and relevant variables required to calculate the complexity.

Query

query QueryComplexity($input: QueryComplexityInputType!) {
  queryComplexity(input: $input) {
    complexityValue
  }
}

Variables

Response

{
  "data": {
    "queryComplexity": {
      "complexityValue": 1
    }
  }
}

question

Type: String

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the customer feedback survey question.

The possible errors that can be raised are:

  • KT-CT-5513: Invalid data.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

formId (Int!)

Query

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

Variables

{
  "formId": 1
}

Response

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

quotingParamDefinitionsForProductOffering

Type: QuotedOfferingParamsType

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-12403: Product offering not found.
  • KT-CT-12404: Product offering has expired.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

productOfferingIdentifier (ID)

The identifier of the product offering.

Query

query QuotingParamDefinitionsForProductOffering($productOfferingIdentifier: ID) {
  quotingParamDefinitionsForProductOffering(productOfferingIdentifier: $productOfferingIdentifier) {
    offeringIdentifier
    productComponents {
      ...QuotedProductComponentTypeFragment
    }
    offeringComponents {
      ...QuotedOfferingParamsTypeFragment
    }
  }
}

Variables

{
  "productOfferingIdentifier": "abc123"
}

Response

{
  "data": {
    "quotingParamDefinitionsForProductOffering": {
      "offeringIdentifier": "abc123",
      "productComponents": [QuotedProductComponentType],
      "offeringComponents": [QuotedOfferingParamsType]
    }
  }
}

rateLimitInfo

Type: CombinedRateLimitInformation

URL: https://api.oeus-kraken.energy/v1/graphql/

Combined information about points-allowance rate limiting and request-specific rate limiting.

Query

query RateLimitInfo {
  rateLimitInfo {
    pointsAllowanceRateLimit {
      ...PointsAllowanceRateLimitInformationFragment
    }
    fieldSpecificRateLimits {
      ...FieldSpecificRateLimitInformationConnectionTypeConnectionFragment
    }
  }
}

Response

{
  "data": {
    "rateLimitInfo": {
      "pointsAllowanceRateLimit": PointsAllowanceRateLimitInformation,
      "fieldSpecificRateLimits": FieldSpecificRateLimitInformationConnectionTypeConnection
    }
  }
}

registeredKrakenflexDevice

Type: KrakenFlexDeviceType

URL: https://api.oeus-kraken.energy/v1/graphql/

A device registered with KrakenFlex for a given account.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'registeredKrakenflexDevice' field is deprecated.

Please use 'devices' instead.

- Marked as deprecated on 2024-04-23.
- Scheduled for removal on or after 2025-12-10.

Arguments

Name Description

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": "BYD",
      "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"
    }
  }
}

returnSchedule

Type: [DepositReturnScheduleOutput]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get deposit agreement related return schedules for a given account.

Arguments

Name Description

accountNumber (String!)

Query

query ReturnSchedule($accountNumber: String!) {
  returnSchedule(accountNumber: $accountNumber) {
    dueDate
    amount
    status
  }
}

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "returnSchedule": [
      {
        "dueDate": "2020-01-01",
        "amount": 1,
        "status": "abc123"
      }
    ]
  }
}

searchLead

Type: LeadIdType

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

The possible errors that can be raised are:

  • KT-CT-8920: Search filters are invalid.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

filters (SearchLeadFilters)

Filters to search for leads. All passed filters will be checked against the lead.

Query

query SearchLead($filters: SearchLeadFilters) {
  searchLead(filters: $filters) {
    leadId
  }
}

Variables

{
  "filters": SearchLeadFilters
}

Response

{
  "data": {
    "searchLead": {
      "leadId": "abc123"
    }
  }
}

Arguments

Name Description

ids ([UUID])

A list of request IDs. If provided, only these requests will be returned.

createdAfter (DateTime)

Only requests created after this datetime will be included.

statuses ([RequestStatus])

Only requests with a status in this list will be included.

before (String)

after (String)

first (Int)

last (Int)

Query

query SiteworksRequests(
  $ids: [UUID],
  $createdAfter: DateTime,
  $statuses: [RequestStatus],
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  siteworksRequests(
    ids: $ids,
    createdAfter: $createdAfter,
    statuses: $statuses,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...CoreSiteworksRequestConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "ids": ["500c164d-38c7-4f74-9ac6-be210197e9e4"],
  "createdAfter": "2020-01-01T00:00:00.000Z",
  "statuses": "APPROVAL_PENDING",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "siteworksRequests": {
      "pageInfo": PageInfo,
      "edges": CoreSiteworksRequestConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

Name Description

smartFlexDeviceId (String)

The SmartFlex device ID to get the supply point details for.

Query

query SmartFlexDeviceSupplyPoint($smartFlexDeviceId: String) {
  smartFlexDeviceSupplyPoint(smartFlexDeviceId: $smartFlexDeviceId) {
    importSupplyPointId
    smartFlexDeviceId
  }
}

Variables

{
  "smartFlexDeviceId": "abc123"
}

Response

{
  "data": {
    "smartFlexDeviceSupplyPoint": {
      "importSupplyPointId": "abc123",
      "smartFlexDeviceId": "abc123"
    }
  }
}

smartFlexOnboardingWizards

Type: [SmartFlexOnboardingWizard!]

URL: https://api.oeus-kraken.energy/v1/graphql/

A list of wizards for onboarding devices for an account and property.

Arguments

Name Description

accountNumber (String!)

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

propertyId (Int)

Only list wizards for this property.

wizardId (ID)

To get a specific wizard by ID, if it exists.

includeCancelled (Boolean)

Include cancelled wizards.

includeCompleted (Boolean)

Include completed wizards.

isResumable (Boolean)

Filters for onboarding wizards that can be resumed. List limits to one resumable wizard.

Query

query SmartFlexOnboardingWizards(
  $accountNumber: String!,
  $propertyId: Int,
  $wizardId: ID,
  $includeCancelled: Boolean,
  $includeCompleted: Boolean,
  $isResumable: Boolean
) {
  smartFlexOnboardingWizards(
    accountNumber: $accountNumber,
    propertyId: $propertyId,
    wizardId: $wizardId,
    includeCancelled: $includeCancelled,
    includeCompleted: $includeCompleted,
    isResumable: $isResumable
  ) {
    id
    resumable {
      ...SmartFlexResumableFragment
    }
    deviceType
    displayName
    backendScreen
    currentStep {
      ...SmartFlexOnboardingStepInterfaceFragment
    }
    completedSteps {
      ...SmartFlexOnboardingStepInterfaceFragment
    }
  }
}

Variables

{
  "accountNumber": "abc123",
  "propertyId": 1,
  "wizardId": "abc123",
  "includeCancelled": true,
  "includeCompleted": true,
  "isResumable": true
}

Response

{
  "data": {
    "smartFlexOnboardingWizards": [
      {
        "id": "abc123",
        "resumable": SmartFlexResumable,
        "deviceType": "BATTERIES",
        "displayName": "abc123",
        "backendScreen": BackendScreenType,
        "currentStep": SmartFlexOnboardingStepInterface,
        "completedSteps": SmartFlexOnboardingStepInterface
      }
    ]
  }
}

supplyPoint

Type: SupplyPointType

URL: https://api.oeus-kraken.energy/v1/graphql/

Get a supply point by its market specific id.

Arguments

Name Description

externalIdentifier (String!)

The market specific supply point id.

marketName (String!)

The name of the market in which this supply point exists.

Query

query SupplyPoint(
  $externalIdentifier: String!,
  $marketName: String!
) {
  supplyPoint(
    externalIdentifier: $externalIdentifier,
    marketName: $marketName
  ) {
    id
    marketName
    externalIdentifier
    readings {
      ...ReadingsFragment
    }
    property {
      ...PropertyTypeFragment
    }
    devices {
      ...DevicesConnectionFragment
    }
  }
}

Variables

{
  "externalIdentifier": "abc123",
  "marketName": "abc123"
}

Response

{
  "data": {
    "supplyPoint": {
      "id": "abc123",
      "marketName": "abc123",
      "externalIdentifier": "abc123",
      "readings": Readings,
      "property": PropertyType,
      "devices": DevicesConnection
    }
  }
}

Arguments

Name Description

accountNumber (String)

Filter meter points by account.

portfolioNumber (String)

Filter meter points by portfolio.

before (String)

after (String)

first (Int)

last (Int)

Query

query SupplyPoints(
  $accountNumber: String,
  $portfolioNumber: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  supplyPoints(
    accountNumber: $accountNumber,
    portfolioNumber: $portfolioNumber,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...SupplyPointConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

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

Response

{
  "data": {
    "supplyPoints": {
      "pageInfo": PageInfo,
      "edges": SupplyPointConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

taskResult

Type: TaskResult

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the status of a background task.

The possible errors that can be raised are:

  • KT-CT-10401: Task not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

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"
    }
  }
}

Arguments

Name Description

postalCode (String!)

The ZIP code to retrieve service providers for.

Full ZIP codes are accepted with or without hyphen but only the first 5 digits are used.

Query

query TdspByPostalcode($postalCode: String!) {
  tdspByPostalcode(postalCode: $postalCode) {
    id
    postcode
    serviceProvider
    loadZone
  }
}

Variables

{
  "postalCode": "abc123"
}

Response

{
  "data": {
    "tdspByPostalcode": [
      {
        "id": "abc123",
        "postcode": "abc123",
        "serviceProvider": "AEP_TCC",
        "loadZone": "LZ_HOUSTON"
      }
    ]
  }
}

termsAndConditionsForProduct

Type: [TermsAndConditionsType]

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the active terms and conditions for a market supply product.

Arguments

Name Description

productCode (String!)

The product code of the market supply product.

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"
      }
    ]
  }
}

thirdPartyViewer

Type: ThirdPartyOrganizationType

URL: https://api.oeus-kraken.energy/v1/graphql/

The currently authenticated third party.

This field requires the Authorization header to be set.

Query

query ThirdPartyViewer {
  thirdPartyViewer {
    name
    permissions {
      ...ThirdPartyPermissionFragment
    }
  }
}

Response

{
  "data": {
    "thirdPartyViewer": {
      "name": "abc123",
      "permissions": [ThirdPartyPermission]
    }
  }
}

trigger

Type: Trigger!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the details of a published trigger with a given ID.

The possible errors that can be raised are:

  • KT-CT-9904: Trigger not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

triggerId (ID!)

The ID of the trigger.

Query

query Trigger($triggerId: ID!) {
  trigger(triggerId: $triggerId) {
    id
    triggerTypeCode
    createdAt
    messages {
      ...MessageConnectionFragment
    }
    processingStatus
  }
}

Variables

{
  "triggerId": "abc123"
}

Response

{
  "data": {
    "trigger": {
      "id": "abc123",
      "triggerTypeCode": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "messages": MessageConnection,
      "processingStatus": "UNPROCESSED"
    }
  }
}

userVehicles

Type: [UserVehiclesType]

URL: https://api.oeus-kraken.energy/v1/graphql/

A list of vehicles available to the user.

Note: If the API returns an empty list, there might be a delay between the vehicle being registered in the provider's system, and data being fetched from the vehicle's manufacturer. In such cases, the query should be retried after a few seconds.

Arguments

Name Description

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": "BYD",
  "authentication": AuthenticationInput
}

Response

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

validPhoneNumber

Type: PhoneNumberOutput

URL: https://api.oeus-kraken.energy/v1/graphql/

Override Field to add additional attributes and extend description with possible_errors

Arguments

Name Description

phoneNumber (String!)

Query

query ValidPhoneNumber($phoneNumber: String!) {
  validPhoneNumber(phoneNumber: $phoneNumber) {
    isValidPhoneNumber
  }
}

Variables

{
  "phoneNumber": "abc123"
}

Response

{
  "data": {
    "validPhoneNumber": {
      "isValidPhoneNumber": true
    }
  }
}

vehicleChargingPreferences

Type: VehicleChargingPreferencesType

URL: https://api.oeus-kraken.energy/v1/graphql/

Vehicle charging preference details.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4339: Your device charging preferences could not be fetched.
  • KT-CT-1113: Disabled GraphQL field requested.

Deprecated

The 'vehicleChargingPreferences' field is deprecated.

Please use 'devices.preferences' instead.

- Marked as deprecated on 2024-04-23.
- Scheduled for removal on or after 2025-12-10.

Arguments

Name Description

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
    }
  }
}

verificationStatus

Type: EmailVerificationStatus

URL: https://api.oeus-kraken.energy/v1/graphql/

Check the verification status of a given email address.

Arguments

Name Description

email (String!)

The email address to be checked.

Query

query VerificationStatus($email: String!) {
  verificationStatus(email: $email) {
    email
    status
  }
}

Variables

{
  "email": "abc123"
}

Response

{
  "data": {
    "verificationStatus": {
      "email": "abc123",
      "status": "NOT_SENT"
    }
  }
}

viewer

Type: AccountUserType

URL: https://api.oeus-kraken.energy/v1/graphql/

The currently authenticated user.

This field requires the Authorization header to be set.

Query

query Viewer {
  viewer {
    id
    number
    accounts {
      ...AccountInterfaceFragment
    }
    givenName
    familyName
    email
    mobile
    landline
    title
    pronouns
    isDeceased
    liveSecretKey
    createdAt
    permissions {
      ...AccountUserPermissionFragment
    }
    displayName
    firstName
    lastName
    fullName
    preferredName
    isActive
    address {
      ...RichAddressTypeFragment
    }
    portfolioId
    portfolioIds
    portfolios {
      ...PortfolioConnectionTypeConnectionFragment
    }
    specialCircumstances {
      ...SpecialCircumstancesTypeFragment
    }
    preferences {
      ...AccountUserCommsPreferencesFragment
    }
    dateOfBirth
    label
    landlinePhoneNumber
    alternativePhoneNumbers
    hasFamilyIssues
    isInHardship
    accountUserRoles {
      ...AccountUserRoleTypeFragment
    }
    portfolioUserRoles {
      ...PortfolioUserRoleTypeFragment
    }
    details {
      ...AccountUserDetailTypeFragment
    }
    consents {
      ...ConsentTypeFragment
    }
    paymentMethods {
      ...PaymentInstructionConnectionTypeConnectionFragment
    }
  }
}

Response

{
  "data": {
    "viewer": {
      "id": "abc123",
      "number": "abc123",
      "accounts": AccountInterface,
      "givenName": "abc123",
      "familyName": "abc123",
      "email": "abc123",
      "mobile": "abc123",
      "landline": "abc123",
      "title": "abc123",
      "pronouns": "abc123",
      "isDeceased": true,
      "liveSecretKey": "abc123",
      "createdAt": "2020-01-01T00:00:00.000Z",
      "permissions": [AccountUserPermission],
      "displayName": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "fullName": "abc123",
      "preferredName": "abc123",
      "isActive": true,
      "address": RichAddressType,
      "portfolioId": "abc123",
      "portfolioIds": ["abc123"],
      "portfolios": PortfolioConnectionTypeConnection,
      "specialCircumstances": SpecialCircumstancesType,
      "preferences": AccountUserCommsPreferences,
      "dateOfBirth": "2020-01-01",
      "label": "abc123",
      "landlinePhoneNumber": "abc123",
      "alternativePhoneNumbers": ["abc123"],
      "hasFamilyIssues": true,
      "isInHardship": true,
      "accountUserRoles": [AccountUserRoleType],
      "portfolioUserRoles": [PortfolioUserRoleType],
      "details": [AccountUserDetailType],
      "consents": ConsentType,
      "paymentMethods": PaymentInstructionConnectionTypeConnection
    }
  }
}

voiceCampaign

Type: VoiceCampaignType!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the voice campaign for a given ID.

The possible errors that can be raised are:

  • KT-CT-11501: Voice campaign not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

campaignId (String!)

The campaign ID.

Query

query VoiceCampaign($campaignId: String!) {
  voiceCampaign(campaignId: $campaignId) {
    id
    name
    description
    customOutboundPhoneNumber
    tags {
      ...CallTagConnectionTypeConnectionFragment
    }
    status
    campaignType
    campaignItems {
      ...VoiceCampaignItemConnectionTypeConnectionFragment
    }
    preventDuplicateRecords
  }
}

Variables

{
  "campaignId": "abc123"
}

Response

{
  "data": {
    "voiceCampaign": {
      "id": "abc123",
      "name": "abc123",
      "description": "abc123",
      "customOutboundPhoneNumber": "abc123",
      "tags": CallTagConnectionTypeConnection,
      "status": "ACTIVE",
      "campaignType": "PREVIEW",
      "campaignItems": VoiceCampaignItemConnectionTypeConnection,
      "preventDuplicateRecords": true
    }
  }
}

Arguments

Name Description

status (CampaignStatus)

Filter by campaign status.

campaignType (TypeOfVoiceCampaign)

Filter by campaign type.

name (String)

Filter by campaign name.

before (String)

after (String)

first (Int)

last (Int)

Query

query VoiceCampaigns(
  $status: CampaignStatus,
  $campaignType: TypeOfVoiceCampaign,
  $name: String,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  voiceCampaigns(
    status: $status,
    campaignType: $campaignType,
    name: $name,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...VoiceCampaignConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

{
  "status": "ACTIVE",
  "campaignType": "PREVIEW",
  "name": "abc123",
  "before": "abc123",
  "after": "abc123",
  "first": 1,
  "last": 1
}

Response

{
  "data": {
    "voiceCampaigns": {
      "pageInfo": PageInfo,
      "edges": VoiceCampaignConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

Arguments

Name Description

accountNumber (ID!)

The account number.

redeemableOnly (Boolean!)

Whether to only return vouchers that can be redeemable.

before (String)

after (String)

first (Int)

last (Int)

Query

query VouchersForAccount(
  $accountNumber: ID!,
  $redeemableOnly: Boolean!,
  $before: String,
  $after: String,
  $first: Int,
  $last: Int
) {
  vouchersForAccount(
    accountNumber: $accountNumber,
    redeemableOnly: $redeemableOnly,
    before: $before,
    after: $after,
    first: $first,
    last: $last
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    edges {
      ...VoucherPurchaseConnectionTypeEdgeFragment
    }
    totalCount
    edgeCount
  }
}

Variables

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

Response

{
  "data": {
    "vouchersForAccount": {
      "pageInfo": PageInfo,
      "edges": VoucherPurchaseConnectionTypeEdge,
      "totalCount": 1,
      "edgeCount": 1
    }
  }
}

workSchedule

Type: WorkScheduleType!

URL: https://api.oeus-kraken.energy/v1/graphql/

Get the work schedule with the given identifier.

The possible errors that can be raised are:

  • KT-CT-11804: Work schedule not found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

Name Description

identifier (String!)

The identifier of the work schedule (also known as the 'slug').

Query

query WorkSchedule($identifier: String!) {
  workSchedule(identifier: $identifier) {
    identifier
    name
    isOpen
    isPublicHoliday
    openOrClosedReason
  }
}

Variables

{
  "identifier": "abc123"
}

Response

{
  "data": {
    "workSchedule": {
      "identifier": "abc123",
      "name": "abc123",
      "isOpen": true,
      "isPublicHoliday": true,
      "openOrClosedReason": "CLOSED_DUE_TO_PUBLIC_HOLIDAY"
    }
  }
}

Authentication Server

authorizedApplications

Type: [AuthorizedApplication]

URL: https://auth.oeus-kraken.energy/graphql/

Get all the confidential-client applications the current user has authorized.

Deprecated

The 'authorizedApplications' field is deprecated.

Schema is being removed, but will be available in the main API site.

- Marked as deprecated on 2025-10-15.
- Scheduled for removal on or after 2025-10-30.

Query

query AuthorizedApplications {
  authorizedApplications {
    name
    clientId
  }
}

Response

{
  "data": {
    "authorizedApplications": [
      {
        "name": "abc123",
        "clientId": "abc123"
      }
    ]
  }
}

Query

query KrakenVersion {
  krakenVersion {
    number
    SHA
  }
}

Response

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

mfaDevices

Type: [MfaDevice]

URL: https://auth.oeus-kraken.energy/graphql/

Get all MFA devices for the current user.

Deprecated

The 'mfaDevices' field is deprecated.

Schema is being removed, but will be available in the main API site.

- Marked as deprecated on 2025-10-15.
- Scheduled for removal on or after 2025-10-30.

Query

query MfaDevices {
  mfaDevices {
    deviceType
    isConfirmed
  }
}

Response

{
  "data": {
    "mfaDevices": [
      {
        "deviceType": "abc123",
        "isConfirmed": true
      }
    ]
  }
}