> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shootbin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Approve, reject, and select photos for delivery

> Mark photos approved or rejected one at a time or in bulk, and use selection packages to define exactly how many photos clients can choose.

Approvals give you and your client a clear record of which photos make the cut. Approvers (clients) can approve or reject photos one at a time or in bulk, and photographers can see every decision at a glance. On Studio and Agency plans, selection packages let you define exactly how many photos a client can pick from each album, perfect for packages that include a set number of final images.

## Approving and rejecting individual photos

<Steps>
  <Step title="Open a photo">
    Navigate to an album and click any photo to open the editing view.
  </Step>

  <Step title="Approve or reject">
    Use the **Approve** button (`Ctrl+P` / `Cmd+P`) to mark the photo as approved, or the **Reject** button (`Ctrl+X` / `Cmd+X`) to mark it as rejected. The photo's status badge updates immediately.
  </Step>

  <Step title="Change your mind">
    Clicking the same action again toggles the status back to neutral. You can switch between approved, rejected, and neutral at any time during an active review round.
  </Step>
</Steps>

<Info>
  Uploading a new revision of a photo resets its approval status to neutral so you always review the latest version intentionally (unless it is exact the same image you re-upload).
</Info>

## Bulk approve and reject

When you need to act on many photos at once, use the bulk selection tools in the album view.

<Steps>
  <Step title="Select multiple photos">
    In the album grid, check the selection box on each photo you want to act on. You can also use **Select All** to select every photo in the album.
  </Step>

  <Step title="Apply bulk action">
    With photos selected, choose **Approve Selected** or **Reject Selected** from the bulk actions toolbar. The status updates for all selected photos simultaneously.
  </Step>
</Steps>

<Tip>
  Use bulk approve to quickly greenlight an entire album, then open and reject specific photos individually. This is faster than reviewing every photo one by one when most of them are fine.
</Tip>

## Photo selection packages

<Tabs>
  <Tab title="Studio / Agency plans">
    Selection packages define how many photos a client can choose from a project. This is ideal for session packages, for example, "Client chooses 10 photos from Look 1."

    ### Setting up a package

    <Steps>
      <Step title="Create a package preset">
        Go to your account's **Studio settings** and open the **Packages** tab. Create a new package and set its photo limit (e.g. 10 photos).
      </Step>

      <Step title="Assign the package to a project">
        Open the project's **Settings** page and find the **Photo Selection Package** section. Choose the package you created from the dropdown and save.
      </Step>

      <Step title="Client makes their selects">
        When the project is sent for review, the client approves photos up to the package limit. Once they reach the limit, approving additional photos is blocked until they unapprove one.
      </Step>

      <Step title="Review the client's selects">
        As the photographer, you can see exactly which photos the client has approved. Use this list to prepare the delivery package.
      </Step>
    </Steps>

    <Warning>
      Package limits are enforced through the API as well. If your client or an integration tries to approve more photos than the package allows, the request will be rejected with a validation error.
    </Warning>
  </Tab>

  <Tab title="Hobby plan">
    Hobby plan projects do not support selection packages. Clients can approve and reject photos without a cap. Photo selection packages are a Studio/Agency feature, upgrade to unlock them.
  </Tab>
</Tabs>

## Approval status reference

| Status             | Meaning                         |
| ------------------ | ------------------------------- |
| Neutral (no badge) | Not yet reviewed                |
| Approved           | Client has selected this photo  |
| Rejected           | Client has passed on this photo |

## API

You can read and update photo approval status using the Shootbin API.

### Approve a photo

```bash theme={null}
PATCH /api/projects/{project}/albums/{album}/photos/{photo}
```

```bash theme={null}
curl -X PATCH https://your-domain.tld/api/projects/PROJECT_ID/albums/ALBUM_ID/photos/PHOTO_ID \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"approved": true}'
```

### Unapprove (reset) a photo

```bash theme={null}
curl -X PATCH https://your-domain.tld/api/projects/PROJECT_ID/albums/ALBUM_ID/photos/PHOTO_ID \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"approved": false}'
```

<Note>
  The API respects selection package limits. Approving a photo when the package limit has already been reached returns a `422 Unprocessable Entity` response.
</Note>

## Related pages

* [Review workflow](/guides/review-workflow), the full proofing loop between photographer and client
* [Add visual annotations to photos](/guides/annotations), leaving pinned feedback on specific areas of a photo
* [Deliver approved photos to your clients](/guides/delivery), packaging and sending approved selects for download
