---
title: "Working with images"
canonical_url: https://support.digitalphotogallery.com/articles/article/a1c55e31-6b9e-49b2-98bb-2bd6ecea5d1f
short_url: https://dpg.support/akyi
category: "API"
locale: en
updated_at: 2026-07-03T17:22:35Z
source: Digital Photo Gallery Support
---

# Working with images

This guide is about finding your images and editing them.

### Finding and searching

`GET /v1/images` is where you find things. On its own it lists your library newest first, and you narrow it with filters that all stack together:

- `?query=` searches the full text of your library (titles, keywords, filenames, dates and metadata), ranked by relevance. It understands `+must-have -exclude "exact phrase" wild*`.
- `?keyword=` and `?namespace=` filter by a keyword, optionally within a namespace.
- `?rating=` and `?min_rating=` filter by your editorial rating.
- `?exif_property=` and `?exif_value=` filter by Exif, like camera make, lens or ISO.
- `?created_at_from/to`, `?updated_at_from/to` and `?creation_date_from/to` are three separate date ranges: when a photo was uploaded, when it was last changed, and when it was actually taken.
- `?has_video`, `?has_geo` and `?bbox=` filter by video, geotag and map area.

```
curl "https://api.digitalphotogallery.com/v1/images?query=sunset&min_rating=4&limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Results come back in pages: use `?limit` (up to 200) and `?offset`, and let the `X-Has-More` and `X-Next-Offset` response headers tell you when there's more to fetch.

To read a single image, `GET /v1/images/{public_uuid}` gives you the lot: its keywords, rating, metadata, which sets it's in, and every version with its URL. If you only want the versions, there's `GET /v1/images/{public_uuid}/versions`.

> 💡 **Tip:** Image URLs come from whichever media CDN your account is set to use, so don't hard-code a host; always use the `url` a version gives you.

### Editing

`PATCH /v1/images/{public_uuid}` changes the main fields. Send whichever ones you want to change:

```
PATCH /v1/images/{public_uuid}
Idempotency-Key: <uuid>

{ "title": "…", "description": "…", "creation_date": "2026-07-03", "rotation": 90 }
```

Like any write, it hands you back an Operation to poll (see [Operations](https://support.digitalphotogallery.com/articles/article/2811a89b-e9f5-413a-b05c-7bb20b699313)). `rotation` has to be `0`, `90`, `180` or `270`, and `creation_date` can be any date or timestamp we can parse.

To delete an image, use `DELETE /v1/images/{public_uuid}`. That one needs the `api.images.delete` scope.

Keywords, ratings, metadata, crop, alt-text and credits each have their own endpoints, over in [Keywords, metadata & enrichment](https://support.digitalphotogallery.com/articles/article/d059236a-1d78-47d3-b781-f290133681c8).

> ⚠️ **Warning:** Every text field is checked against its length before it's saved. If something's too long you get a `400 validation` back that names the exact field, so you can fix it and try again. Nothing is ever quietly cut short.
