diff --git a/requirements-test.txt b/requirements-test.txt
--- a/requirements-test.txt
+++ b/requirements-test.txt
@@ -2,4 +2,3 @@
 pytest-mongodb
 swh.loader.git >= 0.8
 swh.journal >= 0.8
-types-Werkzeug
diff --git a/swh/provenance/__init__.py b/swh/provenance/__init__.py
--- a/swh/provenance/__init__.py
+++ b/swh/provenance/__init__.py
@@ -96,12 +96,4 @@
         db = MongoClient(**kwargs["db"]).get_database(dbname)
         return ProvenanceStorageMongoDb(db)
 
-    elif cls == "remote":
-        from .api.client import RemoteProvenanceStorage
-
-        storage = RemoteProvenanceStorage(**kwargs)
-        assert isinstance(storage, ProvenanceStorageInterface)
-        return storage
-
-    else:
-        raise ValueError
+    raise ValueError
diff --git a/swh/provenance/api/client.py b/swh/provenance/api/client.py
--- a/swh/provenance/api/client.py
+++ b/swh/provenance/api/client.py
@@ -2,16 +2,3 @@
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
-
-from swh.core.api import RPCClient
-
-from ..interface import ProvenanceStorageInterface
-from .serializers import DECODERS, ENCODERS
-
-
-class RemoteProvenanceStorage(RPCClient):
-    """Proxy to a remote provenance storage API"""
-
-    backend_class = ProvenanceStorageInterface
-    extra_type_decoders = DECODERS
-    extra_type_encoders = ENCODERS
diff --git a/swh/provenance/api/server.py b/swh/provenance/api/server.py
--- a/swh/provenance/api/server.py
+++ b/swh/provenance/api/server.py
@@ -3,79 +3,10 @@
 # License: GNU General Public License version 3, or any later version
 # See top-level LICENSE file for more information
 
-import logging
 import os
-from typing import Any, Dict, List, Optional
-
-from werkzeug.routing import Rule
+from typing import Any, Dict, Optional
 
 from swh.core import config
-from swh.core.api import JSONFormatter, MsgpackFormatter, RPCServerApp, negotiate
-from swh.provenance import get_provenance_storage
-from swh.provenance.interface import ProvenanceStorageInterface
-
-from .serializers import DECODERS, ENCODERS
-
-storage: Optional[ProvenanceStorageInterface] = None
-
-
-def get_global_provenance_storage() -> ProvenanceStorageInterface:
-    global storage
-    if storage is None:
-        storage = get_provenance_storage(**app.config["provenance"]["storage"])
-    return storage
-
-
-class ProvenanceStorageServerApp(RPCServerApp):
-    extra_type_decoders = DECODERS
-    extra_type_encoders = ENCODERS
-
-
-app = ProvenanceStorageServerApp(
-    __name__,
-    backend_class=ProvenanceStorageInterface,
-    backend_factory=get_global_provenance_storage,
-)
-
-
-def has_no_empty_params(rule: Rule) -> bool:
-    return len(rule.defaults or ()) >= len(rule.arguments or ())
-
-
-@app.route("/")
-def index() -> str:
-    return """<html>
-<head><title>Software Heritage provenance storage RPC server</title></head>
-<body>
-<p>You have reached the
-<a href="https://www.softwareheritage.org/">Software Heritage</a>
-provenance storage RPC server.<br />
-See its
-<a href="https://docs.softwareheritage.org/devel/swh-provenance/">documentation
-and API</a> for more information</p>
-</body>
-</html>"""
-
-
-@app.route("/site-map")
-@negotiate(MsgpackFormatter)
-@negotiate(JSONFormatter)
-def site_map() -> List[Dict[str, Any]]:
-    links = []
-    for rule in app.url_map.iter_rules():
-        if has_no_empty_params(rule) and hasattr(
-            ProvenanceStorageInterface, rule.endpoint
-        ):
-            links.append(
-                dict(
-                    rule=rule.rule,
-                    description=getattr(
-                        ProvenanceStorageInterface, rule.endpoint
-                    ).__doc__,
-                )
-            )
-    # links is now a list of url, endpoint tuples
-    return links
 
 
 def load_and_check_config(
@@ -125,24 +56,3 @@
             raise KeyError("Invalid configuration; missing 'db' config entry")
 
     return cfg
-
-
-api_cfg: Optional[Dict[str, Any]] = None
-
-
-def make_app_from_configfile() -> ProvenanceStorageServerApp:
-    """Run the WSGI app from the webserver, loading the configuration from
-    a configuration file.
-
-    SWH_CONFIG_FILENAME environment variable defines the
-    configuration path to load.
-
-    """
-    global api_cfg
-    if api_cfg is None:
-        config_path = os.environ.get("SWH_CONFIG_FILENAME")
-        api_cfg = load_and_check_config(config_path)
-        app.config.update(api_cfg)
-    handler = logging.StreamHandler()
-    app.logger.addHandler(handler)
-    return app
diff --git a/swh/provenance/cli.py b/swh/provenance/cli.py
--- a/swh/provenance/cli.py
+++ b/swh/provenance/cli.py
@@ -54,9 +54,6 @@
             # "db": {
             #     "dbname": "provenance",
             # },
-            # Remote REST-API/PostgreSQL
-            # "cls": "remote",
-            # "url": "http://localhost:8080/%2f",
         },
     }
 }
diff --git a/swh/provenance/tests/conftest.py b/swh/provenance/tests/conftest.py
--- a/swh/provenance/tests/conftest.py
+++ b/swh/provenance/tests/conftest.py
@@ -5,7 +5,7 @@
 
 from datetime import datetime, timedelta, timezone
 from os import path
-from typing import Any, Dict, Iterable, Iterator
+from typing import Any, Dict, Iterable
 
 from _pytest.fixtures import SubRequest
 import msgpack
@@ -16,8 +16,6 @@
 
 from swh.journal.serializers import msgpack_ext_hook
 from swh.provenance import get_provenance, get_provenance_storage
-from swh.provenance.api.client import RemoteProvenanceStorage
-import swh.provenance.api.server as server
 from swh.provenance.archive import ArchiveInterface
 from swh.provenance.interface import ProvenanceInterface, ProvenanceStorageInterface
 from swh.provenance.storage.archive import ArchiveStorage
@@ -46,38 +44,15 @@
     return postgresql.get_dsn_parameters()
 
 
-# the Flask app used as server in these tests
-@pytest.fixture
-def app(
-    provenance_postgresqldb: Dict[str, str]
-) -> Iterator[server.ProvenanceStorageServerApp]:
-    assert hasattr(server, "storage")
-    server.storage = get_provenance_storage(
-        cls="postgresql", db=provenance_postgresqldb
-    )
-    yield server.app
-
-
-# the RPCClient class used as client used in these tests
-@pytest.fixture
-def swh_rpc_client_class() -> type:
-    return RemoteProvenanceStorage
-
-
-@pytest.fixture(params=["mongodb", "postgresql", "remote"])
+@pytest.fixture(params=["mongodb", "postgresql"])
 def provenance_storage(
     request: SubRequest,
     provenance_postgresqldb: Dict[str, str],
     mongodb: pymongo.database.Database,
-    swh_rpc_client: RemoteProvenanceStorage,
 ) -> ProvenanceStorageInterface:
     """Return a working and initialized ProvenanceStorageInterface object"""
 
-    if request.param == "remote":
-        assert isinstance(swh_rpc_client, ProvenanceStorageInterface)
-        return swh_rpc_client
-
-    elif request.param == "mongodb":
+    if request.param == "mongodb":
         from swh.provenance.mongo.backend import ProvenanceStorageMongoDb
 
         return ProvenanceStorageMongoDb(mongodb)