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.oefr-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 |
|---|---|
|
Query
query Account($accountNumber: String!) {
account(accountNumber: $accountNumber) {
id
number
users {
...AccountUserTypeFragment
}
brand
status
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
}
paymentSchedules {
...PaymentScheduleConnectionTypeConnectionFragment
}
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
}
consentData {
...FraConsentDataFragment
}
energyCheques {
...EnergyChequeFragment
}
energyChequeCertificates {
...EnergyChequeCertificateFragment
}
nextPaymentOrRepayment {
...FraPaymentsInterfaceFragment
}
creditStorage {
...CreditStorageFragment
}
supplyContracts {
...SupplyContractConnectionTypeConnectionFragment
}
agreements {
...AgreementConnectionTypeConnectionFragment
}
fraPotLedger {
...SupplementaryLedgerTypeFragment
}
}
}Variables
{
"accountNumber": "abc123"
}Response
{
"data": {
"account": {
"id": "abc123",
"number": "abc123",
"users": AccountUserType,
"brand": "abc123",
"status": "PENDING",
"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,
"paymentSchedules": PaymentScheduleConnectionTypeConnection,
"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,
"consentData": FraConsentData,
"energyCheques": [EnergyCheque],
"energyChequeCertificates": [EnergyChequeCertificate],
"nextPaymentOrRepayment": FraPaymentsInterface,
"creditStorage": CreditStorage,
"supplyContracts": SupplyContractConnectionTypeConnection,
"agreements": AgreementConnectionTypeConnection,
"fraPotLedger": SupplementaryLedgerType
}
}
}accountChargeReasons
Type:[ChargeReasonType]
URL:https://api.oefr-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.oefr-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 |
|---|---|
| The identifier of the contract. |
| The account number to find the contract for. |
| The version of the contract. |
Query
query AccountContract(
$identifier: String,
$accountNumber: String,
$version: Int
) {
accountContract(
identifier: $identifier,
accountNumber: $accountNumber,
version: $version
) {
identifier
title
party {
... on AccountType {
...AccountTypeFragment
}
... on BusinessType {
...BusinessTypeFragment
}
}
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": AccountType,
"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.oefr-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"
}
]
}
}accountIoEligibility
Type:AccountIoEligibility
URL:https://api.oefr-kraken.energy/v1/graphql/
Determines whether an account is eligible to register devices with SmartFlex.
Arguments
| Name | Description |
|---|---|
| Account number. |
| |
Query
query AccountIoEligibility(
$accountNumber: String!,
$propertyId: Int
) {
accountIoEligibility(
accountNumber: $accountNumber,
propertyId: $propertyId
) {
isEligibleForIo
}
}Variables
{
"accountNumber": "abc123",
"propertyId": 1
}Response
{
"data": {
"accountIoEligibility": {
"isEligibleForIo": true
}
}
}accountReference
URL:https://api.oefr-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 |
|---|---|
| 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
}
]
}
}accountUser
Type:AccountUserType
URL:https://api.oefr-kraken.energy/v1/graphql/
Retrieve an account user.
The possible errors that can be raised are:
- KT-CT-5418: Account user not found.
- KT-CT-5415: Account user not found.
- KT-CT-5423: Account user not found.
- KT-CT-5424: Invalid data.
- KT-CT-5421: Account user not found.
- KT-CT-5425: Account user not found.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| Email associated with an account user. |
| Kraken number associated with an account user. |
| External ID associated with an account user. |
Query
query AccountUser(
$email: String,
$number: ID,
$externalId: ID
) {
accountUser(
email: $email,
number: $number,
externalId: $externalId
) {
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
}
businesses {
...BusinessConnectionTypeConnectionFragment
}
specialCircumstances {
...SpecialCircumstancesTypeFragment
}
preferences {
...AccountUserCommsPreferencesFragment
}
dateOfBirth
label
landlinePhoneNumber
alternativePhoneNumbers
hasFamilyIssues
isInHardship
accountUserRoles {
...AccountUserRoleTypeFragment
}
portfolioUserRoles {
...PortfolioUserRoleTypeFragment
}
details {
...AccountUserDetailTypeFragment
}
consents {
...ConsentTypeFragment
}
paymentMethods {
...PaymentInstructionConnectionTypeConnectionFragment
}
}
}Variables
{
"email": "abc123",
"number": "abc123",
"externalId": "abc123"
}Response
{
"data": {
"accountUser": {
"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,
"businesses": BusinessConnectionTypeConnection,
"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
}
}
}accounts
Type:[AccountType]
URL:https://api.oefr-kraken.energy/v1/graphql/
Get details about multiple accounts.
Arguments
| Name | Description |
|---|---|
| A phone number to find accounts associated with. |
| A portfolio number to find accounts associated with. |
Query
query Accounts(
$phoneNumber: String,
$portfolioNumber: String
) {
accounts(
phoneNumber: $phoneNumber,
portfolioNumber: $portfolioNumber
) {
id
number
users {
...AccountUserTypeFragment
}
brand
status
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
}
paymentSchedules {
...PaymentScheduleConnectionTypeConnectionFragment
}
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
}
consentData {
...FraConsentDataFragment
}
energyCheques {
...EnergyChequeFragment
}
energyChequeCertificates {
...EnergyChequeCertificateFragment
}
nextPaymentOrRepayment {
...FraPaymentsInterfaceFragment
}
creditStorage {
...CreditStorageFragment
}
supplyContracts {
...SupplyContractConnectionTypeConnectionFragment
}
agreements {
...AgreementConnectionTypeConnectionFragment
}
fraPotLedger {
...SupplementaryLedgerTypeFragment
}
}
}Variables
{
"phoneNumber": "abc123",
"portfolioNumber": "abc123"
}Response
{
"data": {
"accounts": [
{
"id": "abc123",
"number": "abc123",
"users": AccountUserType,
"brand": "abc123",
"status": "PENDING",
"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,
"paymentSchedules": PaymentScheduleConnectionTypeConnection,
"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,
"consentData": FraConsentData,
"energyCheques": [EnergyCheque],
"energyChequeCertificates": [EnergyChequeCertificate],
"nextPaymentOrRepayment": FraPaymentsInterface,
"creditStorage": CreditStorage,
"supplyContracts": SupplyContractConnectionTypeConnection,
"agreements": AgreementConnectionTypeConnection,
"fraPotLedger": SupplementaryLedgerType
}
]
}
}activationProcesses
Type:ActivationProcessesConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
List of activation processes linked an account number or a quote code. If a quoteCode is specified, the accountNumber will be ignored.
Arguments
| Name | Description |
|---|---|
| The account number related to the activation processes. This parameter will be ignored if a quoteCode is also provided. |
| The quote code related to the activation processes. |
| Allowed statuses for returned activation processes. An empty list returns all processes. |
| |
| |
| |
|
Query
query ActivationProcesses(
$accountNumber: String,
$quoteCode: UUID,
$statuses: [ActivationProcessStatus],
$before: String,
$after: String,
$first: Int,
$last: Int
) {
activationProcesses(
accountNumber: $accountNumber,
quoteCode: $quoteCode,
statuses: $statuses,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...ActivationProcessesConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"accountNumber": "abc123",
"quoteCode": "500c164d-38c7-4f74-9ac6-be210197e9e4",
"statuses": "NEW",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"activationProcesses": {
"pageInfo": PageInfo,
"edges": ActivationProcessesConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}activeAffiliateReferralScheme
Type:ReferralSchemeType
URL:https://api.oefr-kraken.energy/v1/graphql/
Return the current active referral reward scheme of a given affiliate organisation, if any exists.
Arguments
| Name | Description |
|---|---|
| The affiliate link subdomain. |
| The account type for which to get the referral scheme. |
Query
query ActiveAffiliateReferralScheme(
$subdomain: String!,
$accountType: ReferralSchemeAccountTypeOptions
) {
activeAffiliateReferralScheme(
subdomain: $subdomain,
accountType: $accountType
) {
referralUrl
referralDisplayUrl
referrerRewardAmount
referredRewardAmount
combinedRewardAmount
loyaltyPointsBonus
canBeReferred
code
referrerGivenName
referrerFamilyName
schemeType
maxRecurrence
isUsageAtCapacity
}
}Variables
{
"subdomain": "abc123",
"accountType": "DOMESTIC"
}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.oefr-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
}
}
}agreementCertificate
Type:AgreementCertificate
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the agreement certificate for an agreement.
The possible errors that can be raised are:
- KT-FR-4910: Unauthorized to access to this agreement.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| ID of the account. |
| ID of the agreement. |
Query
query AgreementCertificate(
$accountNumber: String!,
$agreementId: Int!
) {
agreementCertificate(
accountNumber: $accountNumber,
agreementId: $agreementId
) {
temporaryUrl
}
}Variables
{
"accountNumber": "abc123",
"agreementId": 1
}Response
{
"data": {
"agreementCertificate": {
"temporaryUrl": "abc123"
}
}
}agreementRollover
URL:https://api.oefr-kraken.energy/v1/graphql/
Get an agreement rollover by its number.
The possible errors that can be raised are:
- KT-CT-13705: Agreement rollover not found.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| Number of the agreement rollover. |
Query
query AgreementRollover($number: String!) {
agreementRollover(number: $number) {
id
number
agreement {
...CommonAgreementTypeFragment
}
rolledOnTo {
...CommonAgreementTypeFragment
}
quoteRequests {
...QuoteRequestTypeFragment
}
rolloverType
expectedSendDate
status
params
failureReason
actualSendDate
suppressComms
tags
createdAt
updatedAt
}
}Variables
{
"number": "abc123"
}Response
{
"data": {
"agreementRollover": {
"id": "abc123",
"number": "abc123",
"agreement": CommonAgreementType,
"rolledOnTo": CommonAgreementType,
"quoteRequests": QuoteRequestType,
"rolloverType": "DEFAULT",
"expectedSendDate": "2020-01-01",
"status": "PENDING",
"params": {"key": "value"},
"failureReason": "abc123",
"actualSendDate": "2020-01-01",
"suppressComms": true,
"tags": ["abc123"],
"createdAt": "2020-01-01T00:00:00.000Z",
"updatedAt": "2020-01-01T00:00:00.000Z"
}
}
}agreements
Type:AgreementConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Additional data for french agreements.
Arguments
| Name | Description |
|---|---|
| The account number linked to the agreements. |
| The supply contract number linked to the agreements. |
| Filter agreements related to this specific supply point. |
| Filter agreements related to this property. |
| Fetch this specific agreement. |
| Filter agreements on the date (validfrom <= date <= validto). |
| Filter agreements where valid_from is less than or equal to this date (excludes future agreements). |
| |
| |
| |
|
Query
query Agreements(
$accountNumber: String!,
$supplyContractNumber: String,
$supplyPointId: ID,
$propertyId: ID,
$agreementId: ID,
$activeAt: DateTime,
$validFromBefore: DateTime,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
agreements(
accountNumber: $accountNumber,
supplyContractNumber: $supplyContractNumber,
supplyPointId: $supplyPointId,
propertyId: $propertyId,
agreementId: $agreementId,
activeAt: $activeAt,
validFromBefore: $validFromBefore,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...AgreementConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"accountNumber": "abc123",
"supplyContractNumber": "abc123",
"supplyPointId": "abc123",
"propertyId": "abc123",
"agreementId": "abc123",
"activeAt": "2020-01-01T00:00:00.000Z",
"validFromBefore": "2020-01-01T00:00:00.000Z",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"agreements": {
"pageInfo": PageInfo,
"edges": AgreementConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}authorizedApplications
URL:https://api.oefr-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.oefr-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 |
|---|---|
| Agreement ID. |
| 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.oefr-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 |
|---|---|
| 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 {
...SupplyProductTagTypeFragment
}
}
}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": SupplyProductTagType
}
]
}
}backendScreen
Type:BackendScreenType
URL:https://api.oefr-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 |
|---|---|
| The ID of the screen to return. |
| List of key-value pairs (strings) to pass as parameters to the screen. |
| The maximum version of backend screens supported by the client. |
Query
query BackendScreen(
$screenId: ID!,
$params: [BackendScreenParamInputType],
$maxVersionSupported: Int
) {
backendScreen(
screenId: $screenId,
params: $params,
maxVersionSupported: $maxVersionSupported
) {
... on ComponentListType {
...ComponentListTypeFragment
}
... on GenericBackendScreen {
...GenericBackendScreenFragment
}
... on Dashboard {
...DashboardFragment
}
... on FormScreenType {
...FormScreenTypeFragment
}
}
}Variables
{
"screenId": "abc123",
"params": BackendScreenParamInputType,
"maxVersionSupported": 1
}Response
{
"data": {
"backendScreen": ComponentListType
}
}backendScreenEventIds
Type:[String]
URL:https://api.oefr-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.oefr-kraken.energy/v1/graphql/
Get all registered backend screen IDs.
Query
query BackendScreenIds {
backendScreenIds
}Response
{
"data": {
"backendScreenIds": ["abc123"]
}
}bankDetailsValidation
Type:BankDetailsValidationResult
URL:https://api.oefr-kraken.energy/v1/graphql/
Override Field to add additional attributes and extend description with possible_errors
Arguments
| Name | Description |
|---|---|
| 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"
}
}
}bills
Type:FraBillsConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the bills for an account and requested parameters.
Arguments
| Name | Description |
|---|---|
| The account number. |
| The ID of the supply point. |
| Filter bills related to this property. |
| Filter bills related to this supply contract. |
| Optional document id used to get a specific billing document. This parameter take precedence over the dates parameters. |
| Optional date representing the beginning of the search results. This date value is inclusive. |
| Optional date representing the end of the search results. This date value is exclusive. |
| |
| |
| |
|
Query
query Bills(
$accountNumber: String!,
$supplyPointId: ID,
$propertyId: ID,
$supplyContractNumber: String,
$documentId: ID,
$fromDate: Date,
$toDate: Date,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
bills(
accountNumber: $accountNumber,
supplyPointId: $supplyPointId,
propertyId: $propertyId,
supplyContractNumber: $supplyContractNumber,
documentId: $documentId,
fromDate: $fromDate,
toDate: $toDate,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...FraBillsEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"accountNumber": "abc123",
"supplyPointId": "abc123",
"propertyId": "abc123",
"supplyContractNumber": "abc123",
"documentId": "abc123",
"fromDate": "2020-01-01",
"toDate": "2020-01-01",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"bills": {
"pageInfo": PageInfo,
"edges": FraBillsEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}business
Type:BusinessType
URL:https://api.oefr-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 |
|---|---|
| The business ID. |
| 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
}
establishments {
...EstablishmentConnectionTypeConnectionFragment
}
}
}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,
"establishments": EstablishmentConnectionTypeConnection
}
}
}businessAccountReferralRewardScheme
Type:ReferralSchemeType
URL:https://api.oefr-kraken.energy/v1/graphql/
Return a business referral reward scheme for the given account referral code.
Arguments
| Name | Description |
|---|---|
| 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.oefr-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 |
|---|---|
| The identifier of the contract. |
| The account number to find the business contract for. |
| The version of the contract. |
Query
query BusinessContract(
$identifier: String,
$accountNumber: String,
$version: Int
) {
businessContract(
identifier: $identifier,
accountNumber: $accountNumber,
version: $version
) {
identifier
title
party {
... on AccountType {
...AccountTypeFragment
}
... on BusinessType {
...BusinessTypeFragment
}
}
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": AccountType,
"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.oefr-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 |
|---|---|
| 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
}
}
}campaigns
Type:AccountCampaignConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
The campaigns associated with this account.
Arguments
| Name | Description |
|---|---|
| The account number. |
| |
| |
| |
|
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]
}
]
}
}complaint
Type:ComplaintType
URL:https://api.oefr-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 |
|---|---|
|
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.oefr-kraken.energy/v1/graphql/
All completed device dispatches 12 hours behind, in reverse time order.
Arguments
| Name | Description |
|---|---|
|
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.oefr-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"
}
]
}
}consumptionForecast
Type:ConsumptionForecastConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
List of forecasted consumption data.
Arguments
| Name | Description |
|---|---|
| The supply point id to obtain consumption forecast for. The supply point in an abstract representation of all types of industry meters. |
| The account number to obtain consumption forecast for. |
| The start date time of forecasted data to get, this field is inclusive of the data range. |
| The end date time of forecasted data to get, this field is exclusive of the data range. |
| Frequency by day, month or year to aggregate forecasted data. |
| |
| |
| |
|
Query
query ConsumptionForecast(
$supplyPointId: String!,
$accountNumber: String!,
$startAt: DateTime!,
$endAt: DateTime!,
$aggregationTimeInterval: ConsumptionDataAggregationTimeInterval!,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
consumptionForecast(
supplyPointId: $supplyPointId,
accountNumber: $accountNumber,
startAt: $startAt,
endAt: $endAt,
aggregationTimeInterval: $aggregationTimeInterval,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...ConsumptionForecastConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"supplyPointId": "abc123",
"accountNumber": "abc123",
"startAt": "2020-01-01T00:00:00.000Z",
"endAt": "2020-01-01T00:00:00.000Z",
"aggregationTimeInterval": "DAILY",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"consumptionForecast": {
"pageInfo": PageInfo,
"edges": ConsumptionForecastConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}contracts
Type:[Contract]
URL:https://api.oefr-kraken.energy/v1/graphql/
Get a list of contracts filtered by party or subject.
The possible errors that can be raised are:
- KT-CT-10029: Missing contract filters.
- KT-CT-10030: Filter by subject is not implemented.
- KT-CT-10031: Invalid party filter.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| Filters to apply when querying contracts. At least one filter must be provided. |
Query
query Contracts($filters: ContractFiltersInput!) {
contracts(filters: $filters) {
identifier
title
party {
... on AccountType {
...AccountTypeFragment
}
... on BusinessType {
...BusinessTypeFragment
}
}
subject {
...AccountTypeFragment
}
status
validFrom
validTo
signedAt
cancelledAt
lifecycle {
...ContractVersionFragment
}
terms {
...TermInterfaceFragment
}
}
}Variables
{
"filters": ContractFiltersInput
}Response
{
"data": {
"contracts": [
{
"identifier": NonEmptyString,
"title": "abc123",
"party": AccountType,
"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
}
]
}
}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.oefr-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 2026-01-16.
You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/605/
Arguments
| Name | Description |
|---|---|
| |
| Frequency by day, week, month or year. |
| The date up to which data should be relative to. |
| The start date of the results required. Overrides report date (end date) if provided. |
Query
query CostOfCharge(
$accountNumber: String!,
$frequency: DataFrequency!,
$reportDate: Date,
$startDate: Date
) {
costOfCharge(
accountNumber: $accountNumber,
frequency: $frequency,
reportDate: $reportDate,
startDate: $startDate
) {
costOfChargeId
krakenflexDeviceId
reportDate
isSmartCharge
totalConsumption
totalCostExclTax
totalCostInclTax
}
}Variables
{
"accountNumber": "abc123",
"frequency": "DAILY",
"reportDate": "2020-01-01",
"startDate": "2020-01-01"
}Response
{
"data": {
"costOfCharge": [
{
"costOfChargeId": "abc123",
"krakenflexDeviceId": "abc123",
"reportDate": "2020-01-01",
"isSmartCharge": true,
"totalConsumption": 1.0,
"totalCostExclTax": 1.0,
"totalCostInclTax": 1.0
}
]
}
}customerFeedbackForms
Type:CustomerFeedbackFormConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Returns all active customer feedback forms for the account's brand.
Arguments
| Name | Description |
|---|---|
| The account number. |
| Feedback sources currently supported. |
| |
| |
| |
|
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
}
}
}dashboardScreen
Type:Dashboard
URL:https://api.oefr-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 |
|---|---|
| The ID of the dashboard type screen to return. |
| The account number of the user. |
| The maximum version of dahshboard type screens supported by the client. |
| The ledger id associated to the account. |
| The ledger number associated to the account. |
| The property id associated to the account. |
| List of key-value pairs (strings) to pass as parameters to the screen. |
Query
query DashboardScreen(
$dashboardId: ID!,
$accountNumber: String!,
$maxVersionSupported: Int!,
$ledgerId: String,
$ledgerNumber: String,
$propertyId: String,
$params: [BackendScreenParamInputType]
) {
dashboardScreen(
dashboardId: $dashboardId,
accountNumber: $accountNumber,
maxVersionSupported: $maxVersionSupported,
ledgerId: $ledgerId,
ledgerNumber: $ledgerNumber,
propertyId: $propertyId,
params: $params
) {
id
typename
dashboardItems {
...SectionTypeFragment
}
serialisedDashboardItems
}
}Variables
{
"dashboardId": "abc123",
"accountNumber": "abc123",
"maxVersionSupported": 1,
"ledgerId": "abc123",
"ledgerNumber": "abc123",
"propertyId": "abc123",
"params": BackendScreenParamInputType
}Response
{
"data": {
"dashboardScreen": {
"id": "abc123",
"typename": "abc123",
"dashboardItems": SectionType,
"serialisedDashboardItems": "abc123"
}
}
}defaultPaymentInstruction
URL:https://api.oefr-kraken.energy/v1/graphql/
Get the default payment instruction for the account's main ledger.
Deprecated
The 'defaultPaymentInstruction' field is deprecated.
Please use 'usablePaymentInstructions' on the Ledger type to get all usable instructions, or 'paymentPreferenceAtTime' on the Ledger type to get a specific one. Both require explicitly requesting a ledger.
- Marked as deprecated on 2026-01-28.
- Scheduled for removal on or after 2026-07-28.
Arguments
| Name | Description |
|---|---|
| The account number. |
| 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.oefr-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 |
|---|---|
|
Query
query DefaultRawScore($formId: Int!) {
defaultRawScore(formId: $formId)
}Variables
{
"formId": 1
}Response
{
"data": {
"defaultRawScore": 1
}
}detailedMeasures
Type:ElectricityDetailedMeasure!
URL:https://api.oefr-kraken.energy/v1/graphql/
List of detailed measures.
The possible errors that can be raised are:
- KT-FR-4510: Invalid PRM.
- KT-FR-8914: Industry consent missing.
- KT-FR-4712: Invalid meter readings data.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
Input fields for requesting detailed measures. |
Query
query DetailedMeasures($input: RequestElectricityDetailedMeasuresInput!) {
detailedMeasures(input: $input) {
prmRef
periodStartDate
periodEndDate
physicalMeasures {
...ElectricityPhysicalMeasureFragment
}
}
}Variables
{
"input": RequestElectricityDetailedMeasuresInput
}Response
{
"data": {
"detailedMeasures": {
"prmRef": "abc123",
"periodStartDate": "2020-01-01",
"periodEndDate": "2020-01-01",
"physicalMeasures": [ElectricityPhysicalMeasure]
}
}
}devices
Type:[SmartFlexDeviceInterface!]
URL:https://api.oefr-kraken.energy/v1/graphql/
A list of devices registered to an account.
Arguments
| Name | Description |
|---|---|
| The account number, e.g. A-12345678. |
| Only list devices registered to this property. |
| Only list the device with this ID. |
| 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.oefr-kraken.energy/v1/graphql/
Return a domestic referral reward scheme for the given account referral code.
Arguments
| Name | Description |
|---|---|
| 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.oefr-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 |
|---|---|
| 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.oefr-kraken.energy/v1/graphql/
Return a signup referral reward scheme with the given code, if it's active.
Arguments
| Name | Description |
|---|---|
| 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
}
}
}electricVehicles
URL:https://api.oefr-kraken.energy/v1/graphql/
All electric vehicle types and their details.
Arguments
| Name | Description |
|---|---|
| Only return vehicle types for the specified make. |
| Only return vehicle types supported by the specified provider, e.g. Tesla. |
| 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]
}
]
}
}electricityConsumption
Type:ElectricityConsumptionConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
List of electricity consumption data.
Arguments
| Name | Description |
|---|---|
| ID of the PRM. |
| ID of the account. |
| Starting date (inclusive) for the query. |
| End date (exclusive) for the query. |
| |
| |
| |
|
Query
query ElectricityConsumption(
$prmId: String!,
$accountNumber: String!,
$startDate: Date!,
$endDate: Date!,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
electricityConsumption(
prmId: $prmId,
accountNumber: $accountNumber,
startDate: $startDate,
endDate: $endDate,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...ElectricityConsumptionEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"prmId": "abc123",
"accountNumber": "abc123",
"startDate": "2020-01-01",
"endDate": "2020-01-01",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"electricityConsumption": {
"pageInfo": PageInfo,
"edges": ElectricityConsumptionEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}electricityReading
Type:ElectricityReadingConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
List of electricity readings.
Arguments
| Name | Description |
|---|---|
| ID of the PRM. |
| ID of the account. |
| Starting period date (inclusive) of the reading. |
| End period date (exclusive) of the reading. |
| The calendar type of the reading. |
| The processing status of the reading. |
| |
| |
| |
|
Query
query ElectricityReading(
$prmId: String!,
$accountNumber: String!,
$periodStartAt: Date,
$periodEndAt: Date,
$calendarType: CalendarType,
$statusProcessed: ReadingStatus,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
electricityReading(
prmId: $prmId,
accountNumber: $accountNumber,
periodStartAt: $periodStartAt,
periodEndAt: $periodEndAt,
calendarType: $calendarType,
statusProcessed: $statusProcessed,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...ElectricityReadingEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"prmId": "abc123",
"accountNumber": "abc123",
"periodStartAt": "2020-01-01",
"periodEndAt": "2020-01-01",
"calendarType": "PROVIDER",
"statusProcessed": "OK",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"electricityReading": {
"pageInfo": PageInfo,
"edges": ElectricityReadingEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}eligibilityToJoinLoyaltyPointsProgram
Type:LoyaltyPointsProgramEligibilityType
URL:https://api.oefr-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 |
|---|---|
Query
query EligibilityToJoinLoyaltyPointsProgram($input: LoyaltyPointsProgramEligibilityInput!) {
eligibilityToJoinLoyaltyPointsProgram(input: $input) {
isEligible
primaryIneligibilityReason
}
}Variables
{
"input": LoyaltyPointsProgramEligibilityInput
}Response
{
"data": {
"eligibilityToJoinLoyaltyPointsProgram": {
"isEligible": true,
"primaryIneligibilityReason": "abc123"
}
}
}eligibleDeviceTypes
URL:https://api.oefr-kraken.energy/v1/graphql/
A list of device types that are eligible for registration.
Arguments
| Name | Description |
|---|---|
| The account number, e.g. A-12345678. |
| |
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.oefr-kraken.energy/v1/graphql/
Get details about an embedded network.
Arguments
| Name | Description |
|---|---|
|
Query
query EmbeddedNetwork($id: ID!) {
embeddedNetwork(id: $id) {
id
name
embeddedProperties {
...EmbeddedPropertyTypeFragment
}
}
}Variables
{
"id": "abc123"
}Response
{
"data": {
"embeddedNetwork": {
"id": "abc123",
"name": "abc123",
"embeddedProperties": [EmbeddedPropertyType]
}
}
}energyMixData
Type:EnergyMixDataType
URL:https://api.oefr-kraken.energy/v1/graphql/
The current energy generation mix.
Query
query EnergyMixData {
energyMixData {
carbonIntensityIndex
}
}Response
{
"data": {
"energyMixData": {
"carbonIntensityIndex": "abc123"
}
}
}enodeLinkSession
Type:EnodeLinkSessionType
URL:https://api.oefr-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.
Deprecated
The 'enodeLinkSession' field is deprecated.
Please use 'startSmartFlexOnboarding' instead.
- Marked as deprecated on 2025-10-30.
- Scheduled for removal on or after 2026-04-30.
You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/608/
Arguments
| Name | Description |
|---|---|
| |
|
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"
}
}
}estimateMeterReadings
Type:MeterReadingEstimationReadingConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Estimated meter readings.
Arguments
| Name | Description |
|---|---|
| The start of the period estimated. |
| The end of the period estimated. |
| This is the unique identifier used by the market to identify the supply point. |
| The meter id to perform estimation on. |
| The meter's register identifier. |
| |
| |
| |
|
Query
query EstimateMeterReadings(
$periodStart: DateTime!,
$periodEnd: DateTime!,
$marketIdentifier: ID!,
$deviceId: ID,
$registerId: ID,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
estimateMeterReadings(
periodStart: $periodStart,
periodEnd: $periodEnd,
marketIdentifier: $marketIdentifier,
deviceId: $deviceId,
registerId: $registerId,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...MeterReadingEstimationReadingEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"periodStart": "2020-01-01T00:00:00.000Z",
"periodEnd": "2020-01-01T00:00:00.000Z",
"marketIdentifier": "abc123",
"deviceId": "abc123",
"registerId": "abc123",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"estimateMeterReadings": {
"pageInfo": PageInfo,
"edges": MeterReadingEstimationReadingEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}fanClubStatus
Type:[FanClubStatus]
URL:https://api.oefr-kraken.energy/v1/graphql/
Get current status, historic discounts and future projections for a Fan Club source.
Arguments
| Name | Description |
|---|---|
| The account number. |
| The ID of the property. |
Query
query FanClubStatus(
$accountNumber: String,
$propertyId: Int
) {
fanClubStatus(
accountNumber: $accountNumber,
propertyId: $propertyId
) {
discountSource
name
location
windFarm
accountNumbers
propertyIds
catchments
thresholds {
...ThresholdFragment
}
current {
...DiscountDataFragment
}
historic {
...DiscountDataFragment
}
forecast {
...DiscountForecastFragment
}
}
}Variables
{
"accountNumber": "abc123",
"propertyId": 1
}Response
{
"data": {
"fanClubStatus": [
{
"discountSource": "abc123",
"name": "abc123",
"location": "abc123",
"windFarm": "abc123",
"accountNumbers": "abc123",
"propertyIds": 1,
"catchments": "abc123",
"thresholds": Threshold,
"current": DiscountData,
"historic": DiscountData,
"forecast": DiscountForecast
}
]
}
}flexPlannedDispatches
Type:[SmartFlexDispatch]
URL:https://api.oefr-kraken.energy/v1/graphql/
All planned device dispatches in time order.
Arguments
| Name | Description |
|---|---|
| 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"
}
]
}
}flexSupportedDevices
Type:FlexSupportedDevices
URL:https://api.oefr-kraken.energy/v1/graphql/
Devices capable of being registered with SmartFlex.
Arguments
| Name | Description |
|---|---|
| The device type to get the supported devices for. |
Query
query FlexSupportedDevices($deviceType: KrakenFlexDeviceTypes!) {
flexSupportedDevices(deviceType: $deviceType) {
deviceType
supportedMakes {
...FlexSupportedMakeFragment
}
}
}Variables
{
"deviceType": "BATTERIES"
}Response
{
"data": {
"flexSupportedDevices": {
"deviceType": "BATTERIES",
"supportedMakes": FlexSupportedMake
}
}
}fraTermsAndConditionsForProduct
Type:FraTermsAndConditionsType
URL:https://api.oefr-kraken.energy/v1/graphql/
The terms and conditions for the product.
Arguments
| Name | Description |
|---|---|
| The product code to fetch the terms and conditions for. |
Query
query FraTermsAndConditionsForProduct($productCode: String!) {
fraTermsAndConditionsForProduct(productCode: $productCode) {
name
documentUrl
version
effectiveFrom
}
}Variables
{
"productCode": "abc123"
}Response
{
"data": {
"fraTermsAndConditionsForProduct": {
"name": "abc123",
"documentUrl": "abc123",
"version": "abc123",
"effectiveFrom": "2020-01-01T00:00:00.000Z"
}
}
}gasReading
Type:GasReadingConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
List of gas readings.
Arguments
| Name | Description |
|---|---|
| ID of the PCE. |
| ID of the account. |
| Starting period date (inclusive) of the reading. |
| End period date (exclusive) of the reading. |
| The processing status of the reading. |
| The type of the reading. |
| The reading's energy qualification. |
| |
| |
| |
|
Query
query GasReading(
$pceRef: String!,
$accountNumber: String!,
$periodStartAt: Date,
$periodEndAt: Date,
$statusProcessed: ReadingStatus,
$readingType: ReadingType,
$energyQualification: ReadingQualification,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
gasReading(
pceRef: $pceRef,
accountNumber: $accountNumber,
periodStartAt: $periodStartAt,
periodEndAt: $periodEndAt,
statusProcessed: $statusProcessed,
readingType: $readingType,
energyQualification: $energyQualification,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...GasReadingEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"pceRef": "abc123",
"accountNumber": "abc123",
"periodStartAt": "2020-01-01",
"periodEndAt": "2020-01-01",
"statusProcessed": "OK",
"readingType": "A",
"energyQualification": "M",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"gasReading": {
"pageInfo": PageInfo,
"edges": GasReadingEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}getOnSiteJobsJobTypes
URL:https://api.oefr-kraken.energy/v1/graphql/
Get available job types for an on-site jobs request.
Arguments
| Name | Description |
|---|---|
| The ID of the request for which to fetch available job types. |
| 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"
}
]
}
}goodsProducts
Type:GoodsProductConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
List Goods products given a market.
Arguments
| Name | Description |
|---|---|
| Market name of the products to list. |
| Types of the products to filter by. |
| Code of the products to filter by. |
| |
| |
| |
|
Query
query GoodsProducts(
$marketName: String!,
$productType: [String],
$code: [String],
$before: String,
$after: String,
$first: Int,
$last: Int
) {
goodsProducts(
marketName: $marketName,
productType: $productType,
code: $code,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...GoodsProductConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"marketName": "abc123",
"productType": ["abc123"],
"code": ["abc123"],
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"goodsProducts": {
"pageInfo": PageInfo,
"edges": GoodsProductConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}goodsPurchases
Type:[GoodsPurchase]
URL:https://api.oefr-kraken.energy/v1/graphql/
List purchases for an account.
Arguments
| Name | Description |
|---|---|
| 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.oefr-kraken.energy/v1/graphql/
List quotes given an account number or retrieve a Goods quote given a quote code.
Arguments
| Name | Description |
|---|---|
| The account number. |
| 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
}
]
}
}inkCommsTemplate
Type:String!
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the content of a given comms template name.
The possible errors that can be raised are:
- KT-CT-7648: The comms template was not found.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| The identifier of the comms template. |
Query
query InkCommsTemplate($templateIdentifier: String!) {
inkCommsTemplate(templateIdentifier: $templateIdentifier)
}Variables
{
"templateIdentifier": "abc123"
}Response
{
"data": {
"inkCommsTemplate": "abc123"
}
}inkConversation
Type:InkConversation!
URL:https://api.oefr-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 |
|---|---|
| The account number. |
| 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.oefr-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 |
|---|---|
| The message's relay id. |
Query
query InkMessage($messageRelayId: String!) {
inkMessage(messageRelayId: $messageRelayId) {
... on InkEmail {
...InkEmailFragment
}
... on InkSMS {
...InkSMSFragment
}
... on InkLine {
...InkLineFragment
}
... on InkWhatsApp {
...InkWhatsAppFragment
}
... on InkTwilioWhatsApp {
...InkTwilioWhatsAppFragment
}
... on InkPost {
...InkPostFragment
}
... on InkGenericMessage {
...InkGenericMessageFragment
}
... on InkLiveChatMessage {
...InkLiveChatMessageFragment
}
}
}Variables
{
"messageRelayId": "abc123"
}Response
{
"data": {
"inkMessage": InkEmail
}
}inkMessageTextContent
Type:String!
URL:https://api.oefr-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 |
|---|---|
| The message's id or relay id. |
Query
query InkMessageTextContent($messageId: ID!) {
inkMessageTextContent(messageId: $messageId)
}Variables
{
"messageId": "abc123"
}Response
{
"data": {
"inkMessageTextContent": "abc123"
}
}isCustomerEligibleToGiveFeedbackFollowingCall
Type:Boolean
URL:https://api.oefr-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 |
|---|---|
| Number of the account. |
| Number of the account user. |
| 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.oefr-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 |
|---|---|
| Number of the account. |
| Number of the account user. |
| ID of the Ink conversation. |
| 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.oefr-kraken.energy/v1/graphql/
Check validity of a password reset token.
Arguments
| Name | Description |
|---|---|
| Base64 encoded user id. |
| 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
}
}isValidUfcMember
URL:https://api.oefr-kraken.energy/v1/graphql/
Check if a given UFC member number is valid.
The possible errors that can be raised are:
- KT-FR-7712: Invalid affiliate session.
- KT-CT-1137: Invalid data.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
|
Query
query IsValidUfcMember($input: IsValidUFCMemberInputType!) {
isValidUfcMember(input: $input)
}Variables
{
"input": IsValidUFCMemberInputType
}Response
{
"data": {
"isValidUfcMember": "UNKNOWN"
}
}joinSupplierProcess
URL:https://api.oefr-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 |
|---|---|
| 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
}
}
}krakenVersion
Type:KrakenVersionType
URL:https://api.oefr-kraken.energy/v1/graphql/
The current version of kraken.
Query
query KrakenVersion {
krakenVersion {
number
SHA
isPinned
}
}Response
{
"data": {
"krakenVersion": {
"number": "abc123",
"SHA": "abc123",
"isPinned": true
}
}
}lastReadingDateForMeasurements
Type:Date
URL:https://api.oefr-kraken.energy/v1/graphql/
The last reading date for the measurements.
Arguments
| Name | Description |
|---|---|
| The account number linked to the agreements. |
| The supply point ID. |
| Frequency for the reading. |
Query
query LastReadingDateForMeasurements(
$accountNumber: String!,
$marketSupplyPointId: ID!,
$readingFrequencyType: ReadingFrequencyType
) {
lastReadingDateForMeasurements(
accountNumber: $accountNumber,
marketSupplyPointId: $marketSupplyPointId,
readingFrequencyType: $readingFrequencyType
)
}Variables
{
"accountNumber": "abc123",
"marketSupplyPointId": "abc123",
"readingFrequencyType": "RAW_INTERVAL"
}Response
{
"data": {
"lastReadingDateForMeasurements": "2020-01-01"
}
}leaveSupplierProcess
URL:https://api.oefr-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 |
|---|---|
| The leave supplier process number, e.g. LS-12345678. |
| The leave supplier process ID. |
Query
query LeaveSupplierProcess(
$number: String,
$leaveSupplierProcessId: ID
) {
leaveSupplierProcess(
number: $number,
leaveSupplierProcessId: $leaveSupplierProcessId
) {
id
status
number
supplyPoints {
...SupplyPointConnectionTypeConnectionFragment
}
}
}Variables
{
"number": "abc123",
"leaveSupplierProcessId": "abc123"
}Response
{
"data": {
"leaveSupplierProcess": {
"id": "abc123",
"status": "PENDING",
"number": "abc123",
"supplyPoints": SupplyPointConnectionTypeConnection
}
}
}lifecycleProcesses
URL:https://api.oefr-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 |
|---|---|
| A flag to filter out only active/current processes. |
| The chronological order in which the lifecycle processes are sorted. |
| 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.oefr-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 |
|---|---|
| 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"
}
}
}loyaltyPointLedgerEntry
Type:LoyaltyPointLedgerEntryType
URL:https://api.oefr-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 |
|---|---|
|
Query
query LoyaltyPointLedgerEntry($input: LoyaltyPointLedgerEntryInput!) {
loyaltyPointLedgerEntry(input: $input) {
id
ledgerType
value
balanceBroughtForward
balanceCarriedForward
reasonCode
idempotencyKey
postedAt
accountNumber
}
}Variables
{
"input": LoyaltyPointLedgerEntryInput
}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.oefr-kraken.energy/v1/graphql/
Get the Loyalty Point ledger entries for the passed user.
Arguments
| Name | Description |
|---|---|
| The input object for retrieving a loyalty point ledger entry. |
Query
query LoyaltyPointLedgers($input: LoyaltyPointLedgersInput) {
loyaltyPointLedgers(input: $input) {
id
ledgerType
value
balanceBroughtForward
balanceCarriedForward
reasonCode
idempotencyKey
postedAt
accountNumber
}
}Variables
{
"input": LoyaltyPointLedgersInput
}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
URL:https://api.oefr-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 |
|---|---|
| The account number. |
|
Query
query LoyaltyPointsBalance(
$accountNumber: String,
$input: LoyaltyPointsBalanceInput
) {
loyaltyPointsBalance(
accountNumber: $accountNumber,
input: $input
) {
loyaltyPoints
totalMonetaryAmount
}
}Variables
{
"accountNumber": "abc123",
"input": LoyaltyPointsBalanceInput
}Response
{
"data": {
"loyaltyPointsBalance": {
"loyaltyPoints": 1,
"totalMonetaryAmount": 1
}
}
}Arguments
| Name | Description |
|---|---|
| |
|
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.oefr-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 |
|---|---|
| |
| |
|
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"}
}
}
}meterPointNumberByAddress
Type:String
URL:https://api.oefr-kraken.energy/v1/graphql/
The number of the meter point for the given address.
The possible errors that can be raised are:
- KT-FR-4523: Invalid market name.
- KT-CT-1601: Value cannot be empty.
- KT-CT-4410: Invalid postcode.
- KT-CT-1605: Invalid input.
- KT-FR-4532: Service is unavailable on DNO's side.
- KT-FR-4530: No meter point found.
- KT-FR-4531: Several meter points were found. Please refine your criteria.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
Query
query MeterPointNumberByAddress($input: MeterPointNumberByAddressInputType!) {
meterPointNumberByAddress(input: $input)
}Variables
{
"input": MeterPointNumberByAddressInputType
}Response
{
"data": {
"meterPointNumberByAddress": "abc123"
}
}mfaDevices
Type:[MfaDevice]
URL:https://api.oefr-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 |
|---|---|
| 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.oefr-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 |
|---|---|
|
Query
query OcppConnection($accountNumber: String!) {
ocppConnection(accountNumber: $accountNumber) {
isConnected
}
}Variables
{
"accountNumber": "abc123"
}Response
{
"data": {
"ocppConnection": {
"isConnected": true
}
}
}ocppDetails
Type:OCPPDetailsType
URL:https://api.oefr-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 |
|---|---|
|
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.oefr-kraken.energy/v1/graphql/
Override Field to add additional attributes and extend description with possible_errors
Arguments
| Name | Description |
|---|---|
| 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.oefr-kraken.energy/v1/graphql/
Override Field to add additional attributes and extend description with possible_errors
Arguments
| Name | Description |
|---|---|
| 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"
}opportunities
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch all opportunities for this Kraken, with optional filtering.
Arguments
| Name | Description |
|---|---|
| Input fields for retrieving opportunities. |
| |
| |
| |
|
Query
query Opportunities(
$input: OpportunitiesQueryInput,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
opportunities(
input: $input,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...OpportunitiesEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"input": OpportunitiesQueryInput,
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"opportunities": {
"pageInfo": PageInfo,
"edges": OpportunitiesEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}opportunityValueByKey
Type:String
URL:https://api.oefr-kraken.energy/v1/graphql/
Get the value of a given key that is stored in an opportunity's related JSONFields.
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 |
|---|---|
| The identifier of the opportunity to query. |
| 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.oefr-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 |
|---|---|
| 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.oefr-kraken.energy/v1/graphql/
The help text of all configured password validators as plain-text or html. Defaults to plain-text.
Arguments
| Name | Description |
|---|---|
| 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"]
}
}paymentRequests
Type:PaymentRequestsType
URL:https://api.oefr-kraken.energy/v1/graphql/
Get all payment requests for the given ledger.
Arguments
| Name | Description |
|---|---|
| Kraken ledger number. |
Query
query PaymentRequests($ledgerNumber: String!) {
paymentRequests(ledgerNumber: $ledgerNumber) {
paymentRequest {
...PaymentRequestConnectionTypeConnectionFragment
}
}
}Variables
{
"ledgerNumber": "abc123"
}Response
{
"data": {
"paymentRequests": {
"paymentRequest": PaymentRequestConnectionTypeConnection
}
}
}paymentSchedule
Type:PaymentSchedule
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the payment schedule for an agreement.
The possible errors that can be raised are:
- KT-FR-4910: Unauthorized to access to this agreement.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| ID of the account. |
| ID of the agreement. |
Query
query PaymentSchedule(
$accountNumber: String!,
$agreementId: Int!
) {
paymentSchedule(
accountNumber: $accountNumber,
agreementId: $agreementId
) {
temporaryUrl
}
}Variables
{
"accountNumber": "abc123",
"agreementId": 1
}Response
{
"data": {
"paymentSchedule": {
"temporaryUrl": "abc123"
}
}
}paymentsAndRepayments
Type:FraAccountPaymentConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the payments and repayments for an account.
Arguments
| Name | Description |
|---|---|
| ID of the account. |
| The ID of the supply point. |
| Filter payments and repayments related to this property. |
| Filter bills related to this supply contract. |
| Optional date representing the beginning of the search results. This date value is inclusive. |
| Optional date representing the end of the search results. This date value is exclusive. |
| Filter on the payments status. |
| Filter for payments that were taken for a particular reason. |
| Only return repayments whose status matches one of these statuses. |
| |
| |
| |
|
Query
query PaymentsAndRepayments(
$accountNumber: String!,
$supplyPointId: ID,
$propertyId: ID,
$supplyContractNumber: String,
$fromDate: Date,
$toDate: Date,
$paymentStatus: AccountPaymentStatusOptions,
$paymentReason: PaymentReasonOptions,
$repaymentStatuses: [AccountRepaymentStatusOptions],
$before: String,
$after: String,
$first: Int,
$last: Int
) {
paymentsAndRepayments(
accountNumber: $accountNumber,
supplyPointId: $supplyPointId,
propertyId: $propertyId,
supplyContractNumber: $supplyContractNumber,
fromDate: $fromDate,
toDate: $toDate,
paymentStatus: $paymentStatus,
paymentReason: $paymentReason,
repaymentStatuses: $repaymentStatuses,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...FraAccountPaymentConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"accountNumber": "abc123",
"supplyPointId": "abc123",
"propertyId": "abc123",
"supplyContractNumber": "abc123",
"fromDate": "2020-01-01",
"toDate": "2020-01-01",
"paymentStatus": "SCHEDULED",
"paymentReason": "BALANCE_THRESHOLD_CROSSED",
"repaymentStatuses": "REQUESTED",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"paymentsAndRepayments": {
"pageInfo": PageInfo,
"edges": FraAccountPaymentConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}paymentsAndRepaymentsForPrm
Type:FraAccountPaymentConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the payments and repayments for an account and for a specific PRM.
Deprecated
The 'paymentsAndRepaymentsForPrm' field is deprecated.
Replaced for a generic query to obtain payments and repayments. Please use 'paymentsAndRepayments' instead.
- Marked as deprecated on 2024-04-01.
- Scheduled for removal on or after 2024-12-01.
Arguments
| Name | Description |
|---|---|
| ID of the account. |
| ID of the PRM. |
| Optional date representing the beginning of the search results. This date value is inclusive. |
| Optional date representing the end of the search results. This date value is exclusive. |
| Filter on the payments status. |
| Filter for payments that were taken for a particular reason. |
| Only return repayments whose status matches one of these statuses. |
| |
| |
| |
|
Query
query PaymentsAndRepaymentsForPrm(
$accountNumber: String!,
$prmId: String!,
$fromDate: Date,
$toDate: Date,
$paymentStatus: AccountPaymentStatusOptions,
$paymentReason: PaymentReasonOptions,
$repaymentStatuses: [AccountRepaymentStatusOptions],
$before: String,
$after: String,
$first: Int,
$last: Int
) {
paymentsAndRepaymentsForPrm(
accountNumber: $accountNumber,
prmId: $prmId,
fromDate: $fromDate,
toDate: $toDate,
paymentStatus: $paymentStatus,
paymentReason: $paymentReason,
repaymentStatuses: $repaymentStatuses,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...FraAccountPaymentConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"accountNumber": "abc123",
"prmId": "abc123",
"fromDate": "2020-01-01",
"toDate": "2020-01-01",
"paymentStatus": "SCHEDULED",
"paymentReason": "BALANCE_THRESHOLD_CROSSED",
"repaymentStatuses": "REQUESTED",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"paymentsAndRepaymentsForPrm": {
"pageInfo": PageInfo,
"edges": FraAccountPaymentConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}plannedDispatches
Type:[UpsideDispatchType]
URL:https://api.oefr-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 2026-01-16.
You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/604/
Arguments
| Name | Description |
|---|---|
|
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
}
]
}
}pmaxAnalysis
Type:PMAXAnalysisType
URL:https://api.oefr-kraken.energy/v1/graphql/
Get PMAX analysis by token.
The possible errors that can be raised are:
- KT-FR-8910: PMAX Analysis not found.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| Unique identifier of the analysis. |
Query
query PmaxAnalysis($token: UUID!) {
pmaxAnalysis(token: $token) {
token
recommendedSubscribedMaxPower
yearlyProfitAmountCents
currentSubscribedMaxPower
firstName
lastName
suggestedPowerAdjustment
meterPoint {
...MeterPointInterfaceFragment
}
product {
...ProductFragment
}
}
}Variables
{
"token": "500c164d-38c7-4f74-9ac6-be210197e9e4"
}Response
{
"data": {
"pmaxAnalysis": {
"token": "500c164d-38c7-4f74-9ac6-be210197e9e4",
"recommendedSubscribedMaxPower": 1,
"yearlyProfitAmountCents": 1.0,
"currentSubscribedMaxPower": 1,
"firstName": "abc123",
"lastName": "abc123",
"suggestedPowerAdjustment": "NONE",
"meterPoint": MeterPointInterface,
"product": Product
}
}
}portfolio
Type:PortfolioType
URL:https://api.oefr-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 |
|---|---|
| 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.oefr-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 |
|---|---|
| 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
URL:https://api.oefr-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 |
|---|---|
| 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
{
"input": PossibleErrorsInputType
}Response
{
"data": {
"possibleErrors": {
"name": "abc123",
"type": "query",
"authErrors": true,
"possibleErrors": [PossibleErrorType]
}
}
}proofOfResidence
Type:ProofOfResidence
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the proof of residence of an user.
The possible errors that can be raised are:
- KT-FR-4910: Unauthorized to access to this agreement.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| ID of the account. |
| ID of the agreement. |
Query
query ProofOfResidence(
$accountNumber: String!,
$agreementId: Int!
) {
proofOfResidence(
accountNumber: $accountNumber,
agreementId: $agreementId
) {
temporaryUrl
}
}Variables
{
"accountNumber": "abc123",
"agreementId": 1
}Response
{
"data": {
"proofOfResidence": {
"temporaryUrl": "abc123"
}
}
}propertiesSearch
URL:https://api.oefr-kraken.energy/v1/graphql/
Search for properties that are already in Kraken and match the search term.
Arguments
| Name | Description |
|---|---|
| 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.oefr-kraken.energy/v1/graphql/
A property with the given ID. Usually associated with supply points.
Arguments
| Name | Description |
|---|---|
| The property ID. |
Query
query Property($id: ID!) {
property(id: $id) {
id
address
richAddress {
...PropertyRichAddressTypeFragment
}
splitAddress
label
occupancyPeriods {
...OccupancyPeriodTypeFragment
}
coordinates {
...CoordinatesTypeFragment
}
embeddedNetwork {
...EmbeddedNetworkTypeFragment
}
measurements {
...MeasurementConnectionFragment
}
postcode
supplyPoints {
...SupplyPointConnectionTypeConnectionFragment
}
}
}Variables
{
"id": "abc123"
}Response
{
"data": {
"property": {
"id": "abc123",
"address": "abc123",
"richAddress": PropertyRichAddressType,
"splitAddress": ["abc123"],
"label": "abc123",
"occupancyPeriods": [OccupancyPeriodType],
"coordinates": CoordinatesType,
"embeddedNetwork": EmbeddedNetworkType,
"measurements": MeasurementConnection,
"postcode": "abc123",
"supplyPoints": SupplyPointConnectionTypeConnection
}
}
}propertySearch
Type:[PropertyType]
URL:https://api.oefr-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 |
|---|---|
| The search term. It can be an address or a meter point identifier. |
Query
query PropertySearch($searchTerm: String!) {
propertySearch(searchTerm: $searchTerm) {
id
address
richAddress {
...PropertyRichAddressTypeFragment
}
splitAddress
label
occupancyPeriods {
...OccupancyPeriodTypeFragment
}
coordinates {
...CoordinatesTypeFragment
}
embeddedNetwork {
...EmbeddedNetworkTypeFragment
}
measurements {
...MeasurementConnectionFragment
}
postcode
supplyPoints {
...SupplyPointConnectionTypeConnectionFragment
}
}
}Variables
{
"searchTerm": "abc123"
}Response
{
"data": {
"propertySearch": [
{
"id": "abc123",
"address": "abc123",
"richAddress": PropertyRichAddressType,
"splitAddress": ["abc123"],
"label": "abc123",
"occupancyPeriods": [OccupancyPeriodType],
"coordinates": CoordinatesType,
"embeddedNetwork": EmbeddedNetworkType,
"measurements": MeasurementConnection,
"postcode": "abc123",
"supplyPoints": SupplyPointConnectionTypeConnection
}
]
}
}providerAuthDetails
URL:https://api.oefr-kraken.energy/v1/graphql/
Auth details (e.g. OAuth 2.0 URI) for the provider (if available).
Deprecated
The 'providerAuthDetails' field is deprecated.
Please use 'startSmartFlexOnboarding' instead.
- Marked as deprecated on 2025-10-30.
- Scheduled for removal on or after 2026-04-30.
You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/608/
Arguments
| Name | Description |
|---|---|
| The provider to get the auth details for. |
| The device type to get the auth details for (as providers may support multiple). |
| The client type the request originated from. Used when oauth_uri is different between web and app. |
| The account number that will be associated with the device. Required for some providers. |
| 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.oefr-kraken.energy/v1/graphql/
Virtual key details (e.g. certificate public key) for the provider (if available).
Arguments
| Name | Description |
|---|---|
| The provider to get the virtual key details for. |
| 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"
}
}
}question
Type:String
URL:https://api.oefr-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 |
|---|---|
|
Query
query Question($formId: Int!) {
question(formId: $formId)
}Variables
{
"formId": 1
}Response
{
"data": {
"question": "abc123"
}
}quotingParamDefinitionsForProductOffering
URL:https://api.oefr-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 |
|---|---|
| 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.oefr-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.oefr-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 2026-03-01.
You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/677/
Arguments
| Name | Description |
|---|---|
|
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"
}
}
}smartFlexDeviceSupplyPoint
Type:SmartFlexDeviceSupplyPointType
URL:https://api.oefr-kraken.energy/v1/graphql/
The supply point linked to the SmartFlex device.
Arguments
| Name | Description |
|---|---|
| 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.oefr-kraken.energy/v1/graphql/
A list of wizards for onboarding devices for an account and property.
Arguments
| Name | Description |
|---|---|
| The account number, e.g. A-12345678. |
| Only list wizards for this property. |
| To get a specific wizard by ID, if it exists. |
| Include cancelled wizards. |
| Include completed wizards. |
| 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 {
... on ComponentListType {
...ComponentListTypeFragment
}
... on GenericBackendScreen {
...GenericBackendScreenFragment
}
... on Dashboard {
...DashboardFragment
}
... on FormScreenType {
...FormScreenTypeFragment
}
}
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": ComponentListType,
"currentStep": SmartFlexOnboardingStepInterface,
"completedSteps": SmartFlexOnboardingStepInterface
}
]
}
}supplyContracts
Type:SupplyContractConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch supply contracts.
Arguments
| Name | Description |
|---|---|
| The account number linked to the supply contracts. |
| Specific supply contract to display. |
| Filter supply contracts related to this specific supply point. |
| Filter supply contracts related to this property. |
| Fetch supply contracts related to this specific agreement. |
| Filter supply contracts by market name (FRAELECTRICITY or FRAGAS). |
| |
| |
| |
|
Query
query SupplyContracts(
$accountNumber: String!,
$supplyContractNumber: String,
$supplyPointId: ID,
$propertyId: ID,
$agreementId: ID,
$marketName: FRAMarketName,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
supplyContracts(
accountNumber: $accountNumber,
supplyContractNumber: $supplyContractNumber,
supplyPointId: $supplyPointId,
propertyId: $propertyId,
agreementId: $agreementId,
marketName: $marketName,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...SupplyContractConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"accountNumber": "abc123",
"supplyContractNumber": "abc123",
"supplyPointId": "abc123",
"propertyId": "abc123",
"agreementId": "abc123",
"marketName": "FRA_ELECTRICITY",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"supplyContracts": {
"pageInfo": PageInfo,
"edges": SupplyContractConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}supplyPoint
Type:SupplyPointType
URL:https://api.oefr-kraken.energy/v1/graphql/
Get a supply point by its market specific id.
Arguments
| Name | Description |
|---|---|
| The market specific supply point id. |
| 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
}
meterPoint {
...MeterPointInterfaceFragment
}
lastSupplyPeriod {
...SupplyPeriodTypeFragment
}
}
}Variables
{
"externalIdentifier": "abc123",
"marketName": "abc123"
}Response
{
"data": {
"supplyPoint": {
"id": "abc123",
"marketName": "abc123",
"externalIdentifier": "abc123",
"readings": Readings,
"property": PropertyType,
"devices": DevicesConnection,
"meterPoint": MeterPointInterface,
"lastSupplyPeriod": SupplyPeriodType
}
}
}supplyPoints
Type:SupplyPointConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Get list of supply points.
Arguments
| Name | Description |
|---|---|
| Filter meter points by account. |
| Filter meter points by portfolio. |
| |
| |
| |
|
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
}
}
}supplyProducts
Type:ProductConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Available supply products.
Arguments
| Name | Description |
|---|---|
| The market for which we want to list products. |
| Filter products by product code. |
| |
| |
| |
|
Query
query SupplyProducts(
$marketName: String,
$productCode: String,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
supplyProducts(
marketName: $marketName,
productCode: $productCode,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...ProductConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"marketName": "abc123",
"productCode": "abc123",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"supplyProducts": {
"pageInfo": PageInfo,
"edges": ProductConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}tariffGrid
Type:TariffGrid
URL:https://api.oefr-kraken.energy/v1/graphql/
Fetch the payment schedule for an agreement.
The possible errors that can be raised are:
- KT-FR-4910: Unauthorized to access to this agreement.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| ID of the account. |
| ID of the agreement. |
Query
query TariffGrid(
$accountNumber: String!,
$agreementId: Int!
) {
tariffGrid(
accountNumber: $accountNumber,
agreementId: $agreementId
) {
temporaryUrl
}
}Variables
{
"accountNumber": "abc123",
"agreementId": 1
}Response
{
"data": {
"tariffGrid": {
"temporaryUrl": "abc123"
}
}
}taskResult
Type:TaskResult
URL:https://api.oefr-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.
Query
query TaskResult(
$taskId: String!,
$accountNumber: String!
) {
taskResult(
taskId: $taskId,
accountNumber: $accountNumber
) {
status
result
error
}
}Variables
{
"taskId": "abc123",
"accountNumber": "abc123"
}Response
{
"data": {
"taskResult": {
"status": "STARTED",
"result": {"key": "value"},
"error": "abc123"
}
}
}termsAndConditionsForProduct
URL:https://api.oefr-kraken.energy/v1/graphql/
Get the active terms and conditions for a market supply product.
Arguments
| Name | Description |
|---|---|
| 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"
}
]
}
}ufcContractsCount
Type:Int
URL:https://api.oefr-kraken.energy/v1/graphql/
Returns the current number of UFC contracts.
Query
query UfcContractsCount {
ufcContractsCount
}Response
{
"data": {
"ufcContractsCount": 1
}
}userEmailCheckForCheckout
Type:Boolean
URL:https://api.oefr-kraken.energy/v1/graphql/
Check email address before checkout. Return true is the email address is free, false if it's attached to an active user account.
The possible errors that can be raised are:
- KT-CT-4177: Unauthorized.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
Query
query UserEmailCheckForCheckout($input: UserEmailCheckForCheckoutInputType!) {
userEmailCheckForCheckout(input: $input)
}Variables
{
"input": UserEmailCheckForCheckoutInputType
}Response
{
"data": {
"userEmailCheckForCheckout": true
}
}userVehicles
Type:[UserVehiclesType]
URL:https://api.oefr-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.
Deprecated
The 'userVehicles' field is deprecated.
Please use 'startSmartFlexOnboarding' instead.
- Marked as deprecated on 2025-10-30.
- Scheduled for removal on or after 2026-04-30.
You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/608/
Arguments
| Name | Description |
|---|---|
| |
| The provider used to authenticate the device (default Enode). |
| 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
}
]
}
}Arguments
| Name | Description |
|---|---|
| Referral claim code value. |
Query
query ValidateReferralCode($value: String!) {
validateReferralCode(value: $value) {
id
value
referralScheme {
...ReferralSchemeTypeFragment
}
accountReferral {
...ReferralTypeFragment
}
isValid
createdAt
}
}Variables
{
"value": "abc123"
}Response
{
"data": {
"validateReferralCode": {
"id": 1,
"value": "abc123",
"referralScheme": ReferralSchemeType,
"accountReferral": ReferralType,
"isValid": true,
"createdAt": "2020-01-01T00:00:00.000Z"
}
}
}vehicleChargingPreferences
Type:VehicleChargingPreferencesType
URL:https://api.oefr-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 2026-03-01.
You can read more about this deprecation on:
https://announcements.kraken.tech/announcements/public/675/
Arguments
| Name | Description |
|---|---|
|
Query
query VehicleChargingPreferences($accountNumber: String!) {
vehicleChargingPreferences(accountNumber: $accountNumber) {
weekdayTargetTime
weekdayTargetSoc
weekendTargetTime
weekendTargetSoc
minimumSocPercentage
maximumSocPercentage
}
}Variables
{
"accountNumber": "abc123"
}Response
{
"data": {
"vehicleChargingPreferences": {
"weekdayTargetTime": "abc123",
"weekdayTargetSoc": 1,
"weekendTargetTime": "abc123",
"weekendTargetSoc": 1,
"minimumSocPercentage": 1,
"maximumSocPercentage": 1
}
}
}viewer
Type:AccountUserType
URL:https://api.oefr-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
}
businesses {
...BusinessConnectionTypeConnectionFragment
}
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,
"businesses": BusinessConnectionTypeConnection,
"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
}
}
}vouchersBalanceDetail
URL:https://api.oefr-kraken.energy/v1/graphql/
Query the detail of vouchers balance for an account.
The possible errors that can be raised are:
- KT-CT-1111: Unauthorized.
- KT-CT-4178: No account found with given account number.
- KT-CT-1113: Disabled GraphQL field requested.
Arguments
| Name | Description |
|---|---|
| The account number. |
Query
query VouchersBalanceDetail($accountNumber: ID!) {
vouchersBalanceDetail(accountNumber: $accountNumber) {
redeemableToday
redeemableInFuture
}
}Variables
{
"accountNumber": "abc123"
}Response
{
"data": {
"vouchersBalanceDetail": {
"redeemableToday": 1,
"redeemableInFuture": 1
}
}
}vouchersForAccount
Type:VoucherPurchaseConnectionTypeConnection
URL:https://api.oefr-kraken.energy/v1/graphql/
Query the voucher purchases for an account.
Arguments
| Name | Description |
|---|---|
| The account number. |
| Whether to only return vouchers that can be redeemable. |
| An optional date to limit the response to vouchers that have been purchased from the particular date (inclusive) onwards. |
| An optional date to limit the response to vouchers that have been purchased before the particular date (exclusive). |
| An optional date to limit the response to vouchers that are available from the particular date (inclusive) onwards. |
| An optional date to limit the response to vouchers that are available before the particular date (exclusive). |
| |
| |
| |
|
Query
query VouchersForAccount(
$accountNumber: ID!,
$redeemableOnly: Boolean!,
$purchasedFromDate: Date,
$purchasedBeforeDate: Date,
$availableFromDate: Date,
$availableBeforeDate: Date,
$before: String,
$after: String,
$first: Int,
$last: Int
) {
vouchersForAccount(
accountNumber: $accountNumber,
redeemableOnly: $redeemableOnly,
purchasedFromDate: $purchasedFromDate,
purchasedBeforeDate: $purchasedBeforeDate,
availableFromDate: $availableFromDate,
availableBeforeDate: $availableBeforeDate,
before: $before,
after: $after,
first: $first,
last: $last
) {
pageInfo {
...PageInfoFragment
}
edges {
...VoucherPurchaseConnectionTypeEdgeFragment
}
totalCount
edgeCount
}
}Variables
{
"accountNumber": "abc123",
"redeemableOnly": true,
"purchasedFromDate": "2020-01-01",
"purchasedBeforeDate": "2020-01-01",
"availableFromDate": "2020-01-01",
"availableBeforeDate": "2020-01-01",
"before": "abc123",
"after": "abc123",
"first": 1,
"last": 1
}Response
{
"data": {
"vouchersForAccount": {
"pageInfo": PageInfo,
"edges": VoucherPurchaseConnectionTypeEdge,
"totalCount": 1,
"edgeCount": 1
}
}
}