Automation & API · Tell your stack
Webhooks
Signed deliveries of your library, on your schedule. The Components → Webhook connector posts your parts as JSON batches, signed to the Standard Webhooks spec and paced to what your receiver can take. Trigger them by hand or by cron.
POST /hooks/components HTTP/1.1
host: erp.internal.example
content-type: application/json
webhook-id: msg_2x9Kq3pP7vQ1
webhook-timestamp: 1781078400
webhook-signature: v1,K5oZ8f0u3pX2mN7qL1sR4tWyB6cE9aH0=
{
"entities": [
{
"id": "CMP-1044",
"name": "RC0402FR-0710KL",
"ipn": "RES-0402-10K",
"status": "active",
"tags": ["passives"],
"parameters": [{ "type": "Resistance", "value": "10K" }],
"mpns": [{ "manufacturer": "Yageo", "partNumber": "RC0402FR-0710KL" }],
"symbols": [...], "footprints": [...], "attachments": [...]
},
… up to 250 entities per delivery
]
}A single delivery, as it leaves the connector. The signature values shown are illustrative.
Batching
Two hundred and fifty at a time
A push walks every non-deleted component in the library and ships them in batches of up to 250 entities per POST. A thousand-part library lands in five requests, and your receiver can upsert each batch keyed by id or IPN.
Push now
1,038 components
- POST 1/5 250 entities 202
- POST 2/5 250 entities 202
- POST 3/5 250 entities 202
- POST 4/5 250 entities 202
- POST 5/5 38 entities 202
One run walks every non-deleted component; nothing for the receiver to page through.
Signing
Verified with a library you already have
Every delivery carries webhook-id, webhook-timestamp and webhook-signature headers: an HMAC-SHA256 over the exact bytes sent, per the Standard Webhooks spec. The spec is open, so verification is whatever standardwebhooks package your stack already uses, pointed at the raw request body.
Don't re-serialize the JSON before verifying; the signature covers the bytes as they arrived.
import { Webhook } from "standardwebhooks";
const wh = new Webhook(process.env.WHSEC); // whsec_…
const payload = wh.verify(rawBody, req.headers);
// throws on a bad signature or a stale timestampPacing
Polite to rate-limited receivers
Outbound runs go through a throttle with configurable requests per second and concurrency. A bulk push against an ERP that allows four requests a second takes a little longer, and works the first time.
Outbound throttle
A rate-limited endpoint is respected; batches arrive at the pace you set.
Trigger
By hand, or on the clock
Push now runs a full delivery of the library the moment you click it. For steady sync, attach a cron schedule instead and the same run repeats unattended, so the downstream copy stays a few hours old at most, on a cadence you chose.
Walks the whole library in one run; handy after a bulk edit, or while you test against a Svix Play URL.
0 */6 * * *: every 6 hours, the same full walk, unattended.
Your policy
Retries, written by you
The connector is ordinary code you can read and edit, so retry and backoff behaviour is yours to define. Helpers like sendWebhook handle the delivery itself, so a policy runs to a few lines.
export async function push(entities, config, helpers) {
for (let attempt = 1, delay = 1000; ; attempt++, delay *= 2) {
const res = await helpers.sendWebhook(config.url, entities);
if (res.ok) return;
if (attempt === 3) throw new Error(`gave up: ${res.status}`);
await new Promise((r) => setTimeout(r, delay));
}
}Outbound only: Sideband is not a webhook broker. No inbound event subscriptions, no per-event triggers. To pull data in, use an inbound connector.
How it works
From zero to in-sync in three steps
Point it at a URL
Give the Components → Webhook connector your endpoint and a whsec_… signing secret. A Svix Play URL is a fine first receiver while you watch deliveries land.
Verify the signature
On your side, check the raw body against the webhook-id, webhook-timestamp and webhook-signature headers using any Standard Webhooks library.
Push now or schedule
Run a full walk of the library by hand, or attach a cron schedule and leave it to run on its own cadence.
Explore related features
Put every part on one data model
Download Sideband for Windows and give your whole team one source of truth. Free 30-day trial — no card required.
Stable · Windows · free
Webhooks
— signal not yet locked —
We're still tuning this one in. Drop a reaction to boost the signal — the pages you react to most are the ones we finish first.
…or kill time while you wait:
Phasor toy
3.00 : 2.00 · locked