Skip to content
Start here

Get multiple key-value pairs

client.KV.Namespaces.BulkGet(ctx, namespaceID, params) (*NamespaceBulkGetResponse, error)
POST/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get

Retrieves the text-based values of up to 100 keys from the specified Workers KV namespace. The result maps each requested key to its value. Set type to json to parse JSON values instead of returning strings, and set withMetadata to true to include metadata with each value. Binary values are not supported by this operation.

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)
Workers KV Storage WriteWorkers KV Storage Read
ParametersExpand Collapse
namespaceID string

ID of the Workers KV namespace.

maxLength32
params NamespaceBulkGetParams
AccountID param.Field[string]

Path param: ID of the Cloudflare account that owns the Workers KV namespaces.

maxLength32
Keys param.Field[[]string]

Body param: Array of keys to retrieve (maximum of 100).

Type param.Field[NamespaceBulkGetParamsType]Optional

Body param: Return values as strings with text, or parse stored JSON values with json.

const NamespaceBulkGetParamsTypeText NamespaceBulkGetParamsType = "text"
const NamespaceBulkGetParamsTypeJson NamespaceBulkGetParamsType = "json"
WithMetadata param.Field[bool]Optional

Body param: Whether to include metadata in the response.

ReturnsExpand Collapse
type NamespaceBulkGetResponse interface{…}
One of the following:
type NamespaceBulkGetResponseWorkersKVBulkGetResult struct{…}
Values map[string, NamespaceBulkGetResponseWorkersKVBulkGetResultValuesUnion]Optional

Requested keys are paired with their values in an object.

One of the following:
UnionString
UnionFloat
UnionBool
type NamespaceBulkGetResponseWorkersKVBulkGetResultValuesMap map[string, unknown]
type NamespaceBulkGetResponseWorkersKVBulkGetResultWithMetadata struct{…}
Values map[string, NamespaceBulkGetResponseWorkersKVBulkGetResultWithMetadataValue]Optional

Requested keys are paired with their values and metadata in an object.

Metadata unknown

The metadata associated with the key.

Value unknown

The value associated with the key.

Expiration float64Optional

Expires the key at a certain time, measured in number of seconds since the UNIX epoch.

Get multiple key-value pairs

package main

import (
  "context"
  "fmt"

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

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.KV.Namespaces.BulkGet(
    context.TODO(),
    "0f2ac74b498b48028cb68387c421e279",
    kv.NamespaceBulkGetParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
      Keys: cloudflare.F([]string{"My-Key"}),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "values": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}
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"
      }
    }
  ],
  "success": true,
  "result": {
    "values": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}