Bitwarden REST API for automated secrets management on self-hosted server

It would be great to have a json rest api for the self-hosted version of Bitwarden. The use case would be secrets management in a networked environment.


The applications are already powered by a restful JSON API, though it is not documented.

1 Like


Looking at, it has complete CRUD and login actions in typescript language.

But I have an existing python app that need to do query with BW REST API server.

Can you create similar doc like R1 ?


Is the REST API is planned to be documented? Please provide at least endpoints and parameters because it is unusable without that…

@kspearrin any update on API documentation? I feel like there is fear that people will make their own clients with features that are paid. Is that true?

Just an FYI, this repo has client using python and rust languages.

To be faire, I don’t want to go through the source code of an existing cli application just to find out how the API works. I thought that because this was open source, that it’d be easy to adapt to my needs. Alas, it’s not.

1 Like


Not sure why there are only 4 votes on this request. To me , a formal API doc is important also.

1 Like

Another vote from me!
I was hoping to do some reporting using the new history data (since its not included in the built in reports) but will be deferring the project until I have more time given the lack of documentation

Consumers/implementations of the API I’ve found so far:

Rubywarden has an API overview included in I was going to do some experiments with curl but going by that description I’ll need something a little more advanced to experiment with.

I have only skimmed the API code but it seems manageable as a research source.

There is also a plugin for the popular python keyring package:

1 Like

Now that we have api documented at
IMHO, the Server API was not well designed. B.W. is designed to keep password record(BW call it Item).
Why there is no entry point for Item C.R.U.D. operations ?

I just want to be able to Create,Update,Retrieve and Delete Items ! From a REST client.

Hey @tjyang - I know restful access is a big topic for access to vault data, but as you know, currently access to the encrypted data requires a client to encrypt/decrypt the payload so that the server never has access to any decrypted data, either in flight or at rest.

You could use python to access the collection / user information in a restful manner, and also use the same python app to make bash commands with the Bitwarden CLI, and pipe the JSON back to the python application for CRUD operations.

I have the same need so I have tested some project that had reversed the bitwarden browser plugin to get routes.
I have succeeded to create an entry with folderID and OrganisationID with /api/ciphers/create and POST data.

However, Bitwarden needs to have some data encrypted with specific process details here:
rubywarden/ at master · jcs/rubywarden
and here:

I tested some ruby function but cant fix my problem for now. The way I encrypt my data is wrong but don’t known why. I created a topic if someone knows. Look for /api/ciphers in search

Only the browser plugin is working to Post to the bitwarden API and didnt succeed in reverse the code

Hi @bdoublet91 - interesting stuff :slight_smile:

You may want to start a new thread in the User-to-user support topic to see if anyone may be able to help with your project.


Already did it:
Here [BITWARDEN][API] /api/ciphers/create - Browser
Let’s see if someone can help me :wink:
I think the answer is on the bitwarden browser plugin that do well the encryption of the datas

Hey guys, wanted to introduce my Project to you:

It is a Node.js Express Wrapper arround the Bitwarden CLI working with docker containers to create sessions for every user. It is really beta and not documented now but maybe it is a point of interest. :slight_smile:
1 Like

Sounds like this could be helpful! Thanks @Yonggan, and welcome!

@tgreer Thank you :slight_smile:
I will write some docs for it soon :wink:
Pull Requests welcome :wink: