No-code

CORS proxy for Webflow, Framer, and Bubble custom code

A page builder gives you no server to put a proxy on. This post covers which parts of Webflow, Framer, and Bubble run into CORS at all, and how to route those calls through a hosted proxy without leaving the platform.

· ~4 min read · Updated Oct 13, 2026

First: figure out if you actually have a CORS problem

CORS is enforced by the browser, on JavaScript running in the browser. Not every feature in these tools runs client-side, so not everything hits it:

If the console says "blocked by CORS policy," you're in the client-side case. If a call fails with no CORS message in the console, the problem is something else, so check the actual response first.

The fix: one fetch through the proxy

Wrap the target URL and send it to the proxy with your key. The same snippet works on all three platforms:

const target = encodeURIComponent('https://api.example.com/data');
fetch(`https://api.corsproxy.dev/proxy?url=${target}&key=YOUR_CORSPROXY_KEY`)
  .then(r => r.json())
  .then(data => {
    // use data here: update an element, a React state, or a Bubble state
  });

Where to put it:

Don't put third-party API keys in the browser

No-code custom code is visible in page source, so never hardcode a third-party secret (an OpenAI key, a private API token) into a Webflow or Framer embed. Use managed upstream headers instead: store the credential once on your corsproxy.dev API key, and the browser only sees your corsproxy.dev key.

That key is still public, so lock it down:

Try it

Create a free key and paste it into the snippet above.