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.

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.0.tar.gz (11.6 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.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nexblue_api-0.1.0.tar.gz
  • Upload date:
  • Size: 11.6 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.0.tar.gz
Algorithm Hash digest
SHA256 073b7d054eaed6f789eab3aa003a15278ff71da704706f24b555a5670aa675e1
MD5 091e6835880d880046888db84570246d
BLAKE2b-256 5a10ee594c90333330c798780898e63a43aa2a1f0fd9067c9ee9831f4f6308c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for nexblue_api-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: nexblue_api-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34db76fe8a062989aa163dbc16e0270daa31684d371d49c29c1b0bd71a3483cc
MD5 f474607177fe9e0a09863d8e4ab007d9
BLAKE2b-256 fd79c7ad95cea361e9874449b703981a71db665c74aad601987fadef051dc08a

See more details on using hashes here.

Provenance

The following attestation bundles were made for nexblue_api-0.1.0-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

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

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