Documentation Index
Fetch the complete documentation index at: https://docs.goldsky.com/llms.txt
Use this file to discover all available pages before exploring further.
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
Must be
webhook.Name of the transform or source to read data from.
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.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.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.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.Column that uniquely identifies each row. Used for checkpointing and side-output
tracking. Inherited from the upstream source or transform when omitted.
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.