Sync API / Way to access sync'd data

Hi! I’m looking to port over a twitter bot I wrote for my Roam Graph and am having trouble finding a way to access my sync’d Obsidian data. (I’m paying for the sync plan)

Is there a way to access this data via an API endpoint? From a little bit of reverse engineering, it seems that Obsidian is using websockets to do the actual syncing.

What I’m trying to achieve is a way to get access to “blocks” with specific tags, so I can tweet them out randomly. (I know blocks are not a thing in Obsidian)


+1 agreed this would be a value add to sync service

1 Like

This sounds like a good idea; and I hope my following concerns are not interpreted as critical. I just think it would be good to get some assurances for the majority of people using Obsidian who wouldn’t use this functionality that it wouldn’t make their vaults, whether synced or not, potentially less secure.

Just figured I would put it out there. I am sure everything is fine, but because I don’t understand it completely, I am not completely sure, if you know what I mean.


It is a very good statement and would need to be very much part of the design.

I think the goal here would be the API is accessible through the Obsidian Sync service. So you have already opted in to your vault being stored in the cloud.

Second, since users can define their own encryption key, it would mean there are limitations about what could be read or written.


Exactly, even if there was an API endpoint to download a tar of the data, I would imagine, you would need the decryption key to go from blob data to markdown files.

I would also like this. I’m currently working with a workaround that has large drawbacks.

I have one computer that I use obsidian on most commonly, I wrote a script that gets executed every now and then to download new emails and copy them into my obsidian folder tree. In essence, using the filesystem as an API.

I believe this would be easier if you synced your obsidian vault with a service like Dropbox because you can then use their API, although this gets into really cumbersome territory quickly.

It works fine, but it’s a big drawback that you’d either have to replicate this script on all of your devices or have one device on (or a server) that runs this intermediary all the time.

1 Like