View all releases

API Release 0.9.5


  • New video file standardization, on file uploads and oembeds
  • Revert user images to defaults (DELETE /users/me/cover and DELETE /users/me/avatar)
  • Invites now include a link to a QR code image of the invite, in addition to the copyable link and E-mail options
  • When authorizing an app, users can directly uncheck requested permissions they do not want to allow
  • The website defaults to light-mode, and uses CSS preferences for showing dark-mode
  • Channel Search endpoint as RSS feed


  • io.pnut.core.crosspost-type raw items expanded with options for external user representation
  • embeddable_url in oEmbeds now can use template URIs ({object_id})
  • max_options on polls can now be the total number of options, instead of one less than the total
  • File name can be inferred from the uploaded file's name, if not included in the POST
  • When a user no longer has any access tokens for an app, the app's scopes will be revoked, and the user will have to re-authorize scopes the next time a token is created
  • Sending a message to User or App streams (websockets) will return a "pong" response
  • User and App streams require a "ping" every 60 seconds, instead of every 50 seconds


  • Personal data export files in zip file are now encoded properly for UTF-8
  •{post_id}/{image_placement_order} and{file_id} oembed links now temporarily redirect to post threads on Beta
  • Poll notifications could fire multiple times for a single participant
  • Saving Invite notes redirected to a 404
  • Upgrading to developer account failed
  • Some complex channel searches would fail

Released 2020-01-01