diff --git a/docs/_static/access_profile.png b/docs/_static/access_profile.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca4db1c0a96d54d06f74d161edf1aae1193d1c54
Binary files /dev/null and b/docs/_static/access_profile.png differ
diff --git a/docs/_static/profile.png b/docs/_static/profile.png
new file mode 100644
index 0000000000000000000000000000000000000000..44d86fc1f716fa43b920d403062885eaa21fbf7e
Binary files /dev/null and b/docs/_static/profile.png differ
diff --git a/docs/_static/revoke_token.png b/docs/_static/revoke_token.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5ffec2b6874091d6a25a6aeb1cad52e74fcf093
Binary files /dev/null and b/docs/_static/revoke_token.png differ
diff --git a/docs/_static/token_copied.png b/docs/_static/token_copied.png
new file mode 100644
index 0000000000000000000000000000000000000000..71c428103bf3ef3aae78e7dc4f70088e9ba87e67
Binary files /dev/null and b/docs/_static/token_copied.png differ
diff --git a/docs/_static/token_revoked.png b/docs/_static/token_revoked.png
new file mode 100644
index 0000000000000000000000000000000000000000..aee71fb302be45910d3c80c974fff3da3f1328c0
Binary files /dev/null and b/docs/_static/token_revoked.png differ
diff --git a/docs/api.rst b/docs/api.rst
index 9923ffc445e628a982d18cbc20c819f80dae2785..41faf5a72e5bbb3bdfd47eb8ac573fb9009ad231 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -1,5 +1,31 @@
-API documentation
-=================
+CSEntry API
+===========
+
+Basic usage
+-----------
+
+The root of the API is at `/api/v1`.
+
+Example of a valid API request using curl::
+
+    curl https://csentry.esss.lu.se/api/v1/inventory/items
+
+
+Authentication
+--------------
+
+To access CSEntry API, a personal access token is required.
+
+A temporary token can be retrieved by sending a POST to `/api/v1/user/login` including the username
+and password. It will return a token valid for 12 hours.
+
+A token that never expires can be generated from the user profile page.
+See :ref:`token-generation`.
+
+The token should be passed in the header as follow::
+
+    curl --header 'Authorization: Bearer <token>' https://csentry.esss.lu.se/api/v1/inventory/items
+
 
 Summary
 -------
diff --git a/docs/conf.py b/docs/conf.py
index 54ad156553b6910b751806a57854cb64025f20c3..7b0775f4d2e8053e205dbe480bce6d9b9bceb26e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -110,6 +110,8 @@ html_static_path = ['_static']
 # refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
 html_sidebars = {
     '**': [
+        'about.html',
+        'navigation.html',
         'relations.html',  # needs 'show_related': True theme option to display
         'searchbox.html',
     ]
diff --git a/docs/index.rst b/docs/index.rst
index 60ffce0f6cb1a90248bd4e33a0c9018e223376cb..4042d2f4dbde399113c7a434e81f0b0a97c87307 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -6,17 +6,10 @@
 Welcome to CSEntry's documentation!
 ===================================
 
-.. toctree::
-   :maxdepth: 2
-   :caption: Contents:
-
-
-API
----
-
 .. toctree::
    :maxdepth: 2
 
+   usage
    api
 
 
diff --git a/docs/usage.rst b/docs/usage.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4ed172020258f3be8c24d25cf4ce6405341cf9cf
--- /dev/null
+++ b/docs/usage.rst
@@ -0,0 +1,41 @@
+.. _usage:
+
+Usage
+=====
+
+Overview
+--------
+
+Control System Entry is a web application that facilitates the tracking of physical items
+and network devices.
+
+
+.. _token-generation:
+
+Generate a personal access token
+--------------------------------
+
+1. Go to your profile page by clicking on your name in the upper right corner.
+
+   .. image:: _static/access_profile.png
+
+2. Enter a description for the token and click on **Generate token**.
+
+   .. image:: _static/profile.png
+
+3. Click on the icon on the left of the generated token to copy it to the clipboard.
+   Save it to a safe place. You won't be able to see the token again! Only the JWT id is saved to the database.
+
+   .. image:: _static/token_copied.png
+
+
+Revoke a personal access token
+-------------------------------
+
+1. Click on the trash icon on the left of the JWT id on your profile page. A confirmation window will open.
+
+   .. image:: _static/revoke_token.png
+
+2. Click **OK** to revoke the token. Or **Cancel**.
+
+   .. image:: _static/token_revoked.png