Skip to content
Start here

Create K2 stream

client.K2.Streams.New(ctx, params) (*StreamNewResponse, error)
POST/accounts/{account_id}/k2/streams

Create a new K2 stream. HTTP is disabled when http is omitted. Enabled HTTP requires authentication and allows all origins unless authentication or cors say otherwise. At least one input must be enabled.

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

Path param: Specifies the public ID of the account.

maxLength32
minLength32
Name param.Field[string]

Body param: Specifies the name of the K2 stream.

maxLength128
minLength1
HTTP param.Field[StreamNewParamsHTTP]Optional

Body param: Configures the HTTP endpoint. Disabling HTTP keeps authentication and cors, so enabling it again restores them.

Enabled bool

Indicates whether the HTTP endpoint accepts records.

Authentication boolOptional

Indicates whether the HTTP endpoint requires an API token with K2 produce permission. When false, the endpoint accepts unauthenticated records. Defaults to true when HTTP is enabled without a stored value.

CORS StreamNewParamsHTTPCORSOptional
Origins []stringOptional

Allows browser requests from these HTTP or HTTPS origins. Use a wildcard only as the sole origin. An empty list blocks cross-origin browser requests. Defaults to ['*'] when HTTP is enabled without stored origins.

RetentionSeconds param.Field[int64]Optional

Body param: Sets the record retention period from 1 hour (3600 seconds) to 30 days (2592000 seconds), inclusive.

maximum2592000
minimum3600
WorkerBinding param.Field[StreamNewParamsWorkerBinding]Optional

Body param

type StreamNewParamsWorkerBindingEnabled struct{…}
Enabled StreamNewParamsWorkerBindingEnabledEnabled

Indicates whether Workers bindings can produce records to the stream.

type StreamNewParamsWorkerBindingEnabled struct{…}
Enabled StreamNewParamsWorkerBindingEnabledEnabled

Indicates whether Workers bindings can produce records to the stream.

ReturnsExpand Collapse
type StreamNewResponse struct{…}
ID string

Specifies the public ID of the K2 stream.

maxLength32
minLength32
CreatedAt Time
formatdate-time
Endpoint string

Indicates the base HTTP endpoint for producing and consuming records.

formaturi
HTTP StreamNewResponseHTTP

Configures the HTTP endpoint. Disabling HTTP keeps authentication and cors, so enabling it again restores them.

Enabled bool

Indicates whether the HTTP endpoint accepts records.

Authentication boolOptional

Indicates whether the HTTP endpoint requires an API token with K2 produce permission. When false, the endpoint accepts unauthenticated records. Defaults to true when HTTP is enabled without a stored value.

CORS StreamNewResponseHTTPCORSOptional
Origins []stringOptional

Allows browser requests from these HTTP or HTTPS origins. Use a wildcard only as the sole origin. An empty list blocks cross-origin browser requests. Defaults to ['*'] when HTTP is enabled without stored origins.

ModifiedAt Time
formatdate-time
Name string

Indicates the name of the K2 stream.

maxLength128
minLength1
RetentionSeconds int64

Shows the configured record retention period from 1 hour (3600 seconds) to 30 days (2592000 seconds), inclusive.

maximum2592000
minimum3600
WorkerBinding StreamNewResponseWorkerBinding
One of the following:
type StreamNewResponseWorkerBindingEnabled struct{…}
Enabled StreamNewResponseWorkerBindingEnabledEnabled

Indicates whether Workers bindings can produce records to the stream.

type StreamNewResponseWorkerBindingEnabled struct{…}
Enabled StreamNewResponseWorkerBindingEnabledEnabled

Indicates whether Workers bindings can produce records to the stream.

Create K2 stream

package main

import (
  "context"
  "fmt"

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

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  stream, err := client.K2.Streams.New(context.TODO(), k2.StreamNewParams{
    AccountID: cloudflare.F("0123105f4ecef8ad9ca31a8372d0c353"),
    Name: cloudflare.F("my_k2_stream"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", stream.ID)
}
{
  "errors": [
    {
      "message": "message",
      "code": 0
    }
  ],
  "messages": [
    {
      "message": "message",
      "code": 0
    }
  ],
  "result": {
    "id": "053e105f4ecef8ad9ca31a8372d0c353",
    "created_at": "2019-12-27T18:11:19.117Z",
    "endpoint": "https://053e105f4ecef8ad9ca31a8372d0c353.k2.cloudflarestorage.com",
    "http": {
      "enabled": true,
      "authentication": true,
      "cors": {
        "origins": [
          "string"
        ]
      }
    },
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "my_k2_stream",
    "retention_seconds": 604800,
    "worker_binding": {
      "enabled": false
    }
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "message": "message",
      "code": 0
    }
  ],
  "messages": [
    {
      "message": "message",
      "code": 0
    }
  ],
  "result": {
    "id": "053e105f4ecef8ad9ca31a8372d0c353",
    "created_at": "2019-12-27T18:11:19.117Z",
    "endpoint": "https://053e105f4ecef8ad9ca31a8372d0c353.k2.cloudflarestorage.com",
    "http": {
      "enabled": true,
      "authentication": true,
      "cors": {
        "origins": [
          "string"
        ]
      }
    },
    "modified_at": "2019-12-27T18:11:19.117Z",
    "name": "my_k2_stream",
    "retention_seconds": 604800,
    "worker_binding": {
      "enabled": false
    }
  },
  "success": true
}