The parts
The Proxy, Unified API and MCP run on a globally distributed edge network, so a request is handled close to where it starts, with no central region to route through.
Background jobs deliver webhooks to your backend, aggregate usage for billing, and delete request logs once they pass your plan’s retention window.
Connecting an account
Before you can make requests, a user has to connect an account. This happens once per account:- Your frontend sends the user to
auth.bundleup.iowith your client ID and the integration to connect. - BundleUp sends the user to the provider’s consent screen, using your OAuth app.
- The provider redirects back to BundleUp with an authorization code. BundleUp exchanges it for tokens, encrypts them, and creates a connection.
- BundleUp redirects the user back to your app with a one-time
code. - Your backend exchanges that
codefor theconnection_idusing your API key, and stores it.
What happens to a request
Every request to the Proxy, Unified API or MCP goes through the same steps before it reaches the provider:- Authenticate. The API key is hashed and looked up. An unknown key is rejected with
401. - Resolve the connection. The connection ID must exist and belong to the same workspace as the API key. If it doesn’t, the request is rejected with
400 connection_invalid(404on the Unified API). - Rate limit. Each connection can make 100 requests per 60 seconds. Over that, the request is rejected with
429and nothing is sent to the provider. - Make sure the token is usable. If the access token has expired, or will expire within 60 seconds, it is refreshed before the request continues. If it is only due for a refresh, the refresh runs in the background and the current token is used, so the request doesn’t wait.
- Decrypt. The token is decrypted in memory for this request only.
- Forward. The request goes to the provider with the user’s token in the
Authorizationheader. On the Proxy and Unified API, failed idempotent requests are retried. - Respond and log. The provider’s response is returned to you. The log entry (status, duration, connection, URL) is written after the response, so logging adds no latency.
What BundleUp doesn’t do
- It doesn’t store request or response bodies. Logs record metadata only.
- It doesn’t change the provider’s response on the Proxy or MCP. You get exactly what the provider returned. The Unified API reshapes successful responses into its normalized format, and passes errors through unchanged.
- It doesn’t queue or schedule your requests. Each call is executed when you make it.
Next steps
Proxy vs Unified API vs MCP
Pick the right way to call a connected account.
Quickstart
Connect an account and make your first request.

