# Methods

Every JSON-RPC method, grouped by namespace. Call over `POST /rpc`, or use the per-method alias `POST /rpc/{method}`.

## account

| Method | Auth | Summary |
|---|---|---|
| [`account.setEmail`](/docs/methods/account.setEmail) | bearer | Change the caller's email address |
| [`account.setPassword`](/docs/methods/account.setPassword) | bearer | Change the caller's password |

## album

| Method | Auth | Summary |
|---|---|---|
| [`album.create`](/docs/methods/album.create) | bearer | Create a folder |
| [`album.crop.delete`](/docs/methods/album.crop.delete) | bearer | Delete a folder crop rule (re-renders the folder) |
| [`album.crop.list`](/docs/methods/album.crop.list) | bearer | List a folder's crop rules |
| [`album.crop.set`](/docs/methods/album.crop.set) | bearer | Add or update a folder crop rule (re-renders the folder) |
| [`album.delete`](/docs/methods/album.delete) | bearer | Delete a folder |
| [`album.list`](/docs/methods/album.list) | bearer / PAT | List the caller's folders (default first) |
| [`album.move`](/docs/methods/album.move) | bearer / PAT | Move a photo into a folder |
| [`album.reorder`](/docs/methods/album.reorder) | bearer | Set the manual order of photos within a folder |
| [`album.update`](/docs/methods/album.update) | bearer | Rename/re-describe a folder |

## auth

| Method | Auth | Summary |
|---|---|---|
| [`auth.login`](/docs/methods/auth.login) | public | Log in with email and password |
| [`auth.logoutAll`](/docs/methods/auth.logoutAll) | bearer | Revoke all of the caller's sessions |
| [`auth.refresh`](/docs/methods/auth.refresh) | public | Exchange a refresh token for a new token pair |

## image

| Method | Auth | Summary |
|---|---|---|
| [`image.archiveToken`](/docs/methods/image.archiveToken) | bearer / PAT | Mint a short-lived link to download the full archive |
| [`image.crop.add`](/docs/methods/image.crop.add) | bearer / PAT | Add a custom crop (max 5 per image) |
| [`image.crop.delete`](/docs/methods/image.crop.delete) | bearer / PAT | Delete a custom crop by code |
| [`image.delete`](/docs/methods/image.delete) | bearer / PAT | Delete an image |
| [`image.exif.setVisibility`](/docs/methods/image.exif.setVisibility) | bearer / PAT | Toggle which EXIF groups are exposed publicly |
| [`image.get`](/docs/methods/image.get) | bearer / PAT | Get one of the caller's images with full detail |
| [`image.getPublic`](/docs/methods/image.getPublic) | public | Get a ready image's public view (no authentication) |
| [`image.list`](/docs/methods/image.list) | bearer / PAT | List the caller's images (cursor-paginated) |
| [`image.regenerate`](/docs/methods/image.regenerate) | bearer / PAT | Re-render all sizes for an image |
| [`image.update`](/docs/methods/image.update) | bearer / PAT | Update an image's title and/or description |

## rpc

| Method | Auth | Summary |
|---|---|---|
| [`rpc.discover`](/docs/methods/rpc.discover) | public | Return the OpenRPC document describing this API |

## token

| Method | Auth | Summary |
|---|---|---|
| [`token.create`](/docs/methods/token.create) | bearer | Create a personal access token |
| [`token.list`](/docs/methods/token.list) | bearer | List the caller's personal access tokens |
| [`token.revoke`](/docs/methods/token.revoke) | bearer | Revoke a personal access token |

