Skip to content
Start here

Create K2 stream

k2.streams.create(StreamCreateParams**kwargs) -> StreamCreateResponse
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
account_id: str

Specifies the public ID of the account.

maxLength32
minLength32
name: str

Specifies the name of the K2 stream.

maxLength128
minLength1
http: Optional[HTTP]

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: Optional[bool]

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: Optional[HTTPCORS]
origins: Optional[Sequence[str]]

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.

retention_seconds: Optional[int]

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

maximum2592000
minimum3600
worker_binding: Optional[WorkerBinding]
One of the following:
class WorkerBindingEnabled: …
enabled: Literal[false]

Indicates whether Workers bindings can produce records to the stream.

class WorkerBindingEnabled: …
enabled: Literal[true]

Indicates whether Workers bindings can produce records to the stream.

ReturnsExpand Collapse
class StreamCreateResponse: …
id: str

Specifies the public ID of the K2 stream.

maxLength32
minLength32
created_at: datetime
formatdate-time
endpoint: str

Indicates the base HTTP endpoint for producing and consuming records.

formaturi
http: HTTP

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: Optional[bool]

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: Optional[HTTPCORS]
origins: Optional[List[str]]

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.

modified_at: datetime
formatdate-time
name: str

Indicates the name of the K2 stream.

maxLength128
minLength1
retention_seconds: int

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

maximum2592000
minimum3600
worker_binding: WorkerBinding
One of the following:
class WorkerBindingEnabled: …
enabled: Literal[false]

Indicates whether Workers bindings can produce records to the stream.

class WorkerBindingEnabled: …
enabled: Literal[true]

Indicates whether Workers bindings can produce records to the stream.

Create K2 stream

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
stream = client.k2.streams.create(
    account_id="0123105f4ecef8ad9ca31a8372d0c353",
    name="my_k2_stream",
)
print(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
}