Skip to main content

Update a Stream – Streams REST API

Updated on
Jul 20, 2026

Overview

Updates the configuration of an existing stream. Use this endpoint to modify a stream's name, filter function, destination, destination attributes, extra destinations, batch size, metadata settings, reorg handling, distance-from-tip, notification email, and other configuration options without needing to delete and recreate the stream.

Key capabilities:

  • Change webhook URL or destination credentials
  • Update filter functions on-the-fly
  • Switch compression settings
  • Adjust retry parameters
  • Add or modify extra destinations
  • Update batch size and elastic batching settings

note

The network, dataset, and region fields cannot be changed after stream creation. To change these, create a new stream instead.

Endpoint

Send a PATCH request to update an existing stream.

PATCH https://api.quicknode.com/streams/rest/v1/streams/{id}

Path Parameters

ParameterTypeRequiredDescription
idstringYesThe unique identifier (UUID) of the stream to update

Request Parameters

All body parameters are optional. Only include the fields you want to update.

ParameterTypeRequiredDescription
namestringNoA new name for your stream
filter_functionstringNoBase64-encoded JavaScript filter function
start_rangeintegerNoStarting block number
end_rangeintegerNoEnding block number
dataset_batch_sizeintegerNoNumber of blocks to batch per delivery
statusstringNoactive or paused
elastic_batch_enabledbooleanNoAuto-adjust batch size to 1 near chain tip
fix_block_reorgsintegerNo1 to enable reorg detection
keep_distance_from_tipintegerNoBlocks to stay behind chain tip
notification_emailstringNoEmail for stream termination alerts
destinationstringNowebhook, s3, azure, or postgres
destination_attributesobjectNoConfiguration for selected destination
extra_destinationsarrayNoAdditional destinations

Destination Attributes

When updating destination attributes, the configuration options vary based on the selected destination type. Select a tab below to view the attributes for each destination.

ParameterTypeRequiredDescription
urlstringYesWebhook endpoint URL
compressionstringYesnone or gzip
max_retryintegerYesMax retry attempts
retry_interval_secintegerYesSeconds between retries
post_timeout_secintegerYesRequest timeout in seconds
headersobjectNoCustom headers as key-value pairs

Example Request

curl -X PATCH "https://api.quicknode.com/streams/rest/v1/streams/f6ad6459-b5ad-4183-b370-1c1388e47e83" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"name": "Updated Stream Name",
"destination_attributes": {
"url": "https://new-webhook.site",
"compression": "gzip",
"max_retry": 5,
"retry_interval_sec": 2,
"post_timeout_sec": 15
}
}'

Response

On success, the API returns the updated stream object with all configuration and status information.

{
"id": "f6ad6459-b5ad-4183-b370-1c1388e47e83",
"name": "Updated Stream Name",
"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://new-webhook.site",
"compression": "gzip",
"max_retry": 5,
"retry_interval_sec": 2,
"post_timeout_sec": 15,
"security_token": "qn_xxxxxxxxxxxxxx"
},
"status": "active",
"sequence": 150,
"current_hash": "0x1234567890abcdef...",
"notification_email": null,
"extra_destinations": [],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T14:00:00Z"
}

Response Fields

FieldTypeDescription
idstringUnique stream identifier (UUID)
namestringStream name
networkstringBlockchain network
datasetstringDataset type
regionstringDeployment region
filter_functionstringBase64-encoded filter function (if configured)
start_rangeintegerStarting block number
end_rangeintegerEnding block number (null for continuous)
dataset_batch_sizeintegerNumber of blocks per batch
elastic_batch_enabledbooleanWhether elastic batching is enabled
fix_block_reorgsintegerReorg detection setting (1 = enabled)
keep_distance_from_tipintegerBlocks to stay behind chain tip
destinationstringDestination type (webhook, s3, azure, postgres)
destination_attributesobjectDestination configuration (varies by type)
statusstringStream status (active or paused)
sequenceintegerLast delivered block from the data range
current_hashstringHash of the current block being processed
notification_emailstringEmail for stream termination alerts
extra_destinationsarrayAdditional destinations (if configured)
created_atstringStream creation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)
note

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

Share this doc