diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 442a825db25a213b699d40a100c81ff2e70d1825..10982b2b4f21846a525c03570ab9632e1ef271e2 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -1484,6 +1484,9 @@ function getCertificateForPassport(passportUUID, internal) {
 const connection = Penpal.connectToParent({
   // Methods child is exposing to parent
   methods: {
+    initializeApiHost: (apiUrl) => {
+      window.API_HOST = apiUrl.charAt(apiUrl.length - 1) === "/" ? apiUrl : apiUrl + "/";
+    },
     createIdentity(pinCode) {
       return new Penpal.Promise(result => {
         createPassportCertificate(makeid()).then(function(keys){
@@ -1507,7 +1510,7 @@ const connection = Penpal.connectToParent({
             "code" : "200",
             "status" : "Identity created"
           })
-        });
+        }).catch(console.error);
       })
     },
     listIdentities() {
@@ -2158,11 +2161,6 @@ const connection = Penpal.connectToParent({
 connection.promise.then(async parent => {
   var identities = localStorage.getItem("identities")
 
-  let apiUrl = await parent.getApiUrl();
-  apiUrl = apiUrl.charAt(apiUrl.length - 1) === "/" ? apiUrl : apiUrl + "/";
-
-  window.API_HOST = apiUrl;
-
   console.log("Library loaded at: " + new Date().toISOString())
 
   if (identities === "" || identities === null) {
diff --git a/javascript/src/viamapi-client.js b/javascript/src/viamapi-client.js
index 69d1eb3b9481ba07014bca7a4132ae6e7301ba34..bb40ca79c9872883b0b39e357c6f6db34c5e205f 100644
--- a/javascript/src/viamapi-client.js
+++ b/javascript/src/viamapi-client.js
@@ -8,7 +8,7 @@ const Penpal = require('penpal').default;
  * @param apiUrl -  API URL used to access API endpoints
  * @returns {*}
  */
-function setupViamAPI(divId, methods, iframeUrl, apiUrl) {
+async function setupViamAPI(divId, methods, iframeUrl, apiUrl) {
 	if (!apiUrl) {
 		return Promise.reject('API Host not specified.')
 	}
@@ -19,13 +19,13 @@ function setupViamAPI(divId, methods, iframeUrl, apiUrl) {
 	  // Container to which the iframe should be appended.
 	  appendTo: document.getElementById(divId),
 	  // Methods parent is exposing to child
-	  methods: {
-	  	...methods,
-	  	getApiUrl: () => apiUrl
-      }
+	  methods
 	});
 
-	return connection.promise
+	const child = await connection.promise;
+	await child.initializeApiHost(apiUrl);
+
+	return child;
 }
 
 window.setupViamAPI = setupViamAPI;