Overview
Send data to HTTP endpoints as JSON payloads over HTTPPOST. The sink guarantees at-least-once delivery and retries transient failures with exponential backoff, so your endpoint only needs to return a 2xx status code to acknowledge the batch.
Configuration
Parameters
string
required
Must be
webhook.string
required
Name of the transform or source to read data from.
string
required
Fully-qualified HTTP(S) endpoint URL to send data to (for example,
https://api.example.com/endpoint). The sink sends POST requests to this URL.string
Name of a Goldsky
httpauth secret. Both the header name and value stored in
the secret are injected into every outgoing request. See Secret creation
below.boolean
default:"false"
If
true, each row is sent as its own request with a single JSON object body.
If false (default), rows are batched and sent as a JSON array body.object
Additional HTTP headers to include with each request.
Content-Type: application/json
is set automatically if you donβt specify one. You cannot set the same header here
that secret_name provides β pick one or the other.string
Column that uniquely identifies each row. Used for checkpointing and side-output
tracking. Inherited from the upstream source or transform when omitted.
integer
default:"1000"
Runtime-level parameter β maximum number of rows the Turbo runtime buffers before flushing a batch. When
one_row_per_request: false, this is also the maximum number of rows included in a single JSON-array request. See Batching on the overview page.string
default:"1s"
Runtime-level parameter β maximum time the Turbo runtime waits before flushing a batch, even if
batch_size has not been reached. Accepts humantime durations such as 500ms, 1s, or 30s. See Batching.Request Format
Each request is an HTTPPOST with Content-Type: application/json.
Single row (one_row_per_request: true):
one_row_per_request: false):
Secret creation
To securely authenticate with your webhook endpoint, create anhttpauth secret using the Goldsky CLI:
httpauth as the secret type and follow the prompts to provide a header name and value. For example, you might set the header name to Authorization and the value to Bearer <your-token>.
Secret names can only contain alphanumeric characters, underscores (
_), and hyphens (-).headers alongside secret_name is a configuration error β remove one.
Example: Send High-Value Transfers to API
Delivery and retries
- At-least-once delivery. Your endpoint may receive duplicates after retries; use
primary_keyor an idempotency key on the receiving side if duplicates are a problem. - Retriable responses β network errors, request timeouts,
408 Request Timeout,429 Too Many Requests, and any5xxβ are retried indefinitely with exponential backoff. - Non-retriable responses (other
4xxerrors) fail the pipeline immediately. - Backpressure. The pipeline paces delivery to your endpointβs responsiveness, so a slow receiver slows the pipeline rather than dropping data.