You might have an easier time converting to a different format which Proton Pass can import, rather than the Proton Pass export format. eg. Convert your file to the Bitwarden JSON format (Bitwarden provide examples and documentation on their format) and then import that file into Proton Pass instead. (IIRC they support Bitwarden's format)
Proton
Empowering you to choose a better internet where privacy is the default. Protect yourself online with Proton Mail, Proton VPN, Proton Calendar, Proton Drive. Proton Pass and SimpleLogin.
Proton Mail is the world's largest secure email provider. Swiss, end-to-end encrypted, private, and free.
Proton VPN is the world’s only open-source, publicly audited, unlimited and free VPN. Swiss-based, no-ads, and no-logs.
Proton Calendar is the world's first end-to-end encrypted calendar that allows you to keep your life private.
Proton Drive is a free end-to-end encrypted cloud storage that allows you to securely backup and share your files. It's open source, publicly audited, and Swiss-based.
Proton Pass Proton Pass is a free and open-source password manager which brings a higher level of security with rigorous end-to-end encryption of all data (including usernames, URLs, notes, and more) and email alias support.
SimpleLogin lets you send and receive emails anonymously via easily-generated unique email aliases.
Is there a reason you can't use the generic CSV format?
Regardless, I have tested and it doesn't look like those IDs are used during import. Import works perfectly fine with a Zipfile containing an unencrypted JSON file, as formatted by ProtonPass export, with all those base64 strings (itemId
, itemUuid
, shareId
) removed or blanked out:
JSON example
{
"encrypted": false,
"userId": "",
"vaults": {
"": {
"name": "test",
"description": "",
"display": {
"color": 0,
"icon": 0
},
"items": [
{
"data": {
"metadata": {
"name": "test-login",
"note": ""
},
"extraFields": [],
"type": "login",
"content": {
"itemEmail": "",
"password": "password",
"urls": [],
"totpUri": "",
"passkeys": [],
"itemUsername": "username"
}
},
"state": 1,
"aliasEmail": null,
"contentFormatVersion": 6,
"createTime": 1733128994,
"modifyTime": 1733128994,
"pinned": false
}
]
}
},
"version": "1.25.0"
}
When re-exporting those imported values, they have new IDs even when you include the old IDs from the original export, so they're obviously not being used. My guess is they're just some sort of random UUID.