---
title: Raindrop
description: Save the current page to a Raindrop.io collection with title, excerpt, tags and cover — with duplicate-skip.
---

Save the page you are on to [Raindrop.io](https://raindrop.io), with a title, a short description, tags and a cover, and skip pages you already saved.

Pick a saved connection in the **Credential** field, or create one from there. It signs in with a Bearer Token.

## What it does

The Raindrop node works on three kinds of things (**Resource**):

* **Bookmark**: save a new bookmark (**Create**), change one (**Update**), or find bookmarks (**Search**).
* **Collection**: list your top-level collections, to find a **Collection ID**.
* **Tag**: list the tags you use, in the whole account or in one collection.

When **Title** or **Cover image URL** is empty, Raindrop fills them in from the page itself.

With **Skip if already saved** on, **Bookmark → Create** first checks whether the **Link** is already bookmarked anywhere in your account. If it is, nothing is saved and the output says so, with the ids of the existing bookmarks. Without it, every run saves a new bookmark, even for the same address.

**Search** returns 25 bookmarks unless you set **Limit** (50 at most), from all collections unless you set **Collection ID**.

## When to use it

* Save the current page in one click, with tags chosen for you by an AI node.
* Store an AI-written summary of an article as the bookmark's excerpt.
* Bookmark every new item of an RSS feed into a "To read" collection.
* Find bookmarks matching a word to reuse their links.

## Inputs and settings

Call the Raindrop API yourself with the HTTP Request node, and pick the same connection in its **Credential** field.

* **Link** is usually an expression, such as `{{ $input.url }}` after [Get Page Metadata](/nodes/extension/getpagemetadata/).
* **Tags** takes one tag per entry, or a list from an earlier node, for example the label from [Text Classifier](/nodes/builtin/ai/aiagents/textclassifiernode/).
* **Collection ID** is a number. Run **Collection → List** once and copy the `_id` of the collection. When empty, new bookmarks go to Unsorted.
* **Query** accepts Raindrop's search syntax, for example `#recipes` for a tag or `type:article`.
* **Bookmark ID** comes from the `item._id` of a **Create** result or from a **Search** result.

## Outputs

* **Bookmark → Create** returns the saved bookmark under `item` (with its `_id`, `title`, `link` and `tags`) and `created: true`. When **Skip if already saved** found the page, it returns `created: false`, `duplicate: true` and `ids`, the existing bookmark ids.
* **Bookmark → Update** returns the updated bookmark under `item`.
* **Bookmark → Search** returns the matches under `items`, plus `count`, the total number of matches.
* **Collection → List** and **Tag → List** return their entries under `items`. For tags, each entry's `_id` is the tag name and `count` its number of bookmarks.

Use an [IF](/nodes/builtin/flow/if/) node on `{{ $input.duplicate }}` to treat pages you already had differently.

## Dependencies and credentials

* **Credential** (connection, Bearer Token): required. See [Connect Raindrop](/app/connections/raindrop/).

Use a Raindrop test token, saved as a Bearer Token credential:

1. On raindrop.io, open **Settings → Integrations** and, under **For Developers**, create a new app (any name).
2. Open the app and click **Create test token**, then copy it.
3. Paste it as the token of a new credential. See [Create a credential](/app/connections/create/).

The token gives full access to your Raindrop account, so keep it private.

## Example workflow

1. A [Context Menu](/nodes/builtin/trigger/contextmenu/) trigger adds "Save to Raindrop" to the right-click menu.
2. [Get Page Metadata](/nodes/extension/getpagemetadata/) reads the page's `url` and `title`.
3. Raindrop, **Bookmark → Create**, **Link** `{{ $input.url }}`, **Tags** `read-later`, **Collection ID** `12345678`, **Skip if already saved** on.
4. [Browser Notification](/nodes/extension/browsernotification/) shows `Saved` or `Already saved`, chosen with an [IF](/nodes/builtin/flow/if/) on `{{ $input.duplicate }}`.

## Common issues

* **"Missing credential".** No credential is selected. Pick or create one in **Credential**.
* **"Raindrop API Error: 401 Unauthorized".** The token is wrong or was deleted. Create a new test token in your Raindrop app settings and update the credential.
* **The same page is saved twice.** **Skip if already saved** is off. Turn it on.
* **The bookmark landed in Unsorted.** **Collection ID** is empty or not a number. Copy the `_id` from **Collection → List**.
* **The run is blocked in the web app.** Raindrop runs through the browser extension. Install the extension and allow Raindrop for this workflow when asked, or run the workflow from the extension. See [Running extension-only integrations in the web app](/app/troubleshooting/extension-only-integrations-in-the-web-app/).

## Related nodes

* [Get Page Metadata](/nodes/extension/getpagemetadata/): the page's address, title and description to save.
* [Text Classifier](/nodes/builtin/ai/aiagents/textclassifiernode/): pick tags automatically.
* [Readwise / Reader](/nodes/builtin/integration/readwise/): save to Readwise Reader instead.
* [Summarization](/nodes/builtin/ai/aiagents/summarizationchainnode/): write a short excerpt for the bookmark.