Skip to content
proton-cli

Raw API

proton api sends an authenticated request to any Proton endpoint, using the session you already have. It is the escape hatch for anything the commands don’t cover.

Every flag is in the proton api reference.

Terminal window
proton api GET /drive/volumes
proton api GET /mail/v4/messages --query Page=0 --query PageSize=10
proton api POST /calendar/v1 --body '{"Name":"Work","Color":"#7272a7","Display":1,"AddressID":"..."}'
proton api DELETE /mail/v4/labels/LABEL_ID
proton api GET /calendar/v1 --output json | jq -r '.Calendars[].ID'

Responses come back as the API returned them, in Proton’s PascalCase, and encrypted fields stay encrypted - this command does no key handling. For decrypted content, use the commands for that app.

openapi.yaml documents roughly 740 endpoints - paths, methods, request and response schemas, and query parameters. It is generated from Proton’s own web client source, and a weekly job keeps it in step with upstream.