Webflow pages can't directly access certain APIs due to CORS (Cross-Origin Resource Sharing) restrictions. APIs that don’t allow client-side access from other origins will block your Webflow-hosted site from fetching data directly in the browser.
Here’s how to work around that:
1. Use a Server-Side Proxy
- Deploy a small proxy server on a service like Cloudflare Workers, Vercel, or Netlify Functions.
- Your server acts as a middleman: it receives the request from your Webflow site, makes the API call server-side, and returns the response back without CORS issues.
- Make sure to handle secrets/tokens securely and limit usage to prevent API abuse.
2. Leverage Integromat (Make), Zapier, or Pipedream
- These platforms allow API integrations and workflows that can fetch external data and send it to Webflow (e.g., via Webflow CMS API).
- This method avoids client-side CORS entirely because data is processed and injected on the backend.
- For dynamic output, store data in Webflow CMS and display it using collection lists.
3. Use Google Sheets as a Middle Layer
- If the API can push to or be polled by Zapier/Make, you can store results in a connected Google Sheet, which your Webflow site accesses (using Sheet2API, NoCodeAPI, etc.).
- This adds latency but simplifies authentication and CORS management.
4. Check JSONP (If the API Supports It)
- Some older APIs use JSONP to bypass CORS by loading data as a
<script>
instead of fetch
. - JSONP support is rare and insecure, but may work for read-only public data.
Summary
To display API data on a Webflow site despite CORS blocking, route the API call through a backend proxy or no-code integration tool, then feed the result to your site via CMS or client-side fetch from the proxy. This avoids CORS restrictions and lets you control authentication securely.