raindropio / app

Home Page:https://app.raindrop.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Feature request] Expose an endpoint to fetch all bookmarks in a structured format (eg. CSV)

thenbe opened this issue · comments

Hi,

I've built a tool which allows users to quickly search through all of their bookmarks. It works by pulling the user's backup CSV. However, there is no documented endpoint for a user to download all of their bookmarks - only a GUI. Would you consider documenting this endpoint?

The reason this is needed is because, without this endpoint, folks have no efficient way to retrieve their bookmarks. For example, browser-bookmarks.nvim added initial support for Raindrop. They've had to resort to the /v1/raindrops endpoint - looping over it for every(!) page of a user's bookmarks. Not only does this put unnecessary strain on both the client and the server, but users with a lot of bookmarks are not able to even use this as they will eventually get rate limited. If they do not get rate limited, they will have to wait a long amount of time as tens/hundreds of requests resolve in the background. There should be a better way for downstream tools and users to work with their own data.

Finally, while I've browsed https://better.raindrop.io only for a short time, I've come across several tickets that could also be closed if users had a method to programmatically access their "backup" CSV file. For example:

  1. This could be a fairly straightforward cron job that users can create and share with each other.

  2. This has been a planned ticket that 160 people have been waiting on for 6 years. Some of them seem very desperate (poor Hurd). On linux/mac, this can be shared as github gist:

#!/usr/bin/env bash
xsv slice -l 1 -s $(awk '{print NR}' bookmarks.csv | shuf -n 1) bookmarks.csv | xsv select url | tail -n -1 | xargs xdg-open

I'm sure a windows user can share a powershell snippet that does the same on windows.

My point is that without a documented endpoint to download all bookmarks in structured format, users are left helpless, having to wait for years for a feature request because you (understandably) are not able to fulfill all of them in a prompt manner. To me, it seems like this would (a) make Raindrop easier to extend and (b) take some of the backlog load of you so you can focus on performance/core experience. I'd be interested to hear your thoughts on the matter.

Relevant issues:

Relevant tickets: