Skip to main content

NexBlue API

nexblue-api is the official asynchronous Python client for the NexBlue OpenAPI. It is maintained by NexBlue and currently provides the communication layer used by the NexBlue Home Assistant integration.

The package handles authentication, access-token refresh, charger discovery, charger telemetry, and start/stop charging commands. It is deliberately independent of Home Assistant so it can be reused by other Python applications.

Requirements

  • Python 3.13 or later
  • A NexBlue account with access to the NexBlue OpenAPI

Installing this library does not create, grant, or expand access to a NexBlue account or service.

Installation

pip install nexblue-api

Basic usage

Keep credentials outside source code. The example uses environment variables and a placeholder API base URL supplied by NexBlue.

import asyncio
import os

import aiohttp

from nexblue_api import NexBlueClient


async def main() -> None:
    async with aiohttp.ClientSession() as session:
        client = NexBlueClient(
            session,
            os.environ["NEXBLUE_API_BASE_URL"],
        )

        await client.async_login(
            os.environ["NEXBLUE_USERNAME"],
            os.environ["NEXBLUE_PASSWORD"],
        )

        for charger in await client.async_list_chargers():
            status = await client.async_get_charger_status(charger.serial_number)
            print(charger.serial_number, status.charging_state, status.power_kw)


asyncio.run(main())

Supported operations

  • End-user login and refresh-token based access-token renewal
  • Charger discovery
  • Charger status and telemetry retrieval
  • Start charging and stop charging commands
  • Typed charger, status, and token models
  • Safe exceptions for authentication, connection, rate-limit, offline-device, and rejected-command errors

Status values are normalized to the API's documented units: kW, kWh, A, and V. Charging commands can still be rejected by the API or charger, for example when the charger is offline or another user is controlling it.

Credential handling

Do not commit, log, or share usernames, passwords, access tokens, refresh tokens, or OAuth client credentials.

The client retains tokens only for its active lifetime. Applications that need to restore a session should persist only the refresh token using their platform's protected credential storage, then call async_refresh_access_token. Do not persist an end-user password merely to perform automatic logins.

Successful login and refresh calls return a TokenBundle. Its account_id field is the stable account subject provided by the access token when available. Applications may use this value as a local, non-secret account identifier; they should not derive identity from a username or log the access token itself.

This library does not embed NexBlue OAuth client credentials. Applications using an external OAuth flow may provide an externally managed access token with set_access_token.

Development

python -m pytest -q
python -m build
python -m twine check dist/*

Please report bugs through the repository issue tracker. Do not include credentials, tokens, full API responses, or personally identifiable charger information in issues.

License

Copyright 2026 NexBlue.

Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nexblue_api-0.1.2.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nexblue_api-0.1.2-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file nexblue_api-0.1.2.tar.gz.

File metadata

  • Download URL: nexblue_api-0.1.2.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nexblue_api-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0ff251729411c8de1c78ab33aea6a443df73c436ff949d463f26650d2f2a4b10
MD5 e0f18b1ef20b9a7532e066b60f8822f8
BLAKE2b-256 6f2891f0c7710b9d4947a149aa1f28d7bdb71eefeb83bcab77de57f351b98656

See more details on using hashes here.

Provenance

The following attestation bundles were made for nexblue_api-0.1.2.tar.gz:

Publisher: release.yml on NexBlue-AB/nexblue-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nexblue_api-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: nexblue_api-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nexblue_api-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7bd76a670be88d8d1634d1636f6ffa7742b5b41320a77f6d3e6e95bba108e294
MD5 4b0bdc434a275e260aa198de46eb21a8
BLAKE2b-256 832178f90793f07a82c50beec1f1ce89666f73651f15e0438810640ed0d06d85

See more details on using hashes here.

Provenance

The following attestation bundles were made for nexblue_api-0.1.2-py3-none-any.whl:

Publisher: release.yml on NexBlue-AB/nexblue-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page