Access common resources across services through a normalized, provider-agnostic interface. No per-provider rewrites required.
Ask for channels, contacts or tickets by resource. Whether the user connected Slack or Discord, HubSpot or Salesforce, the response looks the same.
Unified API reference →import { BundleUp } from '@bundleup/sdk';
const bundleup = new BundleUp('Zw7Lt7...');
const unify = bundleup.unify('conn_456');
const channels = await unify.chat.channels();Every provider in a category maps to the same fields, so your database and UI only learn one model.
One metadata.next cursor, everywhere.
The resources most products integrate first.
bundleup.unify('conn_456') // common bundleup.proxy('conn_456') // specific
Same connection. Drop to the provider's raw API for anything not normalized. See Proxy →
Normalized at the edge, close to your users. No servers to run.
Slack or Discord, Jira or Linear. They authorize through BundleUp.
unify.tasks.tasks(), whatever the provider.
Same fields, same pagination. Your code has one path.
250,000 free requests every month. Unlimited connections and integrations.
We use cookies to understand how you use our site and to improve your experience. Analytics cookies are only set once you accept. See our Privacy Policy for details.