diff --git a/net/BUILD.bazel b/net/BUILD.bazel
index 5bec44a8090a9cc26cf4d44f35240b5bf9bb4be9..dad0b392ae4874d7f9dc5e8329371784243ae313 100644
--- a/net/BUILD.bazel
+++ b/net/BUILD.bazel
@@ -8,6 +8,7 @@ go_library(
     ],
     importpath = "github.com/bio-routing/bio-rd/net",
     visibility = ["//visibility:public"],
+    deps = ["//net/api:go_default_library"],
 )
 
 go_test(
@@ -17,5 +18,8 @@ go_test(
         "prefix_test.go",
     ],
     embed = [":go_default_library"],
-    deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"],
+    deps = [
+        "//net/api:go_default_library",
+        "//vendor/github.com/stretchr/testify/assert:go_default_library",
+    ],
 )
diff --git a/net/api/BUILD.bazel b/net/api/BUILD.bazel
new file mode 100644
index 0000000000000000000000000000000000000000..720db1c0ca8d6b7e4e68a99dd6a4a23a80a6556b
--- /dev/null
+++ b/net/api/BUILD.bazel
@@ -0,0 +1,22 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
+
+proto_library(
+    name = "api_proto",
+    srcs = ["net.proto"],
+    visibility = ["//visibility:public"],
+)
+
+go_proto_library(
+    name = "api_go_proto",
+    importpath = "github.com/bio-routing/bio-rd/net/api",
+    proto = ":api_proto",
+    visibility = ["//visibility:public"],
+)
+
+go_library(
+    name = "go_default_library",
+    embed = [":api_go_proto"],
+    importpath = "github.com/bio-routing/bio-rd/net/api",
+    visibility = ["//visibility:public"],
+)