AutomationFlowsWeb Scraping › Create a Btc/eth Price & Usd Exchange Rate API with Coingecko & Exchangerate-api

Create a Btc/eth Price & Usd Exchange Rate API with Coingecko & Exchangerate-api

ByDavid Olusola @dae221 on n8n.io

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. Webhook (GET /crypto-fx) — entrypoint for…

Webhook trigger★★★★☆ complexity7 nodesHTTP Request
Web Scraping Trigger: Webhook Nodes: 7 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #8389 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "f43de1da-85c9-4e07-87b2-e3d54aba8cfd",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -704,
        -16
      ],
      "parameters": {
        "path": "crypto-fx",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    },
    {
      "id": "53645dd6-4117-4e41-b958-5d3bfc022f6a",
      "name": "Get Fiat Exchange Rates",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -496,
        -80
      ],
      "parameters": {
        "url": "https://api.exchangerate-api.com/v4/latest/USD",
        "options": {}
      },
      "typeVersion": 4.1
    },
    {
      "id": "9d0c77d1-67bc-4030-93d2-75ca981bb504",
      "name": "Get Crypto Prices",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -496,
        80
      ],
      "parameters": {
        "url": "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd&include_24hr_change=true",
        "options": {}
      },
      "typeVersion": 4.1
    },
    {
      "id": "9bd74632-a79c-4076-b75d-2a7550325356",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        -304,
        0
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "89163b24-4f91-4a12-b260-d00b47849a73",
      "name": "Build JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        -96,
        0
      ],
      "parameters": {
        "jsCode": "let fx,cg;for(const it of $input.all()){ if(it.json?.rates) fx=it.json; if(it.json?.bitcoin) cg=it.json; }\nconst payload={\n  btc:{ price: cg?.bitcoin?.usd ?? null, change_24h: cg?.bitcoin?.usd_24h_change ?? null },\n  eth:{ price: cg?.ethereum?.usd ?? null, change_24h: cg?.ethereum?.usd_24h_change ?? null },\n  usd_eur: fx?.rates?.EUR ?? null,\n  usd_ngn: fx?.rates?.NGN ?? null,\n  ts: new Date().toISOString()\n};\nreturn [{json: payload}];"
      },
      "typeVersion": 2
    },
    {
      "id": "70a8ddb0-b644-4344-a17f-1cadbb8074e6",
      "name": "Respond",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        128,
        0
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "28ab2e99-d2cc-420c-9e5f-c73fd14639c0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        -208
      ],
      "parameters": {
        "width": 544,
        "height": 640,
        "content": "## \ud83c\udf10 Crypto + FX Micro-API (Webhook JSON)\n\n**What it does:**  \nExposes a lightweight **GET** endpoint that returns **BTC/ETH price + 24h %** and **USD\u2192EUR / USD\u2192NGN** in clean JSON.\n\n**Route:**  \n`/webhook/crypto-fx` (use n8n\u2019s Test or Production URL)\n\n**Flow:**  \n**Webhook (GET)** \u2192 ExchangeRate-API \u2192 CoinGecko \u2192 **Merge** \u2192 **Code (build JSON)** \u2192 **Respond**\n\n**Example Response:**  \n```json\n{\n  \"btc\": { \"price\": 112417, \"change_24h\": 1.22 },\n  \"eth\": { \"price\": 4334.57, \"change_24h\": 1.33 },\n  \"usd_eur\": 0.854,\n  \"usd_ngn\": 1524.54,\n  \"ts\": \"2025-09-08T08:00:00.000Z\"\n}\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Build JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Get Fiat Exchange Rates",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Crypto Prices",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build JSON": {
      "main": [
        [
          {
            "node": "Respond",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Crypto Prices": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Fiat Exchange Rates": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

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. Webhook (GET /crypto-fx) — entrypoint for…

Source: https://n8n.io/workflows/8389/ — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

BaseLinker AI Listing Automation. Uses httpRequest. Webhook trigger; 17 nodes.

HTTP Request
Web Scraping

This n8n workflow automatically tracks hotel room prices, detects price drops, and sends real-time email alerts with savings calculations. It continuously monitors multiple hotels and room types to he

HTTP Request, Email Send
Web Scraping

This workflow manually processes car photos from Google Drive, sends each image plus a studio backdrop and logo to the Google Gemini Image API for background replacement and license-plate branding, an

Google Drive, HTTP Request
Web Scraping

This workflow runs manually or daily to audit a public Etsy shop via the Etsy API, summarize active listing metrics, and store a snapshot in n8n to detect newly added or removed listings between runs.

HTTP Request
Web Scraping

3D Listing — covers (platforms split). Uses googleDrive, httpRequest. Event-driven trigger; 12 nodes.

Google Drive, HTTP Request