---
title: Upload an image
---

[Skip to content](#_top)

[API Reference](https://developers.cloudflare.com/api/python)

[Images](https://developers.cloudflare.com/api/python/resources/images)

[V1](https://developers.cloudflare.com/api/python/resources/images/subresources/v1)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# Upload an image

images.v1.create(V1CreateParams\*\*kwargs) -> [Image](<https://developers.cloudflare.com/api/python/resources/images#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)>)

POST/accounts/{account\_id}/images/v1

Upload an image to CF Images. Images up to 10 Megabytes can be uploaded using a single HTTP POST (multipart/form-data) request by sending an image file or passing a URL accessible to the API.

##### Security

<details>

<summary>API Token</summary>



The preferred authorization scheme for interacting with the Cloudflare API. <a href="https://developers.cloudflare.com/fundamentals/api/get-started/create-token/">Create a token</a>.

**Example:**<code>Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY</code>

</details>

<details>

<summary>API Email + API Key</summary>



The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

**Example:**<code>X-Auth-Email: user@example.com</code>

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

**Example:**<code>X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194</code>

</details>

##### Accepted Permissions (at least one required)

`Images Write`

##### ParametersExpand Collapse

account\_id: str

Account identifier tag.

maxLength32

[Link to this property](<#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20account_id%20%3E%20(schema)>)

id: Optional\[str]

An optional custom unique identifier for your image.

[Link to this property](<#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20id%20%3E%20(schema)>)

creator: Optional\[str]

Can set the creator field with an internal user ID.

maxLength1024

[Link to this property](<#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20creator%20%3E%20(schema)>)

file: Optional\[[FileTypes](<https://developers.cloudflare.com/api/python/resources/images/subresources/v1/methods/create#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20file%20%3E%20(schema)>)]

An image binary data. Only needed when type is uploading a file.

[Link to this property](<#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20file%20%3E%20(schema)>)

metadata: Optional\[[object](<https://developers.cloudflare.com/api/python/resources/images/subresources/v1/methods/create#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20metadata%20%3E%20(schema)>)]

User modifiable key-value store. Can use used for keeping references to another system of record for managing images.

[Link to this property](<#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20metadata%20%3E%20(schema)>)

require\_signed\_urls: Optional\[[bool](<https://developers.cloudflare.com/api/python/resources/images/subresources/v1/methods/create#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20requireSignedURLs%20%3E%20(schema)>)]

Indicates whether the image requires a signature token for the access.

[Link to this property](<#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20requireSignedURLs%20%3E%20(schema)>)

url: Optional\[str]

A URL to fetch an image from origin. Only needed when type is uploading from a URL.

[Link to this property](<#(resource)%20images.v1%20%3E%20(method)%20create%20%3E%20(params)%20default%20%3E%20(param)%20url%20%3E%20(schema)>)

##### ReturnsExpand Collapse

<details>

<summary>

class Image: …

</summary>

id: Optional\[str]

Image unique identifier.

maxLength32

<a href="#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)%20%3E%20(property)%20id">Link to this property</a>

creator: Optional\[str]

Can set the creator field with an internal user ID.

maxLength1024

<a href="#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)%20%3E%20(property)%20creator">Link to this property</a>

filename: Optional\[str]

Image file name.

maxLength255

<a href="#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)%20%3E%20(property)%20filename">Link to this property</a>

meta: Optional\[object]

User modifiable key-value store. Can be used for keeping references to another system of record for managing images. Metadata must not exceed 1024 bytes.

<a href="#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)%20%3E%20(property)%20meta">Link to this property</a>

require\_signed\_urls: Optional\[bool]

Indicates whether the image can be a accessed only using it’s UID. If set to true, a signed token needs to be generated with a signing key to view the image.

<a href="#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)%20%3E%20(property)%20requireSignedURLs">Link to this property</a>

uploaded: Optional\[datetime]

When the media item was uploaded.

formatdate-time

<a href="#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)%20%3E%20(property)%20uploaded">Link to this property</a>

variants: Optional\[List\[str]]

Object specifying available variants for an image.

<a href="#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)%20%3E%20(property)%20variants">Link to this property</a>

</details>

[Link to this property](<#(resource)%20images.v1%20%3E%20(model)%20image%20%3E%20(schema)>)

### Upload an image

Python

HTTPTypeScriptPythonGoTerraform

```
import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
image = client.images.v1.create(
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
)
print(image.id)
```

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "id": "id",
    "creator": "107b9558-dd06-4bbd-5fef-9c2c16bb7900",
    "filename": "logo.png",
    "meta": {
      "key": "value"
    },
    "requireSignedURLs": true,
    "uploaded": "2014-01-02T02:20:00.123Z",
    "variants": [
      "https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/thumbnail",
      "https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/hero",
      "https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/original"
    ]
  },
  "success": true
}
```

##### Returns Examples

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "id": "id",
    "creator": "107b9558-dd06-4bbd-5fef-9c2c16bb7900",
    "filename": "logo.png",
    "meta": {
      "key": "value"
    },
    "requireSignedURLs": true,
    "uploaded": "2014-01-02T02:20:00.123Z",
    "variants": [
      "https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/thumbnail",
      "https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/hero",
      "https://imagedelivery.net/MTt4OTd0b0w5aj/107b9558-dd06-4bbd-5fef-9c2c16bb7900/original"
    ]
  },
  "success": true
}
```