---
title: "Create an album"
method: POST
path: "/events"
tags: ["Events"]
---

# Create an album

`POST /events`

## Request

- Base URL: `https://findme.photo/api/v1`
- URL: `https://findme.photo/api/v1/events`
- Auth: HTTP bearer

Creates an album (event) and returns it with its `gallery_url` (the link guests open) and `qr_url`. Defaults when omitted: `album_quality` 3000px, downloads enabled, not collaborative. The album count limit and the album-quality ceiling of the plan are enforced: exceeding either returns `402 upgrade_required` with `upgrade_url` (plus `current_count`/`limit`, or `requested`/`plan_max`). Choose `album_quality` carefully: it is locked once the first photo is uploaded. Not idempotent: each successful call creates a new album.

## Request body

- CreateEventRequest
  - `name` string, required: Album name (trimmed).
  - `event_date` string, date: YYYY-MM-DD.
  - `description` string
  - `tag` string
  - `album_quality` '800px' | '3000px' | '4000px' | '15mb': Stored photo resolution for the album, by long edge: 800px, 3000px, 4000px, or `15mb` (up to 8000 px). Fixed once the album has photos.
  - `enable_downloads` boolean
  - `is_collaborative` boolean

## Response `201`

The created album.

- object
  - `data` Event, required: An album as returned by `listEvents` and `createEvent`.
    - `id` string, uuid, required
    - `name` string, required
    - `access_code` string, required: Album code; part of `gallery_url`.
    - `event_date` string, date, nullable, required
    - `description` string, nullable, required
    - `tag` string, nullable, required
    - `album_quality` '800px' | '3000px' | '4000px' | '15mb', required: Stored photo resolution for the album, by long edge: 800px, 3000px, 4000px, or `15mb` (up to 8000 px). Fixed once the album has photos.
    - `enable_downloads` boolean, required
    - `is_collaborative` boolean, required
    - `photo_count` integer, required: Number of photo and video rows in the album, any status. Always 0 on `createEvent`.
    - `quality_locked` boolean, required: True when `photo_count` > 0; `album_quality` can no longer change.
    - `gallery_url` string, uri, required: The link guests open. Uses the photographer's branded findme.photo subdomain when the plan includes one and a username is set.
    - `qr_url` string, uri, required: URL of `getEventQrCode` for this album (needs the Bearer key).
    - `created_at` string, date-time, required
  - `meta` Meta, required
    - `request_id` string, required

## Other responses

- `400`: `invalid_request`: invalid id, query parameter, cursor or body. Validation failures list `details.issues`.
- `401`: `missing_or_invalid_token` (no or malformed `Authorization: Bearer fm_live_...` header) or `invalid_token` (unknown or revoked key).
- `402`: `upgrade_required`: the plan does not allow this (album limit or album quality). Includes `upgrade_url`.
- `403`: `tier_not_eligible`: the plan does not include API access (includes `upgrade_url`), or does not include the feature this endpoint needs.
- `409`: `conflict`: access code collision. Retry the request.
- `429`: `rate_limited` (per-minute limit; `retry_after_seconds`) or `quota_exceeded` (monthly quota; `retry_after_seconds`, `resets_at`).
- `500`: `internal_error`: something failed on our side. Safe to retry reads; include `request_id` when reporting.

---

[API](https://skmtc.dev/findme/apis/findme-photo-api.md) · [All operations](https://skmtc.dev/findme/apis/findme-photo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/findme/apis/findme-photo-api/revisions/b68670b742a9?raw)
