All articles

So you want to play with the passbolt API? Let’s talk about JWTs.

5 min. read

Antony Bartolomucci

Antony Bartolomucci

5 November, 2025

Passbolt & JWT

wizardry
{
  "version": "1.0.0",
  "domain": "{{API_BASE_URL}}",
  "verify_token": "e5bbc6da-22eb-43c4-82b3-137f47577766",
  "verify_token_expiry": 1741771173
}
  • A static API version: 1.0.0 
    • If you don’t exactly use 1.0.0, this will fail because there is no other API version as of right now. 
  • The domain of your passbolt instance
  • An unique random token (UUID)
  • An expiry timestamp (usually 10 minutes in the future)
  • The server’s public key which you can fetch from GET /auth/verify.json in body.keydata
  • Your private GPG key 
    • This has been automatically downloaded during your user registration but can be also re-downloaded in Profile > Manage Account > Keys Inspector > Private
gpg --armor \
    --recipient "[email protected]" \
    --local-user "[email protected]" \
    --sign \
    --encrypt \
    --output challenge.asc \
    challenge.json
it can prove you’re who you say you are
{
  "user_id": "{{USER_ID}}",
  "challenge": "-----BEGIN PGP MESSAGE-----"
}
  1. Decrypt the message using its private key
  2. Verify your signature using your public key
  3. If everything checks out, it will respond with its own encrypted message containing your JWT tokens
gpg --decrypt server-response.asc > decrypted.json
{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "refresh_token": "b3ffec6f-9a02-4825-913e-3a82e6974b23"
}
curl --request GET \
  --url {{API_BASE_URL}}/resources.json \
  --header "Authorization: Bearer {{ACCESS_TOKEN}}"
just refresh it
curl --request POST \
  --url {{API_BASE_URL}}/auth/jwt/refresh.json \
  --header "Content-Type: application/json" \
  --data '{
    "user_id": "{{USER_ID}}",
    "refresh_token": "{{REFRESH_TOKEN}}"
  }'

Continue reading

Encrypted resource metadata is now available on Passbolt Cloud.

5 min. read

Encrypted resource metadata is now available on Passbolt Cloud.

Passbolt Cloud now encrypts resource metadata and has new capabilities like custom icon & colors, multi-URI, custom fields, standalone notes, and more.

Passbolt team

Passbolt team

5 November, 2025

Passbolt 5.6: standalone notes, shared-metadata key rotation, and resizable sidebars

4 min. read

Passbolt 5.6: standalone notes, shared-metadata key rotation, and resizable sidebars

Expand encrypted metadata features with note support, rotation capability, and interface updates for large or complex workspaces.

Passbolt team

Passbolt team

8 October, 2025

Flag of European UnionMade in Europe. Privacy by default.