Skip to content
Start here

Create a variant

client.Images.V1.Variants.New(ctx, params) (*V1VariantNewResponse, error)
POST/accounts/{account_id}/images/v1/variants

Specify variants that allow you to resize images for different use cases.

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
params V1VariantNewParams
AccountID param.Field[string]

Path param: Account identifier tag.

maxLength32
ID param.Field[string]

Body param

maxLength99
Options param.Field[V1VariantNewParamsOptions]

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

Fit V1VariantNewParamsOptionsFit

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

One of the following:
const V1VariantNewParamsOptionsFitScaleDown V1VariantNewParamsOptionsFit = "scale-down"
const V1VariantNewParamsOptionsFitContain V1VariantNewParamsOptionsFit = "contain"
const V1VariantNewParamsOptionsFitCover V1VariantNewParamsOptionsFit = "cover"
const V1VariantNewParamsOptionsFitCrop V1VariantNewParamsOptionsFit = "crop"
const V1VariantNewParamsOptionsFitPad V1VariantNewParamsOptionsFit = "pad"
Height float64

Maximum height in image pixels.

minimum1
Metadata V1VariantNewParamsOptionsMetadata

What EXIF data should be preserved in the output image.

One of the following:
const V1VariantNewParamsOptionsMetadataKeep V1VariantNewParamsOptionsMetadata = "keep"
const V1VariantNewParamsOptionsMetadataCopyright V1VariantNewParamsOptionsMetadata = "copyright"
const V1VariantNewParamsOptionsMetadataNone V1VariantNewParamsOptionsMetadata = "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 V1VariantNewResponse struct{…}
Variant V1VariantNewResponseVariantOptional
ID string
maxLength99
Options V1VariantNewResponseVariantOptions

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

Fit V1VariantNewResponseVariantOptionsFit

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

One of the following:
const V1VariantNewResponseVariantOptionsFitScaleDown V1VariantNewResponseVariantOptionsFit = "scale-down"
const V1VariantNewResponseVariantOptionsFitContain V1VariantNewResponseVariantOptionsFit = "contain"
const V1VariantNewResponseVariantOptionsFitCover V1VariantNewResponseVariantOptionsFit = "cover"
const V1VariantNewResponseVariantOptionsFitCrop V1VariantNewResponseVariantOptionsFit = "crop"
const V1VariantNewResponseVariantOptionsFitPad V1VariantNewResponseVariantOptionsFit = "pad"
Height float64

Maximum height in image pixels.

minimum1
Metadata V1VariantNewResponseVariantOptionsMetadata

What EXIF data should be preserved in the output image.

One of the following:
const V1VariantNewResponseVariantOptionsMetadataKeep V1VariantNewResponseVariantOptionsMetadata = "keep"
const V1VariantNewResponseVariantOptionsMetadataCopyright V1VariantNewResponseVariantOptionsMetadata = "copyright"
const V1VariantNewResponseVariantOptionsMetadataNone V1VariantNewResponseVariantOptionsMetadata = "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.

Create a variant

package main

import (
  "context"
  "fmt"

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

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  variant, err := client.Images.V1.Variants.New(context.TODO(), images.V1VariantNewParams{
    AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    ID: cloudflare.F("hero"),
    Options: cloudflare.F(images.V1VariantNewParamsOptions{
      Fit: cloudflare.F(images.V1VariantNewParamsOptionsFitScaleDown),
      Height: cloudflare.F(768.000000),
      Metadata: cloudflare.F(images.V1VariantNewParamsOptionsMetadataNone),
      Width: cloudflare.F(1366.000000),
    }),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", variant.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
}