web: enable inbox && add inbox api docs (#8872)

* web: enable inbox && add inbox api docs
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* docs(help): improve inbox api docs

---------

Co-authored-by: Abdullah Atta <abdullahatta@streetwriters.co>
This commit is contained in:
01zulfi
2026-04-08 09:49:00 +05:00
committed by GitHub
parent f3ef277a52
commit f6d5d3cebc
8 changed files with 439 additions and 37 deletions

View File

@@ -43,6 +43,7 @@ import { useDragHandler } from "../../hooks/use-drag-handler";
import { AddNotebookDialog } from "../../dialogs/add-notebook-dialog";
import { useStore as useSelectionStore } from "../../stores/selection-store";
import { store as appStore } from "../../stores/app-store";
import { store as settingStore } from "../../stores/setting-store";
import { Multiselect } from "../../common/multi-select";
import { strings } from "@notesnook/intl";
import { db } from "../../common/db";
@@ -54,6 +55,7 @@ import { useStore as useNotebookStore } from "../../stores/notebook-store";
import { MoveNotebookDialog } from "../../dialogs/move-notebook-dialog";
import { areFeaturesAvailable } from "@notesnook/common";
import { writeToClipboard } from "../../utils/clipboard";
import { showToast } from "../../utils/toast";
type NotebookProps = {
item: NotebookType;
@@ -303,6 +305,24 @@ export const notebookMenuItems: (
icon: Trash.path,
onClick: () => Multiselect.moveNotebooksToTrash(ids),
multiSelect: true
},
{
type: "button",
key: "copyid",
title: "Copy ID",
icon: Copy.path,
onClick: async () => {
try {
await writeToClipboard({
"text/plain": notebook.id
});
showToast("success", "Notebook ID copied to clipboard");
} catch (e) {
console.error(e);
showToast("error", "Failed to copy Notebook ID");
}
},
isHidden: !settingStore.get().isInboxEnabled
}
];
};

View File

@@ -21,12 +21,14 @@ import ListItem from "../list-item";
import { navigate } from "../../navigation";
import { Flex, Text } from "@theme-ui/components";
import { store as appStore } from "../../stores/app-store";
import { store as settingStore } from "../../stores/setting-store";
import { db } from "../../common/db";
import {
Edit,
Shortcut,
DeleteForver,
Tag as TagIcon,
Copy,
InternalLink
} from "../icons";
import { MenuItem } from "@notesnook/ui";
@@ -42,6 +44,7 @@ import {
withFeatureCheck
} from "../../common";
import { areFeaturesAvailable } from "@notesnook/common";
import { showToast } from "../../utils/toast";
import { writeToClipboard } from "../../utils/clipboard";
type TagProps = { item: TagType; totalNotes: number };
@@ -181,6 +184,24 @@ export const tagMenuItems: (
await Multiselect.deleteTags(ids);
},
multiSelect: true
},
{
type: "button",
key: "copyid",
title: "Copy ID",
icon: Copy.path,
onClick: async () => {
try {
await writeToClipboard({
"text/plain": tag.id
});
showToast("success", "Tag ID copied to clipboard");
} catch (e) {
console.error(e);
showToast("error", "Failed to copy Tag ID");
}
},
isHidden: !settingStore.get().isInboxEnabled
}
];
};

View File

@@ -122,7 +122,7 @@ const sectionGroups: SectionGroup[] = [
key: "inbox",
title: "Inbox",
icon: Inbox,
isHidden: () => true // hidden until complete
isHidden: () => !useUserStore.getState().isLoggedIn
}
]
},

View File

@@ -0,0 +1 @@
# Inbox API

View File

@@ -0,0 +1,227 @@
---
title: Getting Started
description: Learn about Notesnook's Inbox API.
---
# Getting started with the Inbox API
Think of the Inbox API as a private mailbox for your Notesnook account. You give other apps or services a key to drop notes into it, and those notes show up in your Notesnook account the next time you sync — fully encrypted, readable only by you.
You don't need to be a developer to use it. You can use services like Zapier and IFTTT to send data directly to the Inbox API without writing a single line of code. If you do write code, it's a single `HTTP POST` request.
## Use cases
Some common use cases include:
- Forwarding inbound emails to Notesnook as notes via Zapier or IFTTT.
- Capturing web content or RSS feeds automatically.
- Integrating a custom server or internal tool with Notesnook.
- Automating data capture from other apps.
## How to use Inbox API
### 1. Enable Inbox API from settings.
# [Desktop/Web](#/tab/web)
1. Go to Settings > Inbox
2. Turn on the `Enable Inbox API` toggle
3. Choose whether you want to use your own PGP keypair or let Notesnook autogenerate one for you
# [Mobile](#/tab/mobile)
`Settings > Inbox > Enable Inbox API`.
---
> info
>
> The PGP keys are validated (round-trip encrypt/decrypt) before being saved.
### 2. Create your Inbox API Key
A default API key is created automatically when you enable the Inbox API. You can create up to 10 API keys and revoke them individually.
# [Desktop/Web](#/tab/web)
1. Go to Settings > Inbox
2. Click `Create Key` in the `API Keys` section
3. Set a name for the API Key (e.g. Zapier)
4. Set an expiry date
# [Mobile](#/tab/mobile)
`Settings > Inbox > View API Keys > +`.
---
### 3. Send data to the Inbox
**Endpoint**: `POST https://inbox.notesnook.com/`
#### Headers
| Header | Type | Status | Description |
| --------------- | ------ | ------------ | -------------------------- |
| `Content-Type` | string | **Required** | Must be `application/json` |
| `Authorization` | string | **Required** | Your inbox API key |
#### Request Body
| Field | Type | Status | Description |
| -------------- | -------- | ---------------------------------- | ----------------------------------------------------- |
| `title` | string | **Required** | Note title. Minimum 1 character. |
| `type` | string | **Required** | Entity type. Currently only `"note"` is supported. |
| `source` | string | **Required** | Source identifier (e.g., `"zapier"`, `"my-app"`). |
| `version` | number | **Required** | Schema version. Must be `1`. |
| `content` | object | Optional | Note content. |
| `content.type` | string | **Required** (if content provided) | Content format. Currently only `"html"` is supported. |
| `content.data` | string | **Required** (if content provided) | HTML content string. |
| `pinned` | boolean | Optional | Pin the note. Default: `false`. |
| `favorite` | boolean | Optional | Mark as favorite. Default: `false`. |
| `readonly` | boolean | Optional | Make the note read-only. Default: `false`. |
| `archived` | boolean | Optional | Archive the note. Default: `false`. |
| `notebookIds` | string[] | Optional | Array of notebook IDs to assign the note to. |
| `tagIds` | string[] | Optional | Array of tag IDs to apply to the note. |
> info Notebook & Tag IDs
>
> Notebook and Tag IDs can be found by right-clicking on a notebook/tag and selecting `Copy ID`.
#### Limits
| Limit | Value |
| ------------- | ----------------------------- |
| Max body size | 10 MB |
| Rate limit | 60 requests per minute per IP |
#### Responses
| Status | Body | Condition |
| --------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| `200 OK` | `{ "success": true }` | Note successfully encrypted and queued. |
| `400 Bad Request` | `{ "error": "invalid item", "details": [...] }` | Request body failed validation. The `details` array contains field-level errors. |
| `401 Unauthorized` | `{ "error": "unauthorized" }` | `Authorization` header is missing. |
| `403 Forbidden` | `{ "error": "inbox public key not found" }` | Inbox is not enabled or no PGP public key is associated with your account. |
| `429 Too Many Requests` | — | Rate limit exceeded. Retry after 1 minute. |
| `500 Internal Server Error` | `{ "error": "internal server error", "description": "..." }` | Unexpected server error. |
#### Example Request
```bash
curl -X POST https://inbox.notesnook.com/ \
-H "Content-Type: application/json" \
-H "Authorization: <your-inbox-api-key-here>" \
-d '{
"title": "My Important Note",
"type": "note",
"source": "my-app",
"version": 1,
"content": {
"type": "html",
"data": "<h1>Meeting Notes</h1><p>Discussed Q4 roadmap</p>"
},
"favorite": true,
"tagIds": ["67aecf3b9e1398484554bc90"]
}'
```
## Integration examples
### Zapier — Forward Gmail emails to Notesnook
This Zap sends every new email you receive in your Gmail inbox to your Notesnook account as a note.
**1. Create a new Zap and set up the trigger:**
- App: **Gmail**
- Trigger event: **New Email**
- Connect your Gmail account and configure any filters (e.g., a specific label).
**2. Add an action step:**
- App: **Webhooks by Zapier**
- Action event: **POST**
**3. Configure the Webhooks action:**
| Field | Value |
| ------------------------- | ------------------------------ |
| URL | `https://inbox.notesnook.com/` |
| Payload Type | `json` |
| Data — `title` | _(Gmail)_ Subject |
| Data — `type` | `note` |
| Data — `source` | `zapier-gmail` |
| Data — `version` | `1` |
| Data — `content__type` | `html` |
| Data — `content__data` | _(Gmail)_ Body HTML |
| Headers — `Authorization` | `<your-inbox-api-key>` |
> info
>
> In Zapier's nested JSON syntax, use double underscores (`__`) to represent nested keys. `content__type` maps to `content.type` and `content__data` maps to `content.data` in the JSON body.
**4. Test and activate the Zap.** Zapier will POST a note to your Notesnook inbox for every matching email. The note will appear after your next sync.
---
### IFTTT — Forward emails to Notesnook
This Applet sends any email you forward to your IFTTT trigger address into your Notesnook account as a note.
**1. Create a new Applet:**
- **If this:** Choose the **Email** service → trigger: **Send IFTTT an email**
- IFTTT gives you a personal trigger address (e.g., `trigger@applet.ifttt.com`). Forward any email there to fire the Applet.
**2. Then that:** choose **Webhooks****Make a web request**.
**3. Configure the Webhooks action:**
| Field | Value |
| ------------------ | ------------------------------------ |
| URL | `https://inbox.notesnook.com/` |
| Method | `POST` |
| Content Type | `application/json` |
| Additional Headers | `Authorization: <your-inbox-api-key> |
| Body | _(see below)_ |
Use the following JSON body template, substituting IFTTT ingredients:
```json
{
"title": "{{Subject}}",
"type": "note",
"source": "ifttt-email",
"version": 1,
"content": {
"type": "html",
"data": "{{BodyHTML}}"
}
}
```
**4. Save the Applet.** Any email forwarded to your IFTTT trigger address will be relayed to your Notesnook inbox and appear after the next sync.
## Self-hosting the Inbox API server
Check the self hosting guide [here](/inbox-api/self-hosting-inbox-api.md).
## How it works
Inbox uses OpenPGP asymmetric encryption to ensure your data is encrypted before it ever reaches Notesnook's servers and can only be decrypted on your own devices. The flow is:
1. **When you enable Inbox from settings:**
- The client generates an OpenPGP public/private keypair (or you provide your own). The public key is stored on Notesnook's servers. The private key is encrypted with your account's master key before being stored. Notesnook never sees it in plaintext.
- You can now generate API keys for the inbox endpoint. These are short tokens (with a fixed lifetime) you paste into Zapier, IFTTT, or your own code. They tell the inbox server which account to deliver the note to. You can create multiple keys (one per service) and revoke them individually without affecting your account.
2. **When data is posted to the Inbox API:**
- The inbox server fetches your PGP public key from Notesnook's API using the provided API key.
- Your payload is encrypted using your PGP public key (`alg: pgp-aes256`). The result is an armored PGP ciphertext blob.
- The encrypted payload is forwarded to Notesnook's servers and stored in the database. The inbox server never stores your data in plaintext or encrypted. It just acts as a relay.
3. **When your client syncs:**
- Encrypted inbox items are pushed to all your connected clients (web, desktop, and mobile) via sync.
- Your device decrypts the payload using your PGP private key (decrypted from the master key on-device) and adds the note to your database.

View File

@@ -0,0 +1,129 @@
---
title: Self-Hosting Inbox API
description: Learn about self-hosting Notesnook's Inbox API.
---
# Self-Hosting Inbox API
If you prefer not to send data through Notesnook's hosted inbox instance, you have two options:
1. **Run your own inbox server** — a drop-in replacement for `https://inbox.notesnook.com/` that you fully control.
2. **Skip the inbox server entirely** — encrypt the payload locally with `gpg` and post it directly to Notesnook's API.
Both approaches guarantee that unencrypted note content never touches a server you don't trust.
## Option 1: Run your own inbox server
The inbox server is a lightweight proxy: it fetches your PGP public key from Notesnook, encrypts the payload, and forwards it — no data is stored.
The source code and setup instructions are available in the [notesnook-sync-server](https://github.com/streetwriters/notesnook-sync-server/tree/master/Notesnook.Inbox.API) repository. Once running, replace `https://inbox.notesnook.com/` with your own instance URL in any API calls or automation tools.
> info
>
> Even on Notesnook's hosted instance, your payload is encrypted with your PGP public key before it leaves the server — it cannot be read in transit or at rest.
## Option 2: Encrypt locally and post directly
You can bypass the inbox server entirely by doing the encryption yourself with `gpg` and posting the result straight to Notesnook's API. This means nothing except the final encrypted blob ever leaves your machine.
### Step 1 — Fetch your PGP public key
```bash
curl -s https://api.notesnook.com/inbox/public-encryption-key \
-H "Authorization: <your-inbox-api-key>" \
| jq -r '.key' > inbox-public.asc
```
This saves your armored OpenPGP public key to `inbox-public.asc`. You only need to do this once (or after rotating your keys).
### Step 2 — Import the key into gpg
```bash
gpg --import inbox-public.asc
```
Note the key's fingerprint from the output — you'll need it in the next step.
### Step 3 — Prepare the note payload
Create a JSON file with the note data:
```bash
cat > note.json << 'EOF'
{
"title": "My note title",
"type": "note",
"source": "local-gpg",
"version": 1,
"content": {
"type": "html",
"data": "<p>Note body here.</p>"
}
}
EOF
```
### Step 4 — Encrypt the payload
```bash
gpg --encrypt \
--armor \
--recipient "<key-fingerprint-or-email>" \
--output note.asc \
note.json
```
This produces `note.asc`, an armored PGP ciphertext block.
### Step 5 — Post the encrypted payload to Notesnook
The Notesnook API expects a JSON object with three fields: `v` (always `1`), `alg` (always `"pgp-aes256"`), and `cipher` (the full armored ciphertext string).
```bash
CIPHER=$(cat note.asc)
curl -s -X POST https://api.notesnook.com/inbox/items \
-H "Content-Type: application/json" \
-H "Authorization: <your-inbox-api-key>" \
-d "{\"v\": 1, \"alg\": \"pgp-aes256\", \"cipher\": $(jq -Rs . <<< "$CIPHER")}"
```
On success the API returns `200 OK`. The note will appear in Notesnook after your next sync.
### Full one-liner script
```bash
#!/usr/bin/env bash
set -euo pipefail
API_KEY="<your-inbox-api-key>"
FINGERPRINT="<key-fingerprint>"
PAYLOAD=$(cat <<EOF
{
"title": "$1",
"type": "note",
"source": "local-gpg",
"version": 1,
"content": { "type": "html", "data": "$2" }
}
EOF
)
CIPHER=$(echo "$PAYLOAD" | gpg --encrypt --armor --recipient "$FINGERPRINT" 2>/dev/null)
curl -s -X POST https://api.notesnook.com/inbox/items \
-H "Content-Type: application/json" \
-H "Authorization: $API_KEY" \
-d "{\"v\": 1, \"alg\": \"pgp-aes256\", \"cipher\": $(jq -Rs . <<< "$CIPHER")}"
```
Usage:
```bash
./send-to-notesnook.sh "Meeting notes" "<p>Discussed the Q4 roadmap.</p>"
```
> info
>
> After rotating your PGP keys in Notesnook settings, re-fetch the public key (Step 1) and re-import it before encrypting new payloads.

View File

@@ -82,6 +82,10 @@ navigation:
- path: custom-themes/create-a-theme-with-theme-builder.md
- path: custom-themes/install-a-theme-from-file.md
- path: custom-themes/publish-a-theme.md
- path: inbox-api
children:
- path: inbox-api/getting-started.md
- path: inbox-api/self-hosting-inbox-api.md
- path: faqs
children:
- path: faqs/what-are-merge-conflicts.md

View File

@@ -605,7 +605,7 @@ msgstr ""
#: src/strings.ts:1792
msgid "#notesnook"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2665
msgid "1 day"
@@ -713,7 +713,7 @@ msgstr ""
#: src/strings.ts:557
msgid "Add color"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2653
msgid "Add key"
@@ -885,7 +885,7 @@ msgstr ""
#: src/strings.ts:2594
msgid "ANNOUNCEMENT"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2683
msgid "API key copied to clipboard"
@@ -984,7 +984,7 @@ msgstr ""
#: src/strings.ts:1045
msgid "Are you sure you want to remove your profile picture?"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2687
msgid "Are you sure you want to revoke the key \"{name}\"? All inbox actions using this key will stop working immediately."
@@ -1066,7 +1066,7 @@ msgstr ""
#: src/strings.ts:1628
msgid "Auth server"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2681
msgid "Authenticate"
@@ -1355,7 +1355,7 @@ msgstr ""
#: src/strings.ts:518
msgid "Cancel upload"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2677
msgid "Cannot create more than 10 api keys at a time. Please revoke some existing keys before creating new ones."
@@ -1460,7 +1460,7 @@ msgstr ""
#: src/strings.ts:1091
msgid "Changes from other devices won't be updated in the editor in real-time."
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2697
msgid "Changing Inbox PGP keys will delete all your unsynced inbox items."
@@ -1941,7 +1941,7 @@ msgstr ""
#: src/strings.ts:1851
msgid "Create account"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2656
msgid "Create API Key"
@@ -1977,7 +1977,7 @@ msgstr ""
#: src/strings.ts:522
msgid "Create your account"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2672
msgid "Create your first api key to get started."
@@ -1985,7 +1985,7 @@ msgstr ""
#: src/strings.ts:2231
msgid "Created at"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2692
msgid "Created on"
@@ -1994,7 +1994,7 @@ msgstr ""
#. placeholder {0}: type === "full" ? " full" : ""
#: src/strings.ts:1346
msgid "Creating a{0} backup"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2664
msgid "Creating..."
@@ -2276,7 +2276,7 @@ msgstr ""
#: src/strings.ts:2013
msgid "Disable editor margins"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2650
msgid "Disable Inbox API"
@@ -2292,7 +2292,7 @@ msgstr ""
#: src/strings.ts:165
msgid "Disabled"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2652
msgid "Disabling will delete all your unsynced inbox items. Additionally, disabling will revoke all existing API keys, they will no longer work. Are you sure?"
@@ -2461,7 +2461,7 @@ msgstr ""
#: src/strings.ts:926
msgid "Duplicate"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2658
msgid "e.g., Todo integration"
@@ -2567,7 +2567,7 @@ msgstr ""
#: src/strings.ts:2014
msgid "Enable editor margins"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2645
msgid "Enable Inbox API"
@@ -2587,7 +2587,7 @@ msgstr ""
#: src/strings.ts:496
msgid "Enable two-factor authentication to add an extra layer of security to your account."
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2646
msgid "Enable/Disable Inbox API"
@@ -2799,7 +2799,7 @@ msgstr ""
#: src/strings.ts:2074
msgid "Experience the next level of private note taking\""
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2694
msgid "Expired"
@@ -2876,7 +2876,7 @@ msgstr ""
#: src/strings.ts:1938
msgid "Failed to copy note"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2684
msgid "Failed to copy to clipboard"
@@ -2905,7 +2905,7 @@ msgstr ""
#: src/strings.ts:2000
msgid "Failed to install theme."
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2670
msgid "Failed to load API keys. Please try again."
@@ -2925,7 +2925,7 @@ msgstr ""
#: src/strings.ts:804
msgid "Failed to resolve download url"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2689
msgid "Failed to revoke API key"
@@ -3479,7 +3479,7 @@ msgstr ""
#: src/strings.ts:1768
msgid "import guide"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2642
msgid "Inbox API"
@@ -3571,7 +3571,7 @@ msgstr ""
#: src/strings.ts:1484
msgid "Invalid email"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2682
msgid "Invalid password"
@@ -3661,7 +3661,7 @@ msgstr ""
#: src/strings.ts:1361
msgid "Keep your data safe"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2657
msgid "Key name"
@@ -3673,7 +3673,7 @@ msgstr ""
#: src/strings.ts:2232
msgid "Last edited at"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2690
msgid "Last used on"
@@ -3802,7 +3802,7 @@ msgstr ""
#. placeholder {0}: progress ? `(${progress})` : ""
#: src/strings.ts:146
msgid "Loading {0}, please wait..."
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2669
msgid "Loading API keys..."
@@ -4171,7 +4171,7 @@ msgstr ""
#: src/strings.ts:1344
msgid "Never ask again"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2693
msgid "Never expires"
@@ -4183,7 +4183,7 @@ msgstr ""
#: src/strings.ts:672
msgid "Never show again"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2691
msgid "Never used"
@@ -4518,7 +4518,7 @@ msgstr ""
#: src/strings.ts:395
msgid "Offline"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2674
msgid "OK"
@@ -4793,7 +4793,7 @@ msgstr ""
#: src/strings.ts:2009
msgid "Please enable automatic backups to avoid losing important data."
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2660
msgid "Please enter a key name"
@@ -4833,7 +4833,7 @@ msgstr ""
#: src/strings.ts:1864
msgid "Please enter the password to view this version"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2680
msgid "Please enter your account password to view this API key."
@@ -5043,7 +5043,7 @@ msgstr ""
#: src/strings.ts:162
msgid "private analytics and bug reports."
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2699
msgid "Private Key:"
@@ -5095,7 +5095,7 @@ msgstr ""
#: src/strings.ts:2183
msgid "Proxy"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2698
msgid "Public Key:"
@@ -5590,7 +5590,7 @@ msgstr ""
#: src/strings.ts:687
msgid "Resubscribe to Pro"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2671
msgid "Retry"
@@ -5610,7 +5610,7 @@ msgstr ""
#: src/strings.ts:1181
msgid "Revoke biometric unlocking"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2685
msgid "Revoke Inbox API Key - {name}"
@@ -6157,7 +6157,7 @@ msgstr ""
#: src/strings.ts:1789
msgid "Share Notesnook with friends!"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2644
msgid "Share things to Notesbook from anywhere using the Inbox API"
@@ -7265,7 +7265,7 @@ msgstr ""
#: src/strings.ts:570
msgid "View all linked notebooks"
msgstr ""
msgstr "<<<<<<< HEAD"
#: src/strings.ts:2649
msgid "View and edit your inbox public/private key pair"