Skip to main content
POST
cURL

Destinations

There are currently three flavors of destinations available via self-service APIs: Webhooks, WebSockets, and Postgres. There are 16 total that are currently supported by Indexing Co generally though - reach out if you need something else!

Webhooks

Here’s an example payload for creating a pipeline that delivers to a webhook:

Signing deliveries (HMAC)

For sensitive payloads you can have each delivery signed so your endpoint can verify it came from us, was not modified in transit, and is not a replay. Add a signing block to the webhook connection:
header and tsHeader are optional and default to X-Indexing-Signature and X-Indexing-Timestamp. Each delivery then carries:
HeaderValue
X-Indexing-TimestampUnix time in seconds when the request was signed
X-Indexing-Signaturesha256=<hex>, where <hex> = HMAC_SHA256(secret, "<timestamp>.<body>")
To verify, recompute the HMAC over "<timestamp>.<rawBody>" and compare it to X-Indexing-Signature in constant time:
Verify against the raw request body bytes, not a re-serialized JSON object — whitespace or key-ordering differences will break the comparison. In Express, capture the raw body with express.json({ verify: (req, _res, buf) => { req.rawBody = buf.toString('utf8'); } }).

WebSockets

Here’s an example payload for creating a pipeline that delivers to a websocket:

Postgres

Here’s an example payload for creating a pipeline that delivers to a Postgres database:
Make sure your database table is already setup! Importantly, this also includes ensuring that there’s a unique / primary key index on the table matching the provided uniqueKeys in the pipeline.

Authorizations

X-API-KEY
string
header
required

Body

application/json

Pipeline to save

name
string
required
transformation
string
required
filter
string
required
filterKeys
string[]
required
networks
string[]
required
delivery
object
required
enabled
boolean

Response

success

message
string
required