diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md
new file mode 100644
index 0000000000000000000000000000000000000000..e4885bad644d16dbf6120ec3c0136bf04a43bdcb
--- /dev/null
+++ b/DOCUMENTATION.md
@@ -0,0 +1,50 @@
+# Documentation
+
+## API Endpoints
+
+Authentication happens via [HTTP basic auth](https://tools.ietf.org/html/rfc7617)
+
+### api/backlog/
+
+This endpoint returns full backlog for a single quassel buffer, centered around a certain message.
+
+**Parameters**:
+
+| Name     | Type   | Required | Description                                                       |
+| -------- | ------ | -------- | ----------------------------------------------------------------- |
+| `anchor` | Number | `true`   | Index message for which to retrieve surrounding backlog           |
+| `buffer` | Number | `true`   | Chat/Buffer from which messages should be retrieved               |
+| `before` | Number | `true`   | Number of messages to load chronologically before the anchorpoint |
+| `after`  | Number | `true`   | Number of messages to load chronologically after the anchorpoint  |
+
+### api/search/
+
+This endpoint returns search results across all buffers.
+
+**Parameters**:
+
+| Name      | Type      | Required | Description                                                                    |
+| --------- | --------- | -------- | ------------------------------------------------------------------------------ |
+| `query`   | String    | `true`   | Query to filter messages                                                       |
+| `since`   | Timestamp | `false`  | If set, only show messages received after this timestamp. Format: '1970-01-01' |
+| `before`  | Timestamp | `false`  | If set, only show messages received beforethis timestamp. Format: '1970-01-01' |
+| `buffer`  | String    | `false`  | If set, only show messages if the name of the chat/buffer they are in matches  |
+| `network` | String    | `false`  | If set, only show messages if the name of the network they are in matches      |
+| `sender`  | String    | `false`  | If set, only show messages if the nick!user@host of the sender matches         |
+| `limit`   | Number    | `true`   | Number of messages to return per buffer                                        |
+
+### api/searchbuffer/
+
+This endpoint returns search results for a single quassel buffer.
+
+**Parameters**:
+
+| Name      | Type      | Required | Description                                                                    |
+| --------- | --------- | -------- | ------------------------------------------------------------------------------ |
+| `query`   | String    | `true`   | Query to filter messages                                                       |
+| `since`   | Timestamp | `false`  | If set, only show messages received after this timestamp. Format: '1970-01-01' |
+| `before`  | Timestamp | `false`  | If set, only show messages received beforethis timestamp. Format: '1970-01-01' |
+| `buffer`  | Number    | `true`   | Id of the buffer to search in                                                  |
+| `sender`  | String    | `false`  | If set, only show messages if the nick!user@host of the sender matches         |
+| `offset`  | Number    | `true`   | Number of results to skip (for pagination)                                     |
+| `limit`   | Number    | `true`   | Number of messages to return                                                   |