Skip to content

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.

https://api.photoproofing.it

Every protected request must send an organization API key in the Authorization header:

Terminal window
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.

  • Limit: 60 requests / minute per API key.
  • Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
  • When the limit is exceeded, the API returns 429 RATE_LIMIT_EXCEEDED and a Retry-After header.

All errors follow the same envelope:

{
"error": {
"code": "UNAUTHORIZED",
"message": "API key is missing or invalid."
}
}

Common codes in v1:

  • UNAUTHORIZED
  • FORBIDDEN
  • NOT_FOUND
  • VALIDATION_ERROR
  • FILE_TOO_LARGE
  • UNSUPPORTED_MEDIA_TYPE
  • RATE_LIMIT_EXCEEDED

Create a gallery:

Terminal window
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:

Terminal window
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"