The social media SDK
for Node.js

One typed client to publish, schedule and track posts on every network. Retries, pagination, uploads and webhooks handled for you.

$ npm install bulkit
Why the SDK

Less glue code, more shipping

The plumbing every API client ends up rewriting, already done.

Fully typed

Your editor knows the API

Generated from the OpenAPI spec: every method, parameter and webhook event is typed and documented, so autocomplete tells you that posts.create() takes several channels in one call.

Publishing

One call, a native post everywhere

Pass several channels to one posts.create() and each network gets the post in its own format, with its own text if you want it.

Retries

Retries that never post twice

Timeouts, rate limits and 5xx responses are retried with backoff, and every write carries an Idempotency-Key the SDK reuses across its own retries.

Webhooks

Know when it's live

verifyWebhook() checks the x-bulkit-signature header and hands you a typed event, so you hear about every published or failed post without polling.

Channels

Every network, one import

Add a channel to the channels array and the same call reaches it. One schema for all of them.

FAQ

Node.js SDK FAQ

  • Which Node.js versions does it support?

    Node.js 22 or later. Other runtimes with fetch and Web Crypto, like Bun, Deno and Cloudflare Workers, should work too.

  • ESM or CommonJS?

    Both. The package ships ESM and CommonJS builds with types for each, and has zero runtime dependencies.

  • Can I use it in the browser?

    Not by default. Your API key is a secret, so the client refuses to run in a browser where every visitor could read it. Call Bulkit from your server; dangerouslyAllowBrowser exists for cases like an internal tool.

  • Can a retry publish the same post twice?

    No. Every POST and PUT is sent with an Idempotency-Key that the SDK reuses across its own retries. Pass your own idempotencyKey to stay safe across process restarts too.

  • Can I try it without posting anything?

    Yes. A test key (bk_test_…) checks and saves everything like a live key, but never posts and is never billed. bulkit.isTestMode tells you which kind a client holds.

  • Does the SDK cost extra?

    No. SDK calls are billed like any other action, included in your 500 monthly actions, then $0.01 each. The package itself is MIT-licensed.

One install away from every network

$4.99/mo, 500 actions included. The SDK is free on every plan.