Help with mSecure import

I’m trying to import a CSV from mSecure. My first try ended up with every item put in a Folder. What a mess. I tried going to each item, typing in the name and assigning a different folder, and gave up after 5 changes.

So I purged the Vault and tried modifying the CSV file. I opened the mSecure CSV file in Excel and tried inserting columns that better match the import fields that Bitwarden is expecting. That made an even worse mess.

Can someone give me explicit instructions on how to modify the CSV file from mSecure to make importing into Bitwarden the way it should be?


@davidfuller Welcome to the forum!

Sure, I can try to help. Can you let me know what the column headings (contents of first row) of your mSecure .csv export are, with an explanation of any headings that are not self-evident?


The mSecure CSV file doesn’t come with any headers. So I’ve trying to put in my own headers from directions from (Condition a Bitwarden .csv or .json | Bitwarden Help Center).


I have 293 separate records from mSecure.

I then took these terms and put them in as headers in the CSV file, insert columns as needed where I can see the fields for obvious things like “login_username.” then I import the file into Bitwarden.

I got the first one right: “folder.” but after that it becomes a jumbled mess. So I purge and start over.

I have to admit that many of the old records from mSecure are old/out dated, and should be deleted anyway. And now that I’ve written that statement, I think that’s what I’ll do. Cull the old/useless records out of the CSV file before I try the import into Bitwarden.

Can you think of an easier way?

OK, if the exported .csv does not have any headers, can you tell what kind of data is contained in each column, by inspecting the contents? For example, you will hopefully be able to recognize a column that contains passwords, another column that contains usernames, etc. If so, please respond with a numbered list (in which each number corresponds to the column number) of column descriptions. For example, something like the following:

1. (description of contents of first column)
2. (description of contents of second column)
3. (description of contents of third column)
4. etc.

Just to prevent making mess even messier, let’s start over with the original export.

You can certainly delete rows that contain obsolete information, as long as you do it in a way that the entire row is fully removed (i.e., don’t leave behind an “empty” row).

But you will still have to get the columns properly conditioned, which is what I will try to help you with. That is why I need a description of what type of data is in each column of the mSecure export file.


OK, I researched this a little, and it seems that the mSecure export format is highly irregular, which will make this effort more challenging. Thus, I am modifying my comment accordingly.

First of all, which version of mSecure are you using?

Second, when importing the original (unmodified) .csv file into Bitwarden, what process did you follow? Did you use the browser extension, Desktop app, or Web Vault? Did you select a folder in the “Folder” dropdown menu? Which option did you select for “File Format”?

Bitwarden is supposed to be able to import .csv files that have been exported from mSecure, so we should check that you did this correctly.

If Bitwarden’s mSecure importer is not working as expected, then an alternative option may be to use the “MRC Converter Suite” to convert the mSecure file into some intermediate format that could be imported into Bitwarden.

Thanks again for taking the time. I really appreciate it. Here’s answers to your questions in your revised reply:

I’m using v6, Essential.

I used the import process on the Mac Desktop app.
For my second try, I created a Folder in BW called “Logins” and selected that as the destination.

I selected the mSecure CSV as the File Format.

I think it’s important I clear out as much drek as possible from the CSV file before I try importing. So I’m going to slog through that process for the next few days and see what I end up with.

One thing I’d like to know is how BW defines these header terms:

Some are obvious, but I’d like to know what these are, and if I can leave that column blank when I build the CSV file.

Thanks again.

Never mind about the column names. I realized I could google that info and find out what I need to know.

And, what was the result? What about the imported data did you not consider to be a “mess”? If the only problem is that every item ended up in a single folder, then that occurred because you selected your “Logins” folder during import (you can leave the folder selection blank if you don’t want your imports to be placed into a folder).

One problem with trying to manually import your mSecure data (instead of using Bitwarden’s importer or the “MRC Converter Suite”) is that the mSecure .csv columns contain data that is formatted in a very unconventional way. For example, if you have an account with the username “davidfuller”, then it would be exported by mSecure in a form like “Username|7|davidfuller”, etc. The mSecure importers/converters are supposed to take care of that and automatically strip the “Username|7|” part. On the other hand, if you manually import a .csv file that you have “conditioned” to have the correct headers, then you would also have to manually strip all of the extraneous prefix strings (like “Username|7|” ) from every row and column of the .csv spreadsheet. This is why I struck out my original response and provided the information about the “MRC Converter Suite”, etc.

If you wish to proceed with a manual modification of your .csv export, then be advised that Bitwarden will only import Login records and Secure Note records (not Credit Cards or any custom item types). Do you have any Secure Notes in your export? Do you have any custom items?

To “condition” a .csv file to meet the requirements for importing using the “Bitwarden (csv)” format, the columns do not have do be in any specific order, but you should include all of the column headers listed below, and it is extremely important that all column headers are in lowercase. In addition, please note that column contents can be blank (empty), unless designated as a “Required Value” in the table below (i.e., the type and name columns).

Column Description
folder Leave blank for no folder structure, or use the “Group” name to organize items into folders according to their “Group” name.
favorite Leave blank if you don’t have any “favorite” items, or set to 1 for a favorite item and set to 0 for everything else.
type Required Value. Must be set to either login or note (all lowercase), depending on whether the item should be imported as a Login item or a Secure Note.
name Required Value. The main name of the record, by which it will be identified when browsing or searching the vault.
notes Free-form text (unformatted) containing optional annotations for Login records, or the actual note text for a Secure Note record.
fields This is for specifying the names and values of optional custom fields; this information must be entered in a very specific format to be properly imported. Thus, I recommend leaving this blank, or requesting additional guidance if you have important custom fields that must be imported.
reprompt This the per-record setting for an optional feature called “Master Password Reprompt”. Leave blank if you don’t plan to use this feature right away, or set to 1 to require reprompt and set to 0 to not require reprompt. I recommend leaving this one blank, unless you want to use the reprompt feature for every item in your vault.
login_uri The URL (website address) of the webpage where the login form for this account is found. Ideally, this should be the full URL, but at a minimum, it should include the base domain (e.g., Leave blank if the record is a Secure Note.
login_username Username for logging in to account. Leave blank if the record is a Secure Note.
login_password Password for logging in to account. Leave blank if the record is a Secure Note.
login_totp TOTP key for logging in to account (typically in the form of a 16-character alphanumeric string like WQIQ25BRKZYCJVYP). Leave blank if you don’t have TOTP set up for this account, or if you already have the TOTP key stored in an Authenticator App, or if the record is a Secure Note.

I’m still not successful. I open the CSV file in Excel, and added columns with the headers. Then went through all items, moving cells as needed, and deleting rows I didn’t need any more. I made sure to follow the column requirements you sent. (thanks!)

I imported to BW using these options:
Import Destination: My Vault
Folder: None selected
File format: mSecure (csv)
Chose the file.

Items were imported, but names were lost, and all fields were put into a notes fields. Like it ignored the column headers.

Another thing: I noticed in mSecure that I have the option of export with and without mSecure’s special characters. See screen shot below.

I tried both ways, but neither worked. that was last night, and I wasn’t taking any notes. I’ll try again tonight, (or maybe tomorrow night), take notes, and report back.

First of all, I assume that you meant that you inserted a row (not a column) at the top of the CSV file, and inserted the header values in this row (so that cell A1=folder, cell B1=favorite`, etc.).

Second, if you went through the trouble of adding the Bitwraden headers, then the File Format for your import should be “Bitwarden (csv)” — not “_mSecure (csv)”.

Third, since there is an option to “omit mSecure’s special characters”, you should definitely use that option when exporting the .csv file from mSecure. Otherwise, you will need to manually strip the extraneous characters from the .csv file before doing the import into Bitwarden.

And I didn’t get an answer to my questions about what exactly happened when you tried the “mSecure (csv)” import format without making prior modifications to the .csv:


Sorry for the long delay. My pesky day job required meetings all last week.

I tried several ways to import the data. There seemed to be too much inconsistency in the way the data was exported, due I’m sure to the way I haphazardly entered it originally in mSecure. So I finally gave up on the export/import options and moved it all in manually. I only had to move about 175 items, and I set up a process that made it go fairly fast.

Thank you for taking the time to help me.

1 Like

There is an app to convert mSecure export to Bitwarden import format

1 Like