API Reference
The PhotoProofing public API is designed for desktop integrations and automation workflows. Version v1 ships with a compact surface area: gallery listing and creation, plus image listing and upload.
Base URL
Section titled “Base URL”https://api.photoproofing.itAuthentication
Section titled “Authentication”Every protected request must send an organization API key in the Authorization header:
curl https://api.photoproofing.it/v1/galleries \ -H "Authorization: Bearer pp_live_your_key_here"API keys are generated by an organization owner from the app settings page under Admin > Settings.
Rate limiting
Section titled “Rate limiting”- Limit:
60 requests / minuteper API key. - Headers:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset. - When the limit is exceeded, the API returns
429 RATE_LIMIT_EXCEEDEDand aRetry-Afterheader.
Error format
Section titled “Error format”All errors follow the same envelope:
{ "error": { "code": "UNAUTHORIZED", "message": "API key is missing or invalid." }}Common codes in v1:
UNAUTHORIZEDFORBIDDENNOT_FOUNDVALIDATION_ERRORFILE_TOO_LARGEUNSUPPORTED_MEDIA_TYPERATE_LIMIT_EXCEEDED
Quick start
Section titled “Quick start”Create a gallery:
curl https://api.photoproofing.it/v1/galleries \ -X POST \ -H "Authorization: Bearer pp_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "title": "Spring Campaign", "description": "Capture One tethered session", "status": "proofing" }'Upload an image into an existing gallery:
curl https://api.photoproofing.it/v1/galleries/<gallery-id>/images \ -X POST \ -H "Authorization: Bearer pp_live_your_key_here" \ -F "file=@/absolute/path/to/frame-001.jpg"