मुख्य सामग्री पर जाएं

Create a Stream – Streams REST API

को अपडेट
Jul 31, 2026

अवलोकन

Creates a new stream with a specified blockchain network, dataset type, destination, and optional filter function. Use this endpoint to programmatically set up real-time or historical blockchain data pipelines.

Key capabilities:

  • Start from a specific block (backfills) or latest block (real-time streaming)
  • Choose destination: webhook, S3, Azure Blob Storage, or PostgreSQL
  • Attach a base64-encoded JavaScript filter to transform data before delivery
  • Configure batch sizes, reorg detection, distance-from-tip, and elastic batching
  • Set up multi-destination delivery with extra_destinations
  • Receive email alerts on stream termination

Endpoint

Send a POST request to the following URL with your stream configuration in the request body.

POST https://api.quicknode.com/streams/rest/v1/streams

Request Parameters

ParameterTypeRequiredविवरण
नामडोरीहाँA name for your stream
networkडोरीहाँBlockchain network (see Supported Chains)
datasetडोरीहाँDataset type (see Data Sources)
regionडोरीहाँusa_east
dataset_batch_sizeपूर्णांकहाँNumber of blocks to batch per delivery
elastic_batch_enabledबूलियनहाँAuto-adjust batch size to 1 near chain tip
destinationडोरीहाँwebhook, s3, azure, or postgres
destination_attributesवस्तुहाँConfiguration for selected destination
स्थितिडोरीहाँactive or paused
filter_functionडोरीनहींBase64-encoded JavaScript filter function
start_rangeपूर्णांकनहींStarting block number (omit for latest)
end_rangeपूर्णांकनहींEnding block number (omit for continuous)
fix_block_reorgsपूर्णांकनहीं1 to enable reorg detection and re-streaming
keep_distance_from_tipपूर्णांकनहींBlocks to stay behind chain tip
notification_emailडोरीनहींEmail for stream termination alerts
extra_destinationsसरणीनहींAdditional destinations (same structure as primary)

Destination Attributes

Configuration options vary based on the selected destination type. Select a tab below to view the required and optional attributes for each destination.

ParameterTypeRequiredविवरण
urlडोरीहाँWebhook endpoint URL
compressionडोरीहाँnone or gzip
max_retryपूर्णांकहाँMax retry attempts
retry_interval_secपूर्णांकहाँSeconds between retries
post_timeout_secपूर्णांकहाँRequest timeout in seconds
headersवस्तुनहींCustom headers as key-value pairs
mtlsबूलियननहींEnable mutual TLS: Quicknode authenticates to your endpoint with its client certificate. Requires an HTTPS URL. See the Webhook destination page for server setup.
ssl_ca_pemडोरीनहींCA certificate (PEM) used to verify your endpoint's server certificate when it is signed by a private CA instead of a public one

For mTLS server configuration and how to download the Quicknode CA certificate, see Mutual TLS on the Webhook destination page.

Example Request

curl -X POST "https://api.quicknode.com/streams/rest/v1/streams" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"name": "My Stream",
"network": "ethereum-mainnet",
"dataset": "block",
"filter_function": "ZnVuY3Rpb24gbWFpbihkYXRhKSB7Li4ufQ==",
"region": "usa_east",
"start_range": 100,
"end_range": 200,
"dataset_batch_size": 1,
"destination": "webhook",
"fix_block_reorgs": 0,
"keep_distance_from_tip": 0,
"elastic_batch_enabled": true,
"destination_attributes": {
"url": "https://webhook.site",
"compression": "none",
"headers": { "Authorization": "Bearer token" },
"max_retry": 3,
"retry_interval_sec": 1,
"post_timeout_sec": 10,
"mtls": true
},
"status": "active"
}'

प्रतिक्रिया

On success, the API returns the created stream object with a unique ID, timestamps, and all configured parameters.

{
"id": "f6ad6459-b5ad-4183-b370-1c1388e47e83",
"name": "My Stream",
"network": "ethereum-mainnet",
"dataset": "block",
"region": "usa_east",
"filter_function": "ZnVuY3Rpb24gbWFpbihkYXRhKSB7Li4ufQ==",
"start_range": 100,
"end_range": 200,
"dataset_batch_size": 1,
"elastic_batch_enabled": true,
"fix_block_reorgs": 0,
"keep_distance_from_tip": 0,
"destination": "webhook",
"destination_attributes": {
"url": "https://webhook.site",
"compression": "none",
"headers": { "Authorization": "Bearer token" },
"max_retry": 3,
"retry_interval_sec": 1,
"post_timeout_sec": 10,
"mtls": true,
"security_token": "qn_xxxxxxxxxxxxxx"
},
"status": "active",
"sequence": 0,
"current_hash": null,
"notification_email": null,
"extra_destinations": [],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}

Response Fields

FieldTypeविवरण
पहचानडोरीUnique stream identifier (UUID)
नामडोरीStream name
networkडोरीBlockchain network
datasetडोरीDataset type
regionडोरीDeployment region
filter_functionडोरीBase64-encoded filter function (if configured)
start_rangeपूर्णांकStarting block number
end_rangeपूर्णांकEnding block number (null for continuous)
dataset_batch_sizeपूर्णांकNumber of blocks per batch
elastic_batch_enabledबूलियनWhether elastic batching is enabled
fix_block_reorgsपूर्णांकReorg detection setting (1 = enabled)
keep_distance_from_tipपूर्णांकBlocks to stay behind chain tip
destinationडोरीDestination type (webhook, s3, azure, postgres)
destination_attributesवस्तुDestination configuration (varies by type)
स्थितिडोरीStream status (active or paused)
अनुक्रमपूर्णांकLast delivered block from the data range
current_hashडोरीHash of the current block being processed
notification_emailडोरीEmail for stream termination alerts
extra_destinationsसरणीAdditional destinations (if configured)
created_atडोरीStream creation timestamp (ISO 8601)
अपडेट किया गया_परडोरीLast update timestamp (ISO 8601)

Response Destination Attributes

The destination_attributes object in the response varies based on the destination type. Select a tab below to view the fields returned for each destination.

FieldTypeविवरण
urlडोरीWebhook endpoint URL
compressionडोरीCompression type (none or gzip)
headersवस्तुCustom headers (if configured)
max_retryपूर्णांकMaximum retry attempts
retry_interval_secपूर्णांकSeconds between retries
post_timeout_secपूर्णांकRequest timeout in seconds
security_tokenडोरीAuto-generated token for validating webhook authenticity
note

Sensitive fields like secret_key (S3), sas_token (Azure), and password (PostgreSQL) are not returned in the response for security reasons.