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.
proton api GET /drive/volumesproton api GET /mail/v4/messages --query Page=0 --query PageSize=10proton api POST /calendar/v1 --body '{"Name":"Work","Color":"#7272a7","Display":1,"AddressID":"..."}'proton api DELETE /mail/v4/labels/LABEL_IDproton 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.
Finding an endpoint
Section titled “Finding an endpoint”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.