io.b3os/pushbullet 1.0.0 · notifications, messaging, mobile · MIT

Push notifications to your own phones and browsers through Pushbullet with your Pushbullet access token: send a note or a link to all devices or one device, and list devices to find their identifiers.

Every call's result carries upstream_status and timing: validate_ms, inject_ms, render_ms, upstream_ms, map_ms and total_ms. upstream is the service's time; the others are B3OS's own (call actions). The snippets below show no timing values, because a fixture records none.

Connection

pushbullet, type api_key: Pushbullet access token.

An access token from pushbullet.com/#settings/account, sent as the Access-Token header to api.pushbullet.com only.

How to get one: docs.pushbullet.com.

The credential is sent only to api.pushbullet.com.

Store the credential once as a vault connection for this pack and key, then name its id in a call's connections. Leave the key out and B3OS uses the project's newest connection for the pack and key without a subject (connections).

Hosts it reaches: api.pushbullet.com.

Actions

ActionEffectMCP toolTitle
send-pushirreversiblepushbullet__send-pushSend push
list-devicesreadpushbullet__list-devicesList devices

send-push

Send push. Send a note, or a link with a URL, to every device on the account or to one device (deviceIden from list-devices). Returns the push identifier.

Ref io.b3os/pushbullet/send-push@1.0.0 · effect irreversible · connection pushbullet · MCP tool pushbullet__send-push

bash
curl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Idempotency-Key: 7c1e2f6a-1d43-4a8e-b2a5-3f0c9d5e8b11" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/pushbullet/send-push@1", "input": { "type": "link", "title": "Deploy finished", "body": "v2.4.1 is live", "url": "https://status.acme.example/deploys/241" }, "connections": {"pushbullet": "conn_01m5t6cbgdjs1ketgcqwa2sne8"} }'

Output, labeled fixture: Send push (documented response shape, example values). From the bundle's fixtures/send-push.json, not a live call.

json
{"iden": "ujpah72o0sjAoRtnM0jc", "active": true}

When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:

pack_error.codeService statusRetryableMessage
invalid_request400nobuilt from the service's response
not_found404noNo such Pushbullet device.
connection_unauthorized401noPushbullet rejected the access token; check the connection.
forbidden403noPushbullet refused the request for this account.
rate_limited429yesPushbullet rate limit reached for this account; retry later.

list-devices

List devices. Active devices on the Pushbullet account with identifier, nickname, type (android, ios, chrome, firefox, ...) and whether they can receive pushes.

Ref io.b3os/pushbullet/list-devices@1.0.0 · effect read · connection pushbullet · MCP tool pushbullet__list-devices

bash
curl -s https://beta-api.b3os.org/v1/actions/call \ -H "Authorization: Bearer $B3OS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ref": "io.b3os/pushbullet/list-devices@1", "input": {}, "connections": {"pushbullet": "conn_01m5t6cbgdjs1ketgcqwa2sne8"} }'

Output, labeled fixture: List devices (documented response shape, example values). From the bundle's fixtures/list-devices.json, not a live call.

json
{ "devices": [ { "iden": "ujpah72o0sjAoRtnM0jc", "nickname": "Pixel 9", "type": "android", "manufacturer": "Google", "model": "Pixel 9", "pushable": true }, { "iden": "ujpah72o0sjAsoeMFETtJs", "nickname": "Chrome", "type": "chrome", "manufacturer": null, "model": null, "pushable": true } ]}

When the service answers with an error, the call fails with upstream_error and pack_error.code is one of:

pack_error.codeService statusRetryableMessage
invalid_request400nobuilt from the service's response
not_found404noNo such Pushbullet device.
connection_unauthorized401noPushbullet rejected the access token; check the connection.
forbidden403noPushbullet refused the request for this account.
rate_limited429yesPushbullet rate limit reached for this account; retry later.
Ask a question... ⌘I