Skip to content
    ↑↓ to choose · Enter to open

    · 14 min read

    XE Currency Converter Scraper: Up to 1,000 Free Results a Month (2026)

    By CrawlerBros Engineering Team

    Exchange rates cost $5.00 per 1,000 results on the free plan, extracting mid-market rates across 180+ global fiat currencies alongside crypto assets. A single conversion query returns 36 fields, including rolling 7-day, 30-day, and 90-day volatility statistics without requiring API keys or active sessions. The platform free tier covers initial testing with 1,000 results each month. This Actor fits financial operations teams building price calculators and historical transaction ledgers. It is not suitable for order routing desks requiring sub-second order book depth, execution spreads, or tick-by-tick market microstructures.

    Try it: open XE Currency Converter Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try XE Currency Converter Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of XE Currency Converter Scraper a month, before run-start charges and platform usage.

    XE Currency Converter Scraper was last updated on 2026-08-10. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 686,269 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run XE Currency Converter Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The primary cost driver is the number of records written to the dataset, dictated directly by maxItems, the length of toCurrencies, or dates when querying rate tables. To evaluate data fitness at minimal cost, run mode=convert with a single currency pair before pulling full tables.

    How do you run XE Currency Converter Scraper from the API?

    The schema marks 1 of its 13 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for XE Currency Converter Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~xe-currency-converter-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"convert"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "convert"
    }
    
    run = client.actor("crawlerbros~xe-currency-converter-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "convert"
    }
    
    const run = await client.actor('crawlerbros~xe-currency-converter-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which XE Currency Converter Scraper inputs matter, and which can you skip?

    The input schema exposes 13 controls, requiring only mode to begin. The essential settings to focus on are mode, fromCurrency, and either toCurrency or targetCurrencies depending on the extraction type. Leave includeObsoleteCurrencies disabled and keep includeExtendedInfo off during high-frequency polls to avoid unnecessary encyclopedia lookups.

    • mode (string): What to fetch. Default: "convert".
    • amount (number): Amount of fromCurrency to convert. Default: 1.
    • fromCurrency (string): Source currency (mode=convert) or base currency for the rates table (mode=ratesTable). Default: "USD".
    • toCurrency (string): Target currency to convert into. Default: "EUR".
    • toCurrencies (array): Convert the amount into multiple currencies at once instead of just 'To currency' (mode=convert). Emits one conversion record per currency, computed from the same live rates snapshot. Leave empty to use only the single 'To currency' field. Default: [].
    • date (string): YYYY-MM-DD. Leave empty for the latest daily rates. XE has daily rate history back to the mid-1990s; today's date and future dates are rejected. Ignored when 'Historical dates (batch)' is set.
    • dates (array): Fetch the rates table for multiple historical dates in one run (e.g. to build a trend series), instead of a single 'Historical date'. Each entry must be YYYY-MM-DD; invalid or duplicate entries are dropped. Overrides 'Historical date' when non-empty. Up to 20 dates per run. Default: [].
    • targetCurrencies (array): Restrict mode=ratesTable / mode=currencyInfo output to these currency codes. Empty = all currencies. Default: [].
    • sortBy (string): How to order rows in the rates table. Default: "currencyCodeAsc".
    • includeCryptoCurrencies (boolean): Include crypto assets (BTC, ETH, ...) in mode=ratesTable / mode=currencyInfo output. Default: true.
    • includeObsoleteCurrencies (boolean): Include retired currencies (e.g. pre-Euro DEM, FRF) in mode=ratesTable / mode=currencyInfo output. Useful for historical dates. Default: false.
    • includeExtendedInfo (boolean): Fetch additional real-world details from xe.com's currency encyclopedia for each currency: country, symbol, central bank name/rate, inflation rate, nicknames, countries that use it, and a description. Adds one extra request per currency, so disable for faster runs if you only need the basic code/name/flags. Default: true.

    The other 1 controls, with their defaults, are listed in the input schema on XE Currency Converter Scraper on Apify.

    Fixed-choice controls: mode accepts convert (Convert an amount between two currencies), ratesTable (Full exchange-rate table for a base currency (live or historical)), currencyInfo (Currency metadata lookup (name, crypto flag, obsolete flag)); fromCurrency accepts 219 values (default USD), including USD (US Dollar), ADA (Cardano), AED (Emirati Dirham), AFN (Afghan Afghani); toCurrency accepts 219 values (default EUR), including EUR (Euro), ADA (Cardano), AED (Emirati Dirham), AFN (Afghan Afghani); sortBy accepts currencyCodeAsc (Currency code (A-Z)), rateAsc (Rate (low to high)), rateDesc (Rate (high to low)).

    What does XE Currency Converter Scraper return?

    Output records supply clean mid-market conversions, inverse rates, and historical volatility trends. They do not contain executable broker spreads, buy-side order depth, or tick-level order book records.

    mode=convert` (conversion record)

    • fromCurrency, fromCurrencyName, toCurrency, toCurrencyName
    • amount, convertedAmount, exchangeRate, inverseRate
    • timestamp - when the underlying rate was captured
    • rate7dHigh, rate7dLow, rate7dAverage, rate7dVolatilityPercent, rate7dStandardDeviation, rate7dDataPoints, rate7dHighTimestamp, rate7dLowTimestamp - 7-day rate history stats for this pair
    • rate30dHigh, rate30dLow, rate30dAverage, rate30dVolatilityPercent, rate30dStandardDeviation, rate30dDataPoints, rate30dHighTimestamp, rate30dLowTimestamp - 30-day rate history stats
    • rate90dHigh, rate90dLow, rate90dAverage, rate90dVolatilityPercent, rate90dStandardDeviation, rate90dDataPoints, rate90dHighTimestamp, rate90dLowTimestamp - 90-day rate history stats
    • sourceUrl - the xe.com converter page for this pair
    • recordType: "conversion", scrapedAt

    mode=ratesTable` (one record per target currency)

    • baseCurrency, baseCurrencyName, targetCurrency, targetCurrencyName
    • rate, inverseRate
    • isCrypto, isObsolete (only present when true)
    • date (historical lookups only), timestamp
    • liveTrend, liveRateChangeValue, liveRateChangePercent - today's live up/down movement, only for live (non-historical) rows and only for the handful of major pairs xe.com tracks on its live ticker (e.g. EUR/USD, USD/JPY, GBP/USD, USD/CHF, USD/CAD, EUR/JPY, AUD/USD, GBP/EUR)
    • centralBankInterestRatePercent - the target currency's current central-bank benchmark interest rate, only for live (non-historical) rows and only for the handful of major currencies xe.com publishes this for (USD, EUR, GBP, JPY, CHF, CAD, AUD, NZD)
    • sourceUrl - xe.com's currency encyclopedia page for the target currency
    • recordType: "rate", scrapedAt

    mode=currencyInfo` (currency metadata record)

    • currencyCode, name, namePlural
    • isCrypto, isObsolete, isSellable, isBuyable
    • sourceUrl - xe.com's currency encyclopedia page, or its converter page as a fallback (only ever a link that's been checked to actually resolve; omitted entirely for the handful of currencies XE no longer publishes any page for, e.g. sanctioned/discontinued ones)
    • country - the country/region primarily associated with this currency
    • currencySymbol, minorUnitSymbol, minorUnitLabel - e.g. $, ¢, 1/100 = cent
    • centralBankName, centralBankUrl - the issuing central bank
    • centralBankRatePercent, inflationRatePercent - current benchmark interest rate and inflation rate, as published by xe.com
    • nicknames - informal names for the currency (e.g. "buck", "greenback")
    • usedInCountries - countries/territories that use this currency
    • coinDenominations, banknoteDenominations - coins/banknotes in circulation, formatted with the currency's own symbol (e.g. ["1¢", "5¢", ..., "50¢ (rare)"], ["$1", "$5", ..., "$100"]); omitted for currencies with no physical coins/notes (e.g. crypto)
    • shortDescription - a short one-line summary xe.com publishes for a subset of currencies (mostly crypto, e.g. "Ethereum is a decentralized open-source blockchain system..."); omitted when xe.com doesn't publish one
    • description - xe.com's currency-encyclopedia write-up (history, usage, notable facts), plain text
    • isTradable
    • replacedByCurrency, replacedByCurrencyName - for retired currencies, the successor currency xe.com itself names (e.g. DEM -> EUR), when published
    • recordType: "currencyInfo", scrapedAt

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open XE Currency Converter Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Run mode set to currencyInfo with targetCurrencies populated by your target codes to inspect active names, symbols, and isCrypto flags before calculating conversions.
    2. Submit a single mode set to convert request using fromCurrency USD and toCurrency EUR with amount set to 1 to confirm the live quote and 7-day rolling statistics return.
    3. Verify the convertedAmount and exchangeRate values are positive floats before connecting downstream billing scripts.
    4. Switch mode to convert with toCurrencies specified to fetch an identical-timestamp basket across multiple targets in one run.
    5. Switch mode to ratesTable with a base fromCurrency and maxItems configured to pull broader mid-market tables.
    6. Pass a historical date formatted as YYYY-MM-DD or up to 20 historical entries in dates to verify that older rate tables load successfully without throwing missing table errors.

    How do you apply it? Three worked playbooks

    These are XE Currency Converter Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Finance apps

    Outcome: Build a live currency converter or price checker

    Configure: mode=convert, fromCurrency="USD", toCurrency="EUR", toCurrencies=["GBP","JPY","CAD"], amount=100

    Working method: Start with a single target currency to confirm the schema shape. Expand the toCurrencies list to include every destination currency your app displays, ensuring all conversions derive from the same instantaneous market snapshot.

    Deliverable: A dataset containing conversion records with timestamped exchange rates, inverse rates, and 7/30/90-day rolling metrics.

    Stop condition: The exchangeRate value arrives null or fails to update across scheduled intervals.

    Use case 2: Accounting / invoicing

    Outcome: Convert transaction amounts for reporting

    Configure: mode=ratesTable, fromCurrency="EUR", targetCurrencies=["USD","GBP"], dates=["2023-12-31","2024-01-31"], maxItems=100

    Working method: Provide historical month-end closing dates in the dates array. Compare the returned baseCurrency and targetCurrency rows against external invoice books to ensure consistent audit references across multi-currency ledgers.

    Deliverable: A structured table of closing exchange rates mapped per requested date and currency pair.

    Stop condition: The run aborts because a date earlier than supported archives or a future date was passed.

    Use case 3: Crypto dashboards

    Outcome: Track crypto-to-fiat rates alongside traditional currencies

    Configure: mode=ratesTable, fromCurrency="USD", includeCryptoCurrencies=true, targetCurrencies=["BTC","ETH","EUR","GBP"], maxItems=50

    Working method: Begin by polling a blended list of crypto tokens and G10 fiat codes. Check that isCrypto evaluates to true on token rows, and evaluate liveTrend alongside liveRateChangePercent where supported.

    Deliverable: A dual-market rate dataset reporting both token valuations and conventional foreign exchange benchmarks against USD.

    Stop condition: The isCrypto flag is absent on crypto rows or target fiat rates fail to emit.

    What breaks, and how do you design around it?

    Rate tables for dates prior to 1998 frequently drop currencies or return empty responses. When building long-term trend lines, query modern date ranges and trap non-existent tables early in your pipeline. For retired currencies, read the metadata via currencyInfo mode rather than expecting full rows in historical ratesTable runs.

    When should you not use XE Currency Converter Scraper?

    Do not use this Actor if your integration requires institutional execution streaming, millisecond arbitrage feeds, or deep liquidity depths. It reads published mid-market web snapshots, not a direct fix protocol engine. If you require specialized multi-exchange crypto order book feeds with full OHLCV candlestick series, run CryptoCompare Market Data Scraper instead, which provides exchange-level volume and trading bars tailored for crypto assets.

    What should you check before trusting the output?

    • Verify that exchangeRate and convertedAmount are strictly greater than 0 on every mode=convert run.
    • Confirm timestamp parses as a valid ISO date and reflects fresh data rather than stale cache records.
    • Check that rate7dAverage, rate30dAverage, and rate90dAverage are populated whenever fromCurrency and toCurrency differ.
    • Halt execution if dates array contains entries older than 1998 or any future dates that trigger execution errors.
    • Ensure mode=ratesTable output rows match targetCurrencies array lengths when filtering is applied.

    None of this proves a record is correct. It gives a scheduled XE Currency Converter Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the cost to run 10,000 currency conversions?

    At the free-plan price of $0.005 per result, 10,000 records equate to $50.00 in dataset result charges. Apify also bills the underlying platform compute time consumed by the run on top of that result total, while paid Apify tiers provide lower per-result rates.

    How far back does historical exchange rate coverage go?

    Daily rate tables reliably span back to 1998 across modern currencies, with some records extending to the mid-1990s. Earlier years cover fewer currency codes, and future or today's dates are rejected with input errors.

    Can I convert one base currency against multiple targets simultaneously?

    Yes. When running mode set to convert, populate the toCurrencies array with your target currency codes. The scraper outputs one item per pair, calculated using the identical mid-market rate snapshot.

    Why are some rolling statistical fields missing from the convert output?

    The rolling statistics like rate7dAverage, rate30dHigh, and rate90dVolatilityPercent only appear when fromCurrency and toCurrency differ, and only if XE provides statistical aggregations for that specific pair.

    Does this scraper require an official XE API key or proxies?

    No. The scraper runs against public endpoints on xe.com without requiring external API keys, user login credentials, cookies, or custom proxy setups.

    Where to go next

    When you are ready to run it, open XE Currency Converter Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the XE Currency Converter Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    • URL to BibTeX Converter: Convert any URL (academic papers, articles, books, web pages) to properly formatted BibTeX citations.
    • CryptoCompare Market Data Scraper: Scrape live and historical cryptocurrency market data from CryptoCompare - top coins by market cap/volume, historical OHLCV price series, exchange rankings, and coin metadata.
    • UK Parliament Scraper: Scrape UK Parliament open data - search MPs and Lords, get member profiles and careers, browse public bills, and pull House of Commons voting divisions.
    • IPO Calendar Scraper: Track upcoming and recent IPOs from stockanalysis.com - get IPO dates, offer prices, amounts raised, exchange listings, company details, and performance data for new stock offerings.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-28.

    • Actor last updated by its maintainers on 2026-08-10.

    • Run outcome figures cover the 30 day public window ending 2026-09-28.

    • XE Currency Converter Scraper on Apify

    Featured actors

    XE Currency Converter Scraper

    Convert currency amounts, pull live or historical exchange-rate tables for 180+ currencies, and look up currency metadata - powered by xe.com's public currency data. No login, API key, or proxy required.

    Run on Apify ↗