Photos

Step 1 of upload: get presigned upload URLs

Reserves one upload slot per file (up to 50 per call) and returns a presigned S3 URL for each. The full upload flow:

  1. This call. Send filename, content_type and size_bytes for each file. Accepted types: JPEG, PNG, WebP photos (up to 50 MB each) and MP4, QuickTime, WebM videos (up to 1 GB each); any other type or size rejects the whole batch with 400 invalid_request and details.rejected. The plan's storage limit (and video storage limit, on plans that have one) is checked against the declared sizes; going over returns 429 quota_exceeded with the byte counts in details.
  2. PUT the bytes. For each slot, PUT the raw file bytes to presigned_url with the same Content-Type you declared, before expires_at (15 minutes). This request goes straight to S3: do not send your FindMe Authorization header. Resize photos to the album quality first: the long edge must not exceed 800, 3000 or 4000 px for those qualities, or 8000 px for 15mb (the response repeats the album's album_quality).
  3. Confirm the uploaded slots with confirmPhotoUploads. Until then the slot stays pending and the photo is not in the album.
  4. Release any slot you will not fill (cancelled export, failed PUT) with releasePhotoUploads.

batch_id is informational; no other endpoint takes it. Not idempotent: every call reserves new slots.

post/events/{id}/photos

Request

  • Base URL: https://findme.photo/api/v1
  • URL: https://findme.photo/api/v1/events/{id}/photos
  • Auth: HTTP bearer

Request body

Response

Upload slots with presigned URLs.

Changes

No recorded changes to this operation across all 1 revision of this API.