diff --git a/ethosu/vela/api.py b/ethosu/vela/api.py
index 06de0d9..0799ab1 100644
--- a/ethosu/vela/api.py
+++ b/ethosu/vela/api.py
@@ -23,6 +23,10 @@
 from typing import Optional
 from typing import Tuple
 
+API_version_major = 1
+API_version_minor = 0
+api_version = f"{API_version_major}.{API_version_minor}"
+
 
 class NpuElementWiseOp(Enum):
     """
@@ -367,3 +371,13 @@
         self.reversed_operands: bool = False
         # Set to a tuple (scale, shift) for explicit rescale, else to None
         self.rescale: Optional[Tuple] = None
+
+
+def npu_get_API_version():
+    """
+    Public facing API to get the API version
+    :return: int, the 16 most significant bits, corresponding to major version
+            the 16 least significant bits, corresponding to minor version
+    """
+    version = (API_version_major << 16) | (API_version_minor & 0xFFFF)
+    return version
diff --git a/ethosu/vela/test/extapi/test_extapi_encode_bias.py b/ethosu/vela/test/extapi/test_extapi_encode_bias.py
index 59b8587..ffdd3b0 100644
--- a/ethosu/vela/test/extapi/test_extapi_encode_bias.py
+++ b/ethosu/vela/test/extapi/test_extapi_encode_bias.py
@@ -37,7 +37,3 @@
         biases_enc = encode_bias(bias, scale, shift)
         assert isinstance(biases_enc, bytearray)
         assert len(biases_enc) == 10
-
-
-if __name__ == "__main__":
-    test_encode_bias()
diff --git a/ethosu/vela/test/extapi/test_extapi_encode_weights.py b/ethosu/vela/test/extapi/test_extapi_encode_weights.py
index 356bbc1..0459cae 100644
--- a/ethosu/vela/test/extapi/test_extapi_encode_weights.py
+++ b/ethosu/vela/test/extapi/test_extapi_encode_weights.py
@@ -66,9 +66,3 @@
         block_traversal=block_traversal,
     )
     assert type(encoded_stream) == bytearray
-
-
-if __name__ == "__main__":
-    # two test candidates for debugging purposes
-    test_encode_weights(Accelerator.Ethos_U55_256, ((3, 3, 25, 16), 8), 1, 1, 8, 0)
-    test_encode_weights(Accelerator.Ethos_U55_256, ((16, 16, 16, 16), 8), 1, 1, 8, 0)
diff --git a/ethosu/vela/test/extapi/test_extapi_get_version.py b/ethosu/vela/test/extapi/test_extapi_get_version.py
new file mode 100644
index 0000000..3a6f25c
--- /dev/null
+++ b/ethosu/vela/test/extapi/test_extapi_get_version.py
@@ -0,0 +1,26 @@
+# Copyright (C) 2020 Arm Limited or its affiliates. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+# Licensed under the Apache License, Version 2.0 (the License); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an AS IS BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# Description:
+# Contains unit tests for get API version for an external consumer
+from ethosu.vela.api import api_version
+from ethosu.vela.api import npu_get_API_version
+
+
+def test_npu_get_API_version():
+    int_version = npu_get_API_version()
+    version_major = int_version >> 16
+    version_minor = 0xFFFF & int_version
+    assert api_version == f"{version_major}.{version_minor}"
diff --git a/ethosu/vela/vela.py b/ethosu/vela/vela.py
index 5df21f5..9f5c78c 100644
--- a/ethosu/vela/vela.py
+++ b/ethosu/vela/vela.py
@@ -31,6 +31,7 @@
 from . import stats_writer
 from . import tflite_writer
 from ._version import __version__
+from .api import api_version
 from .debug_database import DebugDatabase
 from .errors import InputFileError
 from .nn_graph import PassPlacement
@@ -190,6 +191,9 @@
     parser = argparse.ArgumentParser(prog="vela", description="Neural network model compiler for Ethos-U55")
     parser.add_argument("--version", action="version", version=__version__)
     parser.add_argument(
+        "--api-version", action="version", version=api_version, help="Displays the version of the external API."
+    )
+    parser.add_argument(
         "--supported-ops-report",
         action="store_true",
         help="Generate the SUPPORTED_OPS.md file in the current working directory and exits.",
