Skip to content
Start here

K2

K2Streams

List K2 streams
GET/accounts/{account_id}/k2/streams
Get K2 stream
GET/accounts/{account_id}/k2/streams/{stream_id}
Create K2 stream
POST/accounts/{account_id}/k2/streams
Update K2 stream
PATCH/accounts/{account_id}/k2/streams/{stream_id}
Delete K2 stream
DELETE/accounts/{account_id}/k2/streams/{stream_id}
ModelsExpand Collapse
StreamListResponse object { id, created_at, endpoint, 5 more }
id: string

Specifies the public ID of the K2 stream.

maxLength32
minLength32
created_at: string
formatdate-time
endpoint: string

Indicates the base HTTP endpoint for producing and consuming records.

formaturi
http: object { enabled, authentication, cors }

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

enabled: boolean

Indicates whether the HTTP endpoint accepts records.

authentication: optional boolean

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 object { origins }
origins: optional array of string

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: string
formatdate-time
name: string

Indicates the name of the K2 stream.

maxLength128
minLength1
retention_seconds: number

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

maximum2592000
minimum3600
worker_binding: object { enabled } or object { enabled }
One of the following:
Enabled object { enabled }
enabled: false

Indicates whether Workers bindings can produce records to the stream.

Enabled object { enabled }
enabled: true

Indicates whether Workers bindings can produce records to the stream.

StreamGetResponse object { id, created_at, endpoint, 5 more }
id: string

Specifies the public ID of the K2 stream.

maxLength32
minLength32
created_at: string
formatdate-time
endpoint: string

Indicates the base HTTP endpoint for producing and consuming records.

formaturi
http: object { enabled, authentication, cors }

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

enabled: boolean

Indicates whether the HTTP endpoint accepts records.

authentication: optional boolean

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 object { origins }
origins: optional array of string

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: string
formatdate-time
name: string

Indicates the name of the K2 stream.

maxLength128
minLength1
retention_seconds: number

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

maximum2592000
minimum3600
worker_binding: object { enabled } or object { enabled }
One of the following:
Enabled object { enabled }
enabled: false

Indicates whether Workers bindings can produce records to the stream.

Enabled object { enabled }
enabled: true

Indicates whether Workers bindings can produce records to the stream.

StreamCreateResponse object { id, created_at, endpoint, 5 more }
id: string

Specifies the public ID of the K2 stream.

maxLength32
minLength32
created_at: string
formatdate-time
endpoint: string

Indicates the base HTTP endpoint for producing and consuming records.

formaturi
http: object { enabled, authentication, cors }

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

enabled: boolean

Indicates whether the HTTP endpoint accepts records.

authentication: optional boolean

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 object { origins }
origins: optional array of string

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: string
formatdate-time
name: string

Indicates the name of the K2 stream.

maxLength128
minLength1
retention_seconds: number

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

maximum2592000
minimum3600
worker_binding: object { enabled } or object { enabled }
One of the following:
Enabled object { enabled }
enabled: false

Indicates whether Workers bindings can produce records to the stream.

Enabled object { enabled }
enabled: true

Indicates whether Workers bindings can produce records to the stream.

StreamUpdateResponse object { id, created_at, endpoint, 5 more }
id: string

Specifies the public ID of the K2 stream.

maxLength32
minLength32
created_at: string
formatdate-time
endpoint: string

Indicates the base HTTP endpoint for producing and consuming records.

formaturi
http: object { enabled, authentication, cors }

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

enabled: boolean

Indicates whether the HTTP endpoint accepts records.

authentication: optional boolean

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 object { origins }
origins: optional array of string

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: string
formatdate-time
name: string

Indicates the name of the K2 stream.

maxLength128
minLength1
retention_seconds: number

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

maximum2592000
minimum3600
worker_binding: object { enabled } or object { enabled }
One of the following:
Enabled object { enabled }
enabled: false

Indicates whether Workers bindings can produce records to the stream.

Enabled object { enabled }
enabled: true

Indicates whether Workers bindings can produce records to the stream.

StreamDeleteResponse = unknown

K2StreamsSubscriptions

List subscriptions with consumer lag
GET/accounts/{account_id}/k2/streams/{stream_id}/subscriptions
ModelsExpand Collapse
SubscriptionListResponse object { id, created_at, lag, 3 more }
id: string
created_at: string
formatdate-time
lag: object { records, status }
records: string

Decimal-string distance from the subscription’s committed position to the observed exclusive stream tail, in records. Includes in-flight records and may include expired records or records acknowledged beyond an earlier gap. Null unless status is available.

status: "available" or "unsupported" or "unavailable"

Unsupported means the subscription or stream topology cannot be measured; unavailable means a required observation failed or was inconsistent.

One of the following:
"available"
"unsupported"
"unavailable"
modified_at: string
formatdate-time
name: string
start_at: object { type }
type: "earliest" or "latest"
One of the following:
"earliest"
"latest"

K2Data

Produce records
POST/produce
ModelsExpand Collapse
DataProduceResponse object { success }
success: true

K2DataSubscriptions

List subscriptions
GET/subscriptions
Create subscription
POST/subscriptions
Get subscription
GET/subscriptions/{subscription_id}
Delete subscription
DELETE/subscriptions/{subscription_id}
Consume records
POST/subscriptions/{subscription_id}/consume
ModelsExpand Collapse
SubscriptionListResponse object { id, created_at, modified_at, 2 more }
id: string

Specifies the ID of the subscription.

created_at: string
formatdate-time
modified_at: string
formatdate-time
name: string
start_at: object { type }
type: "earliest" or "latest"
One of the following:
"earliest"
"latest"
SubscriptionCreateResponse object { id }
id: string

Specifies the ID of the subscription.

SubscriptionGetResponse object { id, created_at, modified_at, 2 more }
id: string

Specifies the ID of the subscription.

created_at: string
formatdate-time
modified_at: string
formatdate-time
name: string
start_at: object { type }
type: "earliest" or "latest"
One of the following:
"earliest"
"latest"
SubscriptionDeleteResponse object { id }
id: string

Specifies the ID of the subscription.

SubscriptionConsumeResponse object { batch_id, leased_until_ms, records }
batch_id: string

Identifies the delivered batch for ACK, NACK, and extend. Null when the response contains no records.

leased_until_ms: number

Shows when the lease on the batch expires, in epoch milliseconds. ACK or NACK the batch before then. Null when the response contains no records.

records: array of object { content, timestamp_ms, headers }
content: string

The record payload, encoded as standard base64.

formatbyte
timestamp_ms: number

Shows when K2 received the record, in epoch milliseconds.

headers: optional map[string]

Lists the metadata the producer attached to the record. Omitted when the record carries none.

K2DataSubscriptionsBatches

Acknowledge batch
POST/subscriptions/{subscription_id}/batches/{batch_id}/ack
Release batch
POST/subscriptions/{subscription_id}/batches/{batch_id}/nack
Extend batch lease
POST/subscriptions/{subscription_id}/batches/{batch_id}/extend
ModelsExpand Collapse
BatchAckResponse = unknown
BatchNackResponse = unknown
BatchExtendResponse object { leased_until_ms }
leased_until_ms: number

Shows the new lease expiry, in epoch milliseconds.