# peinture API > Image storage & processing. Metadata and control is JSON-RPC 2.0 over `POST /rpc`; raw bytes (upload, archive, image serving) are plain HTTP. Every method is documented below and in the machine-readable OpenRPC/OpenAPI documents. ## Guides - [Overview](https://peinture.gumeniuk.com/docs.md): The peinture image API: JSON-RPC 2.0 over POST /rpc, plus plain-HTTP upload and serving. - [Authentication](https://peinture.gumeniuk.com/docs/authentication.md): How to authenticate: JWT access and refresh tokens, and personal access tokens. - [Rate limits](https://peinture.gumeniuk.com/docs/rate-limits.md): Login throttling, batch limits, and request body size caps. - [Pagination](https://peinture.gumeniuk.com/docs/pagination.md): Cursor-based pagination for list endpoints. - [Serving modes](https://peinture.gumeniuk.com/docs/serving-modes.md): How renders are served: direct bucket URLs vs. proxying through the app. - [Uploads & binary routes](https://peinture.gumeniuk.com/docs/uploads.md): The plain-HTTP upload, archive, and render-serve endpoints. ## Reference - [Methods](https://peinture.gumeniuk.com/docs/methods.md): Index of every JSON-RPC method, grouped by namespace. - [Errors](https://peinture.gumeniuk.com/docs/errors.md): The error code catalog: application codes and JSON-RPC codes, with causes and remedies. - [Glossary](https://peinture.gumeniuk.com/docs/glossary.md): Definitions of the terms used across the API. - [Changelog](https://peinture.gumeniuk.com/docs/changelog.md): Notable changes to the public API surface. ## Methods - [account.setEmail](https://peinture.gumeniuk.com/docs/methods/account.setEmail.md): Change the caller's email address - [account.setPassword](https://peinture.gumeniuk.com/docs/methods/account.setPassword.md): Change the caller's password - [album.create](https://peinture.gumeniuk.com/docs/methods/album.create.md): Create a folder - [album.crop.delete](https://peinture.gumeniuk.com/docs/methods/album.crop.delete.md): Delete a folder crop rule (re-renders the folder) - [album.crop.list](https://peinture.gumeniuk.com/docs/methods/album.crop.list.md): List a folder's crop rules - [album.crop.set](https://peinture.gumeniuk.com/docs/methods/album.crop.set.md): Add or update a folder crop rule (re-renders the folder) - [album.delete](https://peinture.gumeniuk.com/docs/methods/album.delete.md): Delete a folder - [album.list](https://peinture.gumeniuk.com/docs/methods/album.list.md): List the caller's folders (default first) - [album.move](https://peinture.gumeniuk.com/docs/methods/album.move.md): Move a photo into a folder - [album.reorder](https://peinture.gumeniuk.com/docs/methods/album.reorder.md): Set the manual order of photos within a folder - [album.update](https://peinture.gumeniuk.com/docs/methods/album.update.md): Rename/re-describe a folder - [auth.login](https://peinture.gumeniuk.com/docs/methods/auth.login.md): Log in with email and password - [auth.logoutAll](https://peinture.gumeniuk.com/docs/methods/auth.logoutAll.md): Revoke all of the caller's sessions - [auth.refresh](https://peinture.gumeniuk.com/docs/methods/auth.refresh.md): Exchange a refresh token for a new token pair - [image.archiveToken](https://peinture.gumeniuk.com/docs/methods/image.archiveToken.md): Mint a short-lived link to download the full archive - [image.crop.add](https://peinture.gumeniuk.com/docs/methods/image.crop.add.md): Add a custom crop (max 5 per image) - [image.crop.delete](https://peinture.gumeniuk.com/docs/methods/image.crop.delete.md): Delete a custom crop by code - [image.delete](https://peinture.gumeniuk.com/docs/methods/image.delete.md): Delete an image - [image.exif.setVisibility](https://peinture.gumeniuk.com/docs/methods/image.exif.setVisibility.md): Toggle which EXIF groups are exposed publicly - [image.get](https://peinture.gumeniuk.com/docs/methods/image.get.md): Get one of the caller's images with full detail - [image.getPublic](https://peinture.gumeniuk.com/docs/methods/image.getPublic.md): Get a ready image's public view (no authentication) - [image.list](https://peinture.gumeniuk.com/docs/methods/image.list.md): List the caller's images (cursor-paginated) - [image.regenerate](https://peinture.gumeniuk.com/docs/methods/image.regenerate.md): Re-render all sizes for an image - [image.update](https://peinture.gumeniuk.com/docs/methods/image.update.md): Update an image's title and/or description - [rpc.discover](https://peinture.gumeniuk.com/docs/methods/rpc.discover.md): Return the OpenRPC document describing this API - [token.create](https://peinture.gumeniuk.com/docs/methods/token.create.md): Create a personal access token - [token.list](https://peinture.gumeniuk.com/docs/methods/token.list.md): List the caller's personal access tokens - [token.revoke](https://peinture.gumeniuk.com/docs/methods/token.revoke.md): Revoke a personal access token ## Specifications - [OpenRPC document](https://peinture.gumeniuk.com/openrpc.json): machine-readable JSON-RPC description (also via rpc.discover) - [OpenAPI 3.1 document](https://peinture.gumeniuk.com/openapi.json): REST-shaped wrapper with one path per method - [Postman collection](https://peinture.gumeniuk.com/docs/peinture.postman_collection.json) ## Optional - [Full documentation as one file](https://peinture.gumeniuk.com/llms-full.txt) - [Terms](https://peinture.gumeniuk.com/terms.md)