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

> Node: Pushbullet (`pushbullet`) · Action (binary) · v1
> Category: Communication · Credentials: Pushbullet API (`pushbulletApi`)
> Updated: 2026-08-16

# Pushbullet

> Send and manage push notifications (notes, links, files) via Pushbullet

## Overview

The Pushbullet tool manages push notifications via the Pushbullet REST API (https://api.pushbullet.com/v2). Supports creating pushes of type note, link, or file (with 3-step binary upload: upload-request -> file upload -> push creation). Also supports listing (with cursor-based pagination), updating (dismiss), and deleting pushes. Push targets can be default (all devices), a specific device ID, an email address, or a channel tag. File pushes read binary data from upstream items and upload via multipart form-data. Authentication uses an Access-Token header.

**Category:** Communication  
**Tool Name:** `pushbullet`  
**Version:** 1

**Appearance:** Icon: `lucide-Bell` | Color: `#4AB367`

## Node Type

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

## Input / Output

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

## Credentials

This tool requires **Pushbullet API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/pushbullet-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Push | `push` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Push: Create | `create` | Create a push notification (note, link, or file) |
| Push: Delete | `delete` | Delete a push by ID |
| Push: Get Many | `getAll` | Retrieve multiple pushes with optional filtering |
| Push: Update | `update` | Update a push (dismiss) |

### Parameters

#### Push: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Type | `options` | Yes | `note` | Type of push to create. |
| | | | | Options: `file`, `link`, `note` |
| Title | `string` | Yes | — | Title of the push. Supports expressions. _(shown when Type is `note`, `link`)_ |
| Body | `string` | Yes | — | Body text of the push. Supports expressions. _(shown when Type is `note`, `link`, `file`)_ |
| URL | `string` | Yes | — | URL to include with the push. Supports expressions. _(shown when Type is `link`)_ |
| Binary Property | `string` | Yes | `data` | Name of the input binary property containing the file to upload. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when Type is `file`)_ |
| Target | `options` | Yes | `default` | Define the delivery target for the push. |
| | | | | Options: `channel_tag` (send to all subscribers of a channel), `default` (broadcast to all of the user's devices), `device_iden` (send to a specific device), `email` (send to an email address) |
| Value | `string` | Yes | — | Target value: device ID (iden), email address, or channel tag depending on the selected target. Supports expressions. _(shown when Target is `device_iden`, `email`, `channel_tag`)_ |

#### Push: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Push ID (`pushId`) | `string` | Yes | — | The ID (iden) of the push to delete. Supports expressions. |

#### Push: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results using cursor-based pagination. |
| Limit | `number` | No | `100` | Maximum number of results to return. _(shown when Return All is `false`)_ |
| Filters | `collection` | No | `{}` | Optional filters to apply when retrieving pushes. |
| — Active | `boolean` | No | `false` | Whether to exclude deleted pushes from results. |
| — Modified After | `string` | No | — | Only return pushes modified after this timestamp. Accepts ISO 8601 datetime or Unix timestamp. |

#### Push: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Push ID (`updatePushId`) | `string` | Yes | — | The ID (iden) of the push to update. Supports expressions. |
| Dismissed | `boolean` | Yes | `false` | Whether to mark the push as dismissed. Hides any notifications for the push if possible. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

The Pushbullet API response is merged onto the item JSON at the top level rather than nested under a wrapper, so the incoming fields pass through unchanged and the response fields sit beside them — reference them directly, for example `{{ $json.iden }}`. Binary data on the input item is forwarded to every output item it produces.

`create`, `delete` and `update` produce **one output item per input item**. `getAll` **fans out**: it emits one output item per push returned, so a single input item can produce many output items, and the node's output count no longer matches its input count. Plan the rest of the branch around that — an item that follows a `getAll` is one push, not one request.

| Operation | What lands on the output item |
|-----------|-------------------------------|
| `create` | The push object the API returns for the new push, merged onto the item JSON. |
| `delete` | `success` set to `true`. The API returns no body for a deletion, so this flag is the only confirmation. |
| `getAll` | One item per returned push, each carrying that push object merged onto the item JSON. When the call returns no pushes at all, a single item is still emitted, carrying `pushes` set to an empty array — check for that property before treating a downstream item as a real push. |
| `update` | The updated push object the API returns. |

With Return All on, pagination is followed to the end and every page's pushes are emitted; with it off, one page of up to Limit pushes is emitted.

Failures are per item. In **errorPort** mode a failed item leaves through the `Error` port carrying an `_error` object while the successful items continue out of `Output`.

## Usage Examples

- Send a note push to all devices
- Push a link to a specific device by ID
- Upload and send a file push with binary data
- Get all pushes with cursor-based pagination
- Delete a push by ID
- Dismiss a push notification

## Example Configuration

Broadcast a note to every device on the account:

```json
{
  "type": "pushbullet",
  "parameters": {
    "resource": "push",
    "operation": "create",
    "type": "note",
    "title": "Reminder",
    "body": "Don't forget to submit the report",
    "target": "default"
  }
}
```

Push a link to one email address, taking the URL from the incoming item:

```json
{
  "type": "pushbullet",
  "parameters": {
    "resource": "push",
    "operation": "create",
    "type": "link",
    "title": "{{ $json.title }}",
    "body": "Worth a read",
    "url": "{{ $json.link }}",
    "target": "email",
    "value": "user@example.com"
  }
}
```

Upload a file held in an upstream node's binary property and push it to one device:

```json
{
  "type": "pushbullet",
  "parameters": {
    "resource": "push",
    "operation": "create",
    "type": "file",
    "body": "Here's the document you requested",
    "binaryPropertyName": "attachment",
    "target": "device_iden",
    "value": "ujpah72o0sjAoRtnM0jc"
  }
}
```

Retrieve one page of recent, undeleted pushes:

```json
{
  "type": "pushbullet",
  "parameters": {
    "resource": "push",
    "operation": "getAll",
    "returnAll": false,
    "limit": 20,
    "filters": {
      "active": true,
      "modified_after": "2026-01-01T00:00:00Z"
    }
  }
}
```

Page through the full history instead, one output item per push:

```json
{
  "type": "pushbullet",
  "parameters": {
    "resource": "push",
    "operation": "getAll",
    "returnAll": true
  }
}
```

Dismiss a push so it stops showing on the recipient's devices:

```json
{
  "type": "pushbullet",
  "parameters": {
    "resource": "push",
    "operation": "update",
    "updatePushId": "{{ $json.iden }}",
    "dismissed": true
  }
}
```

Delete a push outright:

```json
{
  "type": "pushbullet",
  "parameters": {
    "resource": "push",
    "operation": "delete",
    "pushId": "ujpah72o0sjAoRtnM0jc"
  }
}
```

### 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

Send push notifications (notes, links, files) and manage pushes across devices via the Pushbullet API.

### Notes

- **Two different fields are both labelled "Push ID".** Delete reads `pushId`, Update reads `updatePushId`. The panel shows one at a time, but a hand-written config or a copied JSON block has to use the name that matches the operation.
- **Body stays required for every push type,** including file pushes: its gate lists all three types, so it never hides and the editor always asks for it.
- **A file push needs its binary property to exist.** Unlike an optional attachment, the named property is mandatory — an item that reaches a `file` push without it fails rather than sending a push with no file.
- **Dismissed defaults to `false`.** Running Update without changing it re-opens the push instead of dismissing it, so set it to `true` for the usual "mark as read" behaviour.
- **Expressions are resolved per item** in every field, so one node can push a different title, target or push ID for each item that reaches it.