diff --git a/src/_zkapauthorizer/__init__.py b/src/_zkapauthorizer/__init__.py
index 5bfc4ba480c1699f0f936d27517cc40d8430dca8..b68f4ad55a090c8032082ca2986b8163b8a7098e 100644
--- a/src/_zkapauthorizer/__init__.py
+++ b/src/_zkapauthorizer/__init__.py
@@ -15,6 +15,11 @@
 __all__ = [
     "__version__",
     "__revision__",
+    "NAME",
 ]
 
+# The identifier for this plugin.  This appears in URLs for resources the
+# client plugin exposes, configuration files, etc.
+NAME = "privatestorageio-zkapauthz-v2"
+
 from ._version import __revision__, __version__
diff --git a/src/_zkapauthorizer/api.py b/src/_zkapauthorizer/api.py
index 4076c7ca5a671762ffcd3f87228ec94965b2c097..f4bb2c21bfbbf1fcce7ca906538b1a802c677043 100644
--- a/src/_zkapauthorizer/api.py
+++ b/src/_zkapauthorizer/api.py
@@ -20,10 +20,6 @@ __all__ = [
     "ZKAPAuthorizer",
 ]
 
-# The identifier for this plugin.  This appears in URLs for resources the
-# client plugin exposes, configuration files, etc.
-NAME = "privatestorageio-zkapauthz-v2"
-
 from ._storage_client import ZKAPAuthorizerStorageClient
 from ._storage_server import LeaseRenewalRequired, ZKAPAuthorizerStorageServer
 from .storage_common import MorePassesRequired
diff --git a/src/_zkapauthorizer/config.py b/src/_zkapauthorizer/config.py
index f92cde0fa46a45dc490899a18edab5c70cf9fa2f..a3ab5882e7aef071d8117c28a4c609a068cf924c 100644
--- a/src/_zkapauthorizer/config.py
+++ b/src/_zkapauthorizer/config.py
@@ -21,7 +21,7 @@ from typing import Optional
 
 from allmydata.node import _Config
 
-from .api import NAME
+from . import NAME
 from .lease_maintenance import LeaseMaintenanceConfig
 
 
diff --git a/src/_zkapauthorizer/resource.py b/src/_zkapauthorizer/resource.py
index a06c862cb9bf0c8d3c9dd2183b6d44bbf83cdc20..d0edfb3d2ce0ff1e4e23bd55bae6edd77e86538a 100644
--- a/src/_zkapauthorizer/resource.py
+++ b/src/_zkapauthorizer/resource.py
@@ -29,10 +29,10 @@ from twisted.web.resource import ErrorPage, IResource, NoResource, Resource
 from twisted.web.server import NOT_DONE_YET
 from zope.interface import Attribute
 
+from . import NAME
 from . import __version__ as _zkapauthorizer_version
 from ._base64 import urlsafe_b64decode
 from ._json import dumps_utf8
-from .api import NAME
 from .config import get_configured_lease_duration
 from .controller import PaymentController, get_redeemer
 from .pricecalculator import PriceCalculator
diff --git a/src/_zkapauthorizer/storage_common.py b/src/_zkapauthorizer/storage_common.py
index c8e8786776d4414675848f400e294bdbe805c2ac..175039d8807fd5580a56ab05ca5d45d7b1c8ac38 100644
--- a/src/_zkapauthorizer/storage_common.py
+++ b/src/_zkapauthorizer/storage_common.py
@@ -22,7 +22,7 @@ from typing import Callable
 import attr
 from pyutil.mathutil import div_ceil
 
-from .api import NAME
+from . import NAME
 from .eliot import MUTABLE_PASSES_REQUIRED
 from .validators import greater_than
 
diff --git a/src/_zkapauthorizer/tests/strategies.py b/src/_zkapauthorizer/tests/strategies.py
index 45d278012d75fcfcacdd5ec3976476baa6b7d6fe..2a03c8b17ff65f3484e7f13c80c14886b6a1bb15 100644
--- a/src/_zkapauthorizer/tests/strategies.py
+++ b/src/_zkapauthorizer/tests/strategies.py
@@ -46,7 +46,7 @@ from twisted.internet.task import Clock
 from twisted.web.test.requesthelper import DummyRequest
 from zope.interface import implementer
 
-from ..api import NAME
+from .. import NAME
 from ..configutil import config_string_from_sections
 from ..lease_maintenance import LeaseMaintenanceConfig, lease_maintenance_config_to_dict
 from ..model import (
diff --git a/src/_zkapauthorizer/tests/test_client_resource.py b/src/_zkapauthorizer/tests/test_client_resource.py
index 130294e54becd81e70c206c3dcbefd96f9303d0d..1aa875b3f48ffc9482c5c82e53b89eb69dd3e8f8 100644
--- a/src/_zkapauthorizer/tests/test_client_resource.py
+++ b/src/_zkapauthorizer/tests/test_client_resource.py
@@ -66,10 +66,10 @@ from twisted.web.http import BAD_REQUEST, NOT_FOUND, NOT_IMPLEMENTED, OK, UNAUTH
 from twisted.web.http_headers import Headers
 from twisted.web.resource import IResource, getChildForRequest
 
+from .. import NAME
 from .. import __version__ as zkapauthorizer_version
 from .._base64 import urlsafe_b64decode
 from .._json import dumps_utf8
-from ..api import NAME
 from ..configutil import config_string_from_sections
 from ..model import (
     DoubleSpend,
diff --git a/src/_zkapauthorizer/tests/test_plugin.py b/src/_zkapauthorizer/tests/test_plugin.py
index f1fc566d211f985b965583ea91ede11d9046e48b..1c50a993b3d5d9a485268ba8395dcb055c10c888 100644
--- a/src/_zkapauthorizer/tests/test_plugin.py
+++ b/src/_zkapauthorizer/tests/test_plugin.py
@@ -67,9 +67,9 @@ from twisted.web.resource import IResource
 
 from twisted.plugins.zkapauthorizer import storage_server
 
+from .. import NAME
 from .._plugin import get_root_nodes, load_signing_key
 from .._storage_client import IncorrectStorageServerReference
-from ..api import NAME
 from ..controller import DummyRedeemer, IssuerConfigurationMismatch, PaymentController
 from ..foolscap import RIPrivacyPassAuthorizedStorageServer
 from ..lease_maintenance import SERVICE_NAME, LeaseMaintenanceConfig
diff --git a/src/_zkapauthorizer/tests/test_storage_client.py b/src/_zkapauthorizer/tests/test_storage_client.py
index 7b56840cbd5f175ff96debb3836dbe51fa5f1ef1..a793c37f7f7dd01c154a2b864010b87089652f04 100644
--- a/src/_zkapauthorizer/tests/test_storage_client.py
+++ b/src/_zkapauthorizer/tests/test_storage_client.py
@@ -36,9 +36,10 @@ from testtools.matchers import (
 from testtools.twistedsupport import failed, succeeded
 from twisted.internet.defer import fail, succeed
 
+from .. import NAME
 from .._storage_client import call_with_passes
 from .._storage_server import _ValidationResult
-from ..api import NAME, MorePassesRequired
+from ..api import MorePassesRequired
 from ..model import NotEnoughTokens
 from ..storage_common import (
     get_configured_allowed_public_keys,
diff --git a/src/twisted/plugins/zkapauthorizer.py b/src/twisted/plugins/zkapauthorizer.py
index ed116120a6cab7542701c2a8895e27a40d4deabc..041daaeb1f520a026b07777c2e2a786767a63f1d 100644
--- a/src/twisted/plugins/zkapauthorizer.py
+++ b/src/twisted/plugins/zkapauthorizer.py
@@ -16,6 +16,7 @@
 A drop-in to supply plugins to the Twisted plugin system.
 """
 
-from _zkapauthorizer.api import NAME, ZKAPAuthorizer
+from _zkapauthorizer import NAME
+from _zkapauthorizer.api import ZKAPAuthorizer
 
 storage_server = ZKAPAuthorizer(name=NAME)