Datatypes used by the Pushbullet APIs

LTS Haskell 11.14:
Stackage Nightly 2018-06-20:
Latest on Hackage:

See all snapshots pushbullet-types appears in

MIT licensed by Jacob Thomas Errington
Maintained by pushbullet-hs@mail.jerrington.me

Module documentation for


Revision history for pushbullet-types -- 2018-02-11

  • Derive ToHttpApiData for PushId. -- 2018-02-08

  • Drop upper bounds on dependencies. -- 2017-08-01

  • Make body field of link pushes optional. Many channel pushes do not include a body, but only the URL and the title.
  • Improve Push parsing. Push sender and receiver information are factored out into separate datatypes, and parsed as a whole. Either you have a full sender (either a client or a channel) or you don't have any of its fields. Same applies to receivers, except that only clients can be receivers, and don't have names. This fixes a bug where pushes sent by channels could not be parsed, since such pushes omit certain fields, such as sender_iden and sender_email. -- 2017-07-29

  • PushEphemeral now supports the targets field, which allows to more faithfully parse clipboard synchronization messages in the realtime event stream.
  • Missing Eq and Show instances for Ephemeral are now derived.
  • Missing device-related datatypes and constructors are now exported.
  • Values commonly used by PushBullet for the DeviceIcon type now have a bunch of constants exported for them.
  • Aeson version upper bound is now higher; this version of pushbullet-types will now build with Stackage resolver lts-9.0.
  • Misc code cleanup. -- 2017-04-30

  • Some fields in PushData are now made optional, since the objects received from Pushbullet may have them missing.
  • A minimum value for PushbulletTime is added. This is just zero seconds since the POSIX epoch.
  • Ephemerals are reworked. Now Ephemeral actually has one constructor per ephemeral type, and the previous constructors of Ephemeral are moved into PushEphemeral. Ephemeral now has a constructor for tickles and nops. Only push-type tickles have a dedicated constructor in TickleType. -- 2017-02-20

Define the following core types:

  • Push -- messages used internally in Pushbullet.
  • Ephemeral -- messages sent directly into the live event stream. These have a multitude of uses, e.g. sending SMS via a phone or seeing whether notifications have occurred on a device.
  • Device -- representation of a device.
  • User -- representation of a user.
  • Permanant -- this is an undocumented type in the Pushbullet API. Notably, SMS threads and messages are permanents.

Some of these types come in two flavors: New and Existing. This is signalled by a type index coming from a datakind.

comments powered byDisqus