Create a BTC/ETH Price & USD Exchange Rate API with CoinGecko & ExchangeRate-API

🌐 Crypto + FX Micro-API (Webhook JSON)

πŸ“Œ Overview Spin up a tiny, serverless-style API from n8n that returns BTC/ETH prices & 24h changes plus USDβ†’EUR and USDβ†’NGN from public, no-key data sources. Ideal for dashboards, low-code apps, or internal tools that just need a simple JSON feed.

βš™οΈ How it works Webhook (GET /crypto-fx) β€” entrypoint for your client/app.
HTTP: ExchangeRate-API β€” USD-base FX rates (no API key).
HTTP: CoinGecko β€” BTC/ETH prices + 24h % change (no API key).
Merge β€” combines payloads.
Code (v2) β€” shapes a clean JSON: btc.price, btc.change_24h
eth.price, eth.change_24h
usd_eur, usd_ngn, ts (ISO timestamp) Respond to Webhook β€” returns the JSON with HTTP 200.

πŸ›  Setup Guide

  1. Webhook path & URL In the Webhook node, confirm HTTP Method = GET and Path = crypto-fx. Use the Test URL while building; switch to Production URL for live usage.
  2. Test the endpoint Curl: curl -s https://<your-n8n-host>/webhook/crypto-fx Browser / fetch(): fetch('https://<your-n8n-host>/webhook/crypto-fx') .then(r => r.json()) .then(data => console.log(data))
  3. Response mapping (already wired) Respond to Webhook β†’ Response Body is set to {{$json}}. The Code node outputs the exact JSON structure shown above, so no extra mapping is required.

πŸ” Security (recommended) Add a Webhook Secret (query header check in Code node) or IP allowlist via your reverse proxy. If embedding in public sites, proxy through your backend and apply rate-limit/cache headers there.

πŸš€ Usage ideas Frontend dashboards (Chart.js, ECharts). HomeAssistant / Node-RED info panels. Google Apps Script to store the JSON into Sheets on a timer.

πŸŽ› Customization More coins: extend CoinGecko ids= (e.g., bitcoin,ethereum,solana). More FX: read additional codes from fx.rates and add to the payload. Timestamps: convert ts to your preferred timezone on client side. CORS: if calling from browsers, add CORS headers in Respond (options β†’ headers).

🧩 Troubleshooting Empty/partial JSON: run the two HTTP nodes once to verify responses. 429s / rate limiting: add a short Wait node or cache outputs. Wrong URL: ensure you’re using Production URL outside the n8n editor. Security errors: if you add a secret, return 401 when it’s missing/invalid.

0
Downloads
2
Views
7.41
Quality Score
beginner
Complexity
Author:David Olusola(View Original β†’)
Created:9/10/2025
Updated:11/17/2025

πŸ”’ Please log in to import templates to n8n and favorite templates

Workflow Visualization

Loading...

Preparing workflow renderer

Comments (0)

Login to post comments