Skip to main content

Queries

In this section

About Queries

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

API Site

accountIoEligibility

Type:AccountIoEligibility

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

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

Arguments

NameDescription

accountNumber (String!)

Account number.

propertyId (Int)

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

Query

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

Variables

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

Response

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

accountReference

Type:[AccountReferenceType]

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

value (String)

Filter account references by this value.

Query

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

Variables

{
  "value": "abc123"
}

Response

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

accountsSearch

Type:[AccountSearchItemType]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

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

The possible errors that can be raised are:

  • KT-CT-4183: One of more search terms failed validations.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

searchTerms (AccountSearchInputType)

Search operators.

maxResults (Int)

The maximum number of results to return.

Query

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

Variables

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

Response

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

backendScreen

Type:BackendScreenType

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

screenId (ID!)

The ID of the screen to return.

params ([BackendScreenParamInputType])

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

maxVersionSupported (Int)

The maximum version of backend screens supported by the client.

Query

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

Variables

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

Response

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

backendScreenEventIds

Type:[String]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

Get all registered backend screen event IDs.

Query

query BackendScreenEventIds {
  backendScreenEventIds
}

Response

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

Query

query BackendScreenIds {
  backendScreenIds
}

Response

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

Query

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

Response

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

completedDispatches

Type:[UpsideDispatchType]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

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

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4341: Unable to fetch completed dispatches.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

costOfCharge

Type:[CostOfChargeType]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

Aggregated cost of charge for an EV device.

The possible errors that can be raised are:

  • KT-CT-4326: Could not get consumption cost data.
  • KT-CT-1113: Disabled GraphQL field requested.

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

NameDescription

accountNumber (String!)

frequency (DataFrequency!)

Frequency by day, week, month or year.

reportDate (Date)

The date up to which data should be relative to.

startDate (Date)

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

Query

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

Variables

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

Response

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

dashboardScreen

Type:Dashboard

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

dashboardId (ID!)

The ID of the dashboard type screen to return.

accountNumber (String!)

The account number of the user.

maxVersionSupported (Int!)

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

ledgerId (String)

The ledger id associated to the account.

ledgerNumber (String)

The ledger number associated to the account.

propertyId (String)

The property id associated to the account.

params ([BackendScreenParamInputType])

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

Query

query DashboardScreen(
  $dashboardId: ID!,
  $accountNumber: String!,
  $maxVersionSupported: Int!,
  $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"
    }
  }
}

Arguments

NameDescription

accountNumber (String!)

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

propertyId (ID)

Only list devices registered to this property.

deviceId (String)

Only list the device with this ID.

integrationDeviceId (String)

Only list the device with this integration device ID.

Query

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

Variables

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

Response

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

electricVehicles

Type:[ElectricVehicleType]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

All electric vehicle types and their details.

The possible errors that can be raised are:

  • KT-CT-4343: Unable to fetch electric vehicles list for make.
  • KT-CT-4344: Make is not supported by provider.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

make (String)

Only return vehicle types for the specified make.

supportedProvider (ProviderChoices)

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

isIntegrationLive (Boolean)

Only return vehicles that are currently integrated.

Query

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

Variables

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

Response

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

eligibleDeviceTypes

Type:[KrakenFlexDeviceTypes]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

A list of device types that are eligible for registration.

Arguments

NameDescription

accountNumber (String!)

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

propertyId (Int)

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

Query

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

Variables

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

Response

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

enodeLinkSession

Type:EnodeLinkSessionType

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

accountNumber (String)

vendor (EnodeVendors)

Query

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

Variables

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

Response

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

flexPlannedDispatches

Type:[SmartFlexDispatch]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

All planned device dispatches in time order.

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4340: Unable to fetch planned dispatches.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

deviceId (String!)

The SmartFlex device ID to get the planned dispatches for.

Query

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

Variables

{
  "deviceId": "abc123"
}

Response

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

flexSupportedDevices

Type:FlexSupportedDevices

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

Devices capable of being registered with SmartFlex.

Arguments

NameDescription

deviceType (KrakenFlexDeviceTypes!)

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

heatPumpDevice

Type:HeatPumpDeviceType

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

The currently active heat pump device.

The possible errors that can be raised are:

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

Arguments

NameDescription

accountNumber (String!)

propertyId (Int!)

Query

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

Variables

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

Response

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

heatPumpStatus

Type:HeatPumpStatusType

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

A heat pump registered with KrakenFlex for a given account

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4360: Device status could not be fetched.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

heatPumpVariants

Type:[HeatPumpVariantsType]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

All heat pumps and their details.

The possible errors that can be raised are:

  • KT-CT-4361: No heat pumps of that make found.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

make (String)

Only return heat pumps of a specific make.

isDeprecated (Boolean)

Only return (non-) deprecated heat pumps.

Query

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

Variables

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

Response

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

Query

query KrakenVersion {
  krakenVersion {
    number
    SHA
    isPinned
  }
}

Response

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

Arguments

NameDescription

id (ID!)

The ID of the object

Query

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

Variables

{
  "id": "abc123"
}

Response

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

ocppConnection

Type:OCPPConnectionType

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

ocppDetails

Type:OCPPDetailsType

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

paymentFingerprintChecks

Type:PaymentFingerPrintCheckType

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

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

Arguments

NameDescription

fingerprint (String!)

Fingerprint.

Query

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

Variables

{
  "fingerprint": "abc123"
}

Response

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

plannedDispatches

Type:[UpsideDispatchType]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

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

The possible errors that can be raised are:

  • KT-CT-1111: Unauthorized.
  • KT-CT-4340: Unable to fetch planned dispatches.
  • KT-CT-1113: Disabled GraphQL field requested.

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

NameDescription

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

providerAuthDetails

Type:ProviderAuthDetailsType

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

provider (ProviderChoices!)

The provider to get the auth details for.

deviceType (KrakenFlexDeviceTypes!)

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

clientType (ClientType)

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

accountNumber (String)

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

propertyId (Int)

The ID of the property the device belongs to.

Query

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

Variables

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

Response

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

providerVirtualKeyDetails

Type:ProviderVirtualKeyDetailsType

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

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

Arguments

NameDescription

provider (ProviderChoices!)

The provider to get the virtual key details for.

deviceType (KrakenFlexDeviceTypes!)

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

Query

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

Variables

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

Response

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

registeredKrakenflexDevice

Type:KrakenFlexDeviceType

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

{
  "data": {
    "registeredKrakenflexDevice": {
      "krakenflexDeviceId": "abc123",
      "provider": "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"
    }
  }
}

Arguments

NameDescription

smartFlexDeviceId (String)

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

Query

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

Variables

{
  "smartFlexDeviceId": "abc123"
}

Response

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

smartFlexOnboardingWizards

Type:[SmartFlexOnboardingWizard!]

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

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

The possible errors that can be raised are:

  • KT-CT-4321: Serializer validation error.
  • KT-CT-1111: Unauthorized.
  • KT-CT-1113: Disabled GraphQL field requested.

Arguments

NameDescription

accountNumber (String!)

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

propertyId (Int)

Only list wizards for this property.

wizardId (ID)

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

includeCancelled (Boolean)

Include cancelled wizards.

includeCompleted (Boolean)

Include completed wizards.

isResumable (Boolean)

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

Query

query SmartFlexOnboardingWizards(
  $accountNumber: String!,
  $propertyId: Int,
  $wizardId: ID,
  $includeCancelled: Boolean,
  $includeCompleted: Boolean,
  $isResumable: Boolean
) {
  smartFlexOnboardingWizards(
    accountNumber: $accountNumber,
    propertyId: $propertyId,
    wizardId: $wizardId,
    includeCancelled: $includeCancelled,
    includeCompleted: $includeCompleted,
    isResumable: $isResumable
  ) {
    id
    resumable {
      ...SmartFlexResumableFragment
    }
    deviceType
    displayName
    backendScreen {
      ... 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
      }
    ]
  }
}

thirdPartyViewer

Type:ThirdPartyOrganizationType

URL:https://api.resiflexeu-kraken.systems/v1/graphql/

The currently authenticated third party.

This field requires the Authorization header to be set.

Query

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

Response

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

userVehicles

Type:[UserVehiclesType]

URL:https://api.resiflexeu-kraken.systems/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.

The possible errors that can be raised are:

  • KT-CT-4314: Unable to get provider details.
  • KT-CT-1113: Disabled GraphQL field requested.

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

NameDescription

accountNumber (String)

supportedProvider (ProviderChoices)

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

authentication (AuthenticationInput)

The authentication details required given the chosen provider.

Query

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

Variables

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

Response

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

vehicleChargingPreferences

Type:VehicleChargingPreferencesType

URL:https://api.resiflexeu-kraken.systems/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

NameDescription

accountNumber (String!)

Query

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

Variables

{
  "accountNumber": "abc123"
}

Response

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

viewer

Type:AccountUserType

URL:https://api.resiflexeu-kraken.systems/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
    }
  }
}