---
title: Manage hosted images with the Images binding
description: Upload, list, retrieve, update, and delete hosted images directly from a Worker using the Images binding.

image: https://developers.cloudflare.com/changelog-preview.png
---

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

[Skip to content](#%5Ftop) 

# Changelog

New updates and improvements at Cloudflare.

[ Subscribe to RSS ](https://developers.cloudflare.com/changelog/rss/index.xml) [ View RSS feeds ](https://developers.cloudflare.com/fundamentals/new-features/available-rss-feeds/) 

![hero image](https://developers.cloudflare.com/_astro/hero.CVYJHPAd_26AMqX.svg) 

[ ← Back to all posts ](https://developers.cloudflare.com/changelog/) 

## Manage hosted images with the Images binding

Jun 10, 2026 

[ Cloudflare Images ](https://developers.cloudflare.com/images/) 

Use the Images binding to upload, list, retrieve, update, and delete images stored in Images directly from your Worker without managing API tokens or making HTTP requests.

The `env.IMAGES.hosted` namespace supports the following storage and management operations:

* [.upload(image, options)](https://developers.cloudflare.com/images/storage/binding/#uploadimage-options) — Upload a new image to your account.
* [.list(options)](https://developers.cloudflare.com/images/storage/binding/#listoptions) — List images with pagination.
* [.image(imageId).details()](https://developers.cloudflare.com/images/storage/binding/#imageimageiddetails) — Get image metadata.
* [.image(imageId).bytes()](https://developers.cloudflare.com/images/storage/binding/#imageimageidbytes) — Stream the original image bytes.
* [.image(imageId).update(options)](https://developers.cloudflare.com/images/storage/binding/#imageimageidupdateoptions) — Update metadata or access controls.
* [.image(imageId).delete()](https://developers.cloudflare.com/images/storage/binding/#imageimageiddelete) — Delete an image.

For example, you can upload an image from a request body and return its metadata:

TypeScript

```
const image = await env.IMAGES.hosted.upload(request.body, {  filename: "upload.jpg",  metadata: { source: "worker" },});
return Response.json(image);
```

Or retrieve and serve the original bytes of a hosted image:

TypeScript

```
const bytes = await env.IMAGES.hosted.image("IMAGE_ID").bytes();return new Response(bytes);
```

For more information, refer to the [Images binding](https://developers.cloudflare.com/images/storage/binding/).

```json
{"@context":"https://schema.org","@type":"BlogPosting","@id":"https://developers.cloudflare.com/changelog/post/2026-06-10-hosted-images-binding/#page","headline":"Manage hosted images with the Images binding · Changelog","description":"Upload, list, retrieve, update, and delete hosted images directly from a Worker using the Images binding.","url":"https://developers.cloudflare.com/changelog/post/2026-06-10-hosted-images-binding/","inLanguage":"en","image":"https://developers.cloudflare.com/changelog-preview.png","dateModified":"2026-06-10","datePublished":"2026-06-10","publisher":{"@type":"Organization","name":"Cloudflare","url":"https://www.cloudflare.com/"},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
```
