<!-- BusyBot node reference — https://busybot.net/tools/raindrop/ -->

> Node: Raindrop.io (`raindrop`) · Action (binary) · v1
> Category: Productivity · Credentials: Raindrop.io OAuth2 (`raindropOAuth2`)
> Updated: 2026-08-16

# Raindrop.io

> Manage bookmarks, collections, tags, and users on Raindrop.io

## Overview

The Raindrop.io tool manages bookmarks (raindrops), collections, tags, and users via the Raindrop.io REST API. It supports CRUD operations on bookmarks and collections, tag management, and user retrieval. The Collection Update operation supports uploading a cover image from binary data via a multipart form upload to a dedicated cover endpoint. Uses OAuth2 Bearer authentication.

**Category:** Productivity  
**Tool Name:** `raindrop`  
**Version:** 1

**Appearance:** Icon: `lucide-Bookmark` | Color: `#5C8FFF`

## Node Type

**Action (Binary)** — handles file/binary data operations

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Raindrop.io OAuth2** credentials.
See the [Credentials Guide](https://busybot.net/credentials/raindrop-oauth2/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Bookmark | `bookmark` |
| Collection | `collection` |
| Tag | `tag` |
| User | `user` |

### Operations

**Bookmark** (`bookmark`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a bookmark |
| Delete | `delete` | Delete a bookmark |
| Get | `get` | Get a bookmark |
| Get Many | `getAll` | Get many bookmarks |
| Update | `update` | Update a bookmark |

**Collection** (`collection`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a collection |
| Delete | `delete` | Delete a collection |
| Get | `get` | Get a collection |
| Get Many | `getAll` | Get many collections |
| Update | `update` | Update a collection |

**Tag** (`tag`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Delete | `delete` | Delete a tag |
| Get Many | `getAll` | Get many tags |

**User** (`user`)

| Operation | Value | Description |
|-----------|-------|-------------|
| Get | `get` | Get a user |

### Parameters

String, number and collection fields are resolved per input item, so they accept `{{ $json.field }}` expressions.

#### Bookmark: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID (`collectionId`) | `string` | No | — | ID of the collection to add the bookmark to. Use GET /collections to find IDs. |
| Link | `string` | Yes | — | URL to bookmark |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional fields to set on the new bookmark. |
| — Important | `boolean` | No | `false` | Whether this bookmark is marked as favorite |
| — Order | `number` | No | `0` | Sort order for the bookmark. 0 = first position. |
| — Parse Metadata | `boolean` | No | `false` | Whether Raindrop should load cover, description and HTML for the URL |
| — Tags | `string` | No | — | Bookmark tags. Multiple tags can be set separated by comma. |
| — Title | `string` | No | — | Title of the bookmark |

#### Bookmark: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Bookmark ID (`bookmarkId`) | `string` | Yes | — | The ID of the bookmark to delete |

#### Bookmark: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Bookmark ID (`bookmarkId`) | `string` | Yes | — | The ID of the bookmark to retrieve |

#### Bookmark: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID (`collectionId`) | `string` | Yes | — | The ID of the collection to retrieve bookmarks from. Use GET /collections to find IDs. |
| Return All (`returnAll`) | `boolean` | No | `false` | Whether to return all results or only up to a given limit |
| Limit (`limit`) | `number` | No | `25` | Max number of results to return. Accepts 1–50. _(shown when Return All is `false`)_ |

#### Bookmark: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Bookmark ID (`bookmarkId`) | `string` | Yes | — | The ID of the bookmark to update |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Fields to change on the bookmark — set at least one, otherwise the item fails. |
| — Collection ID | `string` | No | — | Move bookmark to this collection ID |
| — Important | `boolean` | No | `false` | Whether this bookmark is marked as favorite |
| — Order | `number` | No | `0` | Sort order for the bookmark |
| — Parse Metadata | `boolean` | No | `false` | Whether Raindrop should reload cover, description and HTML for the URL |
| — Tags | `string` | No | — | Bookmark tags. Multiple tags can be set separated by comma. |
| — Title | `string` | No | — | Title of the bookmark |

#### Collection: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Title | `string` | Yes | — | Title of the collection to create |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional fields to set on the new collection. |
| — Cover | `string` | No | — | URL of an image to use as cover for the collection |
| — Public | `boolean` | No | `false` | Whether the collection will be accessible without authentication |
| — Parent ID | `string` | No | — | ID of this collection's parent collection, if it is a child collection |
| — Sort Order | `number` | No | `1` | Descending sort order of this collection among siblings |
| — View | `options` | No | `list` | View style of this collection |
| | | | | Options: `list`, `simple`, `grid`, `Masonry` |

#### Collection: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID (`collectionId`) | `string` | Yes | — | The ID of the collection to delete |

#### Collection: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID (`collectionId`) | `string` | Yes | — | The ID of the collection to retrieve |

#### Collection: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Type | `options` | Yes | `parent` | Whether to retrieve root-level (parent) or nested (children) collections |
| | | | | Options: `parent` (root-level collections), `children` (nested collections) |
| Return All (`returnAll`) | `boolean` | No | `false` | Whether to return all results or only up to a given limit |
| Limit (`limit`) | `number` | No | `25` | Max number of results to return. Accepts 1–50. _(shown when Return All is `false`)_ |

#### Collection: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID (`collectionId`) | `string` | Yes | — | The ID of the collection to update |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Fields to change on the collection — set at least one, otherwise the item fails. |
| — Cover (Binary Property) | `string` | No | `data` | Name of the binary property containing the image data to upload as a cover |
| — Public | `boolean` | No | `false` | Whether the collection will be accessible without authentication |
| — Parent ID | `string` | No | — | ID of this collection's parent collection |
| — Sort Order | `number` | No | `1` | Descending sort order of this collection among siblings |
| — Title | `string` | No | — | Title of the collection |
| — View | `options` | No | `list` | View style of this collection |
| | | | | Options: `list`, `simple`, `grid`, `Masonry` |

#### Tag: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Tags | `string` | Yes | — | One or more tags to delete. Enter comma-separated values to delete multiple tags. |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional restriction on where tags are deleted from. |
| — Collection ID | `string` | No | — | Restrict tag deletion to this collection. Use GET /collections to find IDs. |

#### Tag: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All (`returnAll`) | `boolean` | No | `false` | Whether to return all results or only up to a given limit |
| Limit (`limit`) | `number` | No | `25` | Max number of results to return. Accepts 1–50. _(shown when Return All is `false`)_ |
| Filters | `collection` | No | `{}` | Optional filters for the tag listing. |
| — Collection ID | `string` | No | — | Filter tags by this collection ID |

#### User: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Self | `boolean` | Yes | `true` | Whether to return details on the logged-in user |
| User ID | `string` | Yes | — | The ID of the user to retrieve _(shown when Self is `false`)_ |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Raindrop Account | `credential` | No | — | Connect your Raindrop account via OAuth2. |
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

Most operations produce exactly one output item per input item. The Raindrop.io response is merged into the item JSON at the **top level**, so the incoming fields stay on the item unless a response field of the same name overwrites them, and any binary data on the input item is forwarded unchanged.

**The Get Many operations fan out.** `Bookmark: Get Many`, `Collection: Get Many` and `Tag: Get Many` return an array and emit **one output item per record**, each record merged over a copy of the input item's JSON. When the array is empty, that input item produces no output items at all — guard downstream nodes that assume one item in, one item out. With Return All off, the node stops at Limit; with it on, bookmark listings are paged until the collection is exhausted.

What lands on the item, per operation:

| Operation | Merged into the item JSON |
|-----------|---------------------------|
| `Bookmark: Create` / `Bookmark: Get` / `Bookmark: Update` | The bookmark record returned by Raindrop.io |
| `Bookmark: Delete` | The delete response body |
| `Bookmark: Get Many` | One bookmark record per output item |
| `Collection: Create` / `Collection: Get` | The collection record |
| `Collection: Update` | The updated collection record. When Cover (Binary Property) names a binary property, the image is uploaded after the metadata update and the cover response is what lands on the item. |
| `Collection: Delete` | The delete response body |
| `Collection: Get Many` | One collection record per output item |
| `Tag: Delete` | The delete response body |
| `Tag: Get Many` | One tag record per output item |
| `User: Get` | The user record, for either the logged-in user or the requested User ID |

Reference the merged response downstream by expression, e.g. `{{ $json.title }}` — run the node once and inspect the output to confirm the exact field names Raindrop.io returns for the resource you are working with.

## Usage Examples

- Create a bookmark in a collection
- Get all bookmarks from a collection
- Update a collection with a cover image
- Delete tags from Raindrop.io
- Get user profile information

## Example Configuration

Create a bookmark:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "bookmark",
    "operation": "create",
    "collectionId": "12345",
    "link": "https://example.com",
    "additionalFields": {
      "title": "Example Website",
      "tags": "web,example,demo",
      "important": false,
      "pleaseParse": true,
      "order": 0
    }
  }
}
```

Get all bookmarks from a collection:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "bookmark",
    "operation": "getAll",
    "collectionId": "12345",
    "returnAll": false,
    "limit": 50
  }
}
```

Update a bookmark:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "bookmark",
    "operation": "update",
    "bookmarkId": "67890",
    "updateFields": {
      "title": "Updated Title",
      "tags": "updated,bookmark",
      "important": true,
      "collectionId": "54321"
    }
  }
}
```

Delete a bookmark:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "bookmark",
    "operation": "delete",
    "bookmarkId": "67890"
  }
}
```

Create a collection:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "collection",
    "operation": "create",
    "title": "My New Collection",
    "additionalFields": {
      "public": false,
      "parentId": "0",
      "sort": 1,
      "view": "list",
      "cover": "https://example.com/cover.jpg"
    }
  }
}
```

Get all parent collections:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "collection",
    "operation": "getAll",
    "type": "parent",
    "returnAll": true
  }
}
```

Update a collection:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "collection",
    "operation": "update",
    "collectionId": "12345",
    "updateFields": {
      "title": "Updated Collection Name",
      "public": true,
      "view": "grid",
      "sort": 2
    }
  }
}
```

Get all tags in a collection:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "tag",
    "operation": "getAll",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "collectionId": "12345"
    }
  }
}
```

Delete tags:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "tag",
    "operation": "delete",
    "tags": "obsolete,old,unused",
    "additionalFields": {
      "collectionId": "12345"
    }
  }
}
```

Get the current user:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "user",
    "operation": "get",
    "self": true
  }
}
```

Get a specific user:

```json
{
  "type": "raindrop",
  "parameters": {
    "resource": "user",
    "operation": "get",
    "self": false,
    "userId": "user123"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage Raindrop.io bookmarks, collections, tags, and users with binary cover image upload support for collections.

### Critical Notes
- Collection IDs are required for most bookmark operations - use collection getAll first
- The `additionalFields` and `updateFields` parameters use flat object structure (no arrays or _default keys)
- Pagination is controlled by `returnAll` and `limit` parameters
- Tag operations support comma-separated values for batch processing
- User operations distinguish between self (current user) and specific user retrieval