How Harbor works

Basic points

These are important points that you need to understand from how Harbor works.

  • Harbor towers use bluetooth instead of the internet. Harbor towers piggyback off of the user’s device internet signal in order to communicate with harbor servers.

  • Harbor uses a mobile SDK (iPhone, Android, React Native). To establish a session with the Towers and use the tokens to open the lockers.

  • The rest of the interactions happen between your backend and Harbor. Such as: get locations availability, make a reservation, get a token to open a locker, etc.


  • A Location is a physical address that contains Towers.

  • A Tower is a container that has many Lockers.

  • A Locker is the compartment where you can store items.

Location/Tower/Locker example



Remember the red board that you are assigned is a Tower and will be referred to as such throughout this documentation

Flow for a delivery

Here is a bird’s eye view of the delivery process.

  • “User” represents The user’s device before any kind of connection to the tower.

  • “Server” represents your backend service.

  • “AuthenticatedUser” Represents the user’s device after the session has started and the user has authenticated.

  • The “Tower” is a single tower of the Harbor Public Network.

flowchart TD User--User starts tower session--> Tower--Tower uses user's internet to connect to server--> Server--Server sends drop off token--> AuthenticatedUser--Send drop off token to Tower and Locker door opens with token--> Tower
Your backend is responsible for sending the SDK authorization token and the open locker tokens to the mobile App.
The mobile SDK will use the authorization token to start a session with the Tower, and the open locker token to open the locker in the tower.

Default Locker Sizes + Layout

locker layout

Now that you have an idea of how this all works, let’s get your credentials and a Tower board to integrate! Get credentials and Hardware