Skip to content
Start here

Update a variant

client.Images.V1.Variants.Edit(ctx, variantID, params) (*V1VariantEditResponse, error)
PATCH/accounts/{account_id}/images/v1/variants/{variant_id}

Updating a variant purges the cache for all images associated with the variant.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

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

Example:X-Auth-Email: user@example.com

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

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Images Write
ParametersExpand Collapse
variantID string
maxLength99
params V1VariantEditParams
AccountID param.Field[string]

Path param: Account identifier tag.

maxLength32
Options param.Field[V1VariantEditParamsOptions]

Body param: Allows you to define image resizing sizes for different use cases.

Fit V1VariantEditParamsOptionsFit

The fit property describes how the width and height dimensions should be interpreted.

One of the following:
const V1VariantEditParamsOptionsFitScaleDown V1VariantEditParamsOptionsFit = "scale-down"
const V1VariantEditParamsOptionsFitContain V1VariantEditParamsOptionsFit = "contain"
const V1VariantEditParamsOptionsFitCover V1VariantEditParamsOptionsFit = "cover"
const V1VariantEditParamsOptionsFitCrop V1VariantEditParamsOptionsFit = "crop"
const V1VariantEditParamsOptionsFitPad V1VariantEditParamsOptionsFit = "pad"
Height float64

Maximum height in image pixels.

minimum1
Metadata V1VariantEditParamsOptionsMetadata

What EXIF data should be preserved in the output image.

One of the following:
const V1VariantEditParamsOptionsMetadataKeep V1VariantEditParamsOptionsMetadata = "keep"
const V1VariantEditParamsOptionsMetadataCopyright V1VariantEditParamsOptionsMetadata = "copyright"
const V1VariantEditParamsOptionsMetadataNone V1VariantEditParamsOptionsMetadata = "none"
Width float64

Maximum width in image pixels.

minimum1
NeverRequireSignedURLs param.Field[bool]optional

Body param: Indicates whether the variant can access an image without a signature, regardless of image access control.

ReturnsExpand Collapse
type V1VariantEditResponse struct{…}
Variant V1VariantEditResponseVariantoptional
ID string
maxLength99
Options V1VariantEditResponseVariantOptions

Allows you to define image resizing sizes for different use cases.

Fit V1VariantEditResponseVariantOptionsFit

The fit property describes how the width and height dimensions should be interpreted.

One of the following:
const V1VariantEditResponseVariantOptionsFitScaleDown V1VariantEditResponseVariantOptionsFit = "scale-down"
const V1VariantEditResponseVariantOptionsFitContain V1VariantEditResponseVariantOptionsFit = "contain"
const V1VariantEditResponseVariantOptionsFitCover V1VariantEditResponseVariantOptionsFit = "cover"
const V1VariantEditResponseVariantOptionsFitCrop V1VariantEditResponseVariantOptionsFit = "crop"
const V1VariantEditResponseVariantOptionsFitPad V1VariantEditResponseVariantOptionsFit = "pad"
Height float64

Maximum height in image pixels.

minimum1
Metadata V1VariantEditResponseVariantOptionsMetadata

What EXIF data should be preserved in the output image.

One of the following:
const V1VariantEditResponseVariantOptionsMetadataKeep V1VariantEditResponseVariantOptionsMetadata = "keep"
const V1VariantEditResponseVariantOptionsMetadataCopyright V1VariantEditResponseVariantOptionsMetadata = "copyright"
const V1VariantEditResponseVariantOptionsMetadataNone V1VariantEditResponseVariantOptionsMetadata = "none"
Width float64

Maximum width in image pixels.

minimum1
NeverRequireSignedURLs booloptional

Indicates whether the variant can access an image without a signature, regardless of image access control.

Update a variant

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/images"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.Images.V1.Variants.Edit(
    context.TODO(),
    "hero",
    images.V1VariantEditParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
      Options: cloudflare.F(images.V1VariantEditParamsOptions{
        Fit: cloudflare.F(images.V1VariantEditParamsOptionsFitScaleDown),
        Height: cloudflare.F(768.000000),
        Metadata: cloudflare.F(images.V1VariantEditParamsOptionsMetadataNone),
        Width: cloudflare.F(1366.000000),
      }),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Variant)
}
{
  "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": {
    "variant": {
      "id": "hero",
      "options": {
        "fit": "scale-down",
        "height": 768,
        "metadata": "none",
        "width": 1366
      },
      "neverRequireSignedURLs": true
    }
  },
  "success": true
}
Returns Examples
{
  "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": {
    "variant": {
      "id": "hero",
      "options": {
        "fit": "scale-down",
        "height": 768,
        "metadata": "none",
        "width": 1366
      },
      "neverRequireSignedURLs": true
    }
  },
  "success": true
}