Skip to content

Getting Started

Registering OAuth clients

You can register OAuth clients with Tapkey using our self-service registration page on Tapkey Integrator Portal.

OAuth clients are registered under an owner account in Tapkey's eco-system. After registration, an owner account will be created when registering your first lock.

Don't have a lock?

You can still create an owner account without registering a lock. Go to the Tapkey Integrator Portal on and make sure you are logged in with the desired user. Afterwards expand the drop down menu in the navigation drawer saying "Locking systems". This will reveal a button stating "Create own locking system". Use it to create a new owner account and you are good to go.

List Locks

After registering a new OAuth client, listing a user's locks can be easily done using the Tapkey Access Management API. After obtaining an access token via OAuth, a user's owner accounts can be retrieved using the GET /owners operation.

var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken);

var ownerAccountsTask = client.GetStringAsync("");
var json = await ownerAccountsTask;
var ownerAccounts = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(json);

After that, ownerAccount contains a list of owner accounts for the current user. If present, an owner account can be chosen from that list in order to query bound locks.

// For demo purposes, just take the first Owner Account…
var ownerAccountId = ownerAccounts.First()["id"];
// … and query for bound locks
var boundLocksTask = client.GetStringAsync(
var json = await boundLocksTask;

var boundLocks = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(json);

At this point, boundLocks contains a list of bound locks for the selected owner account. Information about the respective locks is delivered as defined in the GET /owners/{ownerAccount}/boundlocks operation's response description below.

// Print a list of all bound locks
foreach (var boundLock in boundLocks)
    var lockInfo = new StringBuilder();
    lockInfo.AppendLine($"Lock ID: {boundLock["id"]}");
    lockInfo.AppendLine($"Title: {boundLock["title"]}");
    lockInfo.AppendLine($"Description: {boundLock["description"]}");
    lockInfo.AppendLine($"Lock is active: {boundLock["active"]}");
    lockInfo.AppendLine($"Binding date: {boundLock["bindDate"]}");

Runnable Example Available

A complete, runnable console application that prints a list of locks can be found in the Tapkey Web API .NET samples repository on GitHub.