ParseForge Scrapers

Bank of Canada Valet Scraper

parseforge/bank-of-canada-valet-scraper

Developer toolsOther

Scrapes Bank of Canada Valet series observations by series code or custom code. Returns each observation as a flat row with series code, label, date, value, and source terms. Supports recent observations or date range, and exports to CSV, JSON, Excel, or XML.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
86
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Bank of Canada Valet Scraper

Scrape Bank of Canada Valet series data, from exchange rates to bond yields, with one flat row per observation. Each row includes the series code, label, date, value, and source terms. No API key or registration. Export to CSV, JSON, Excel, or XML.

The Bank of Canada's official Valet API needs you to know series codes and parse JSON responses. This Actor reads the public Valet endpoints directly, lets you pick from common series or enter any custom code, and returns every observation as a clean, flat row. It covers exchange rates, interest rates, inflation measures, and bond yields.

Who uses it What they scrape Bank of Canada Valet for
Financial analysts Pull daily exchange rates and interest rates into a spreadsheet for modeling.
Economists Track inflation measures like CPI-median and CPI-trim over a date range.
Data journalists Get clean CSV data on Canadian bond yields for charts and stories.
Developers Automate collection of any Valet series without writing API code.

What it does

This Actor collects Bank of Canada Valet series observations by series code or custom code, and returns each observation as a flat row with the series code, label, date, value, and source terms.

  • 📊 Flat observations: each date and value becomes one row, ready for CSV or Excel.
  • 🔢 Preset series: choose from 15 common series like FXUSDCAD, V39079, and CPI_MEDIAN.
  • 🧩 Custom codes: enter any Valet series code, comma separated, to pull less common data.
  • ⏱️ Time control: pull the most recent N observations or a specific date range.
  • 📦 Bulk export: collect up to 1,000,000 series per run and export to CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Bank of Canada Valet data

💱 Track exchange rates daily.

A currency analyst runs the Actor with FXUSDCAD and FXEURCAD, recent 30, to update a daily dashboard of Canadian dollar rates.

📈 Monitor inflation trends.

An economist pulls CPI_MEDIAN and CPI_TRIM from 2020 to today to compare core inflation measures for a policy report.

🏦 Analyze interest rates.

A financial researcher collects V39079 and V122530 to study the Bank of Canada's policy rate changes over a decade.

📊 Build bond yield datasets.

A data journalist scrapes BD.CDN.2YR.DQ.YLD and BD.CDN.10YR.DQ.YLD for a chart on Canadian yield curve movements.

🔧 Automate custom series collection.

A developer sets up a scheduled run with custom series codes from the Valet list to feed a machine learning model.

Why choose this scraper

What you get
No API key The Valet API is public, so you can start scraping immediately without registration.
Clean rows Each observation is a flat row with series code, label, date, value, and source terms.
Flexible time Pull the latest 10 observations or a full history from 2017 to today.
Any series Use the preset list or enter any custom Valet series code you find on the Bank of Canada site.

How it compares

This Actor offers preset series selection, custom codes, and flexible time ranges, while the competitor focuses on recent observations with labels and source terms.

Feature ParseForge Bank of Canada Series Scraper - Exchange Rate Data
Preset series selection Yes, 15 common series Not listed
Custom series codes Yes, comma separated Not listed
Date range filtering Yes, start and end date Not listed
Recent observations limit Yes, up to 10,000 Yes
Series labels and source terms Yes Yes
Maximum series per run Yes, up to 1,000,000 Not listed

Configure the run

Drive the Actor from preset series, custom series codes, or both, and control the time range with recent observations or start and end dates. The Input tab lists every parameter.

A first run with the defaults:

{
  "seriesCodes": [
    "FXUSDCAD",
    "FXEURCAD"
  ],
  "recent": 10,
  "maxItems": 10
}

A larger pull:

{
  "seriesCodes": [
    "FXUSDCAD",
    "FXEURCAD"
  ],
  "recent": 10,
  "maxItems": 200
}

Pricing

Pay-per-result: $0.011 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.10
1,000 results $11.00
10,000 results $110.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Bank of Canada Valet Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Bank of Canada Valet through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/bank-of-canada-valet-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your series codes are valid. Use the preset list or verify custom codes against the Valet series list. Also ensure your date range is correct and that Recent Observations is not set to 0.

Why is my date range ignored?

If you set Recent Observations, it takes priority over Start Date and End Date. Clear the Recent field to use the date range.

How do I get more than 10 observations per series?

Increase the Recent Observations value or set a wider date range. The default Recent is 10, but you can set it up to 10,000.

Why does my custom series code not work?

Make sure the code is exactly as listed on the Valet series page, with no spaces. Separate multiple codes with commas only.

Can I get data older than 2017?

The Valet API generally provides data from 2017 onwards. If you need older data, check the Bank of Canada website for alternative sources.

FAQ

Question Answer
What is Bank of Canada Valet? Valet is the Bank of Canada's public web service for retrieving economic and financial data series. It provides access to thousands of series, including exchange rates, interest rates, inflation, and bond yields.
Do I need an API key to use this Actor? No. The Valet API is public and does not require registration or an API key. You can start scraping immediately.
How do I find custom series codes? Visit the Bank of Canada Valet series list at https://www.bankofcanada.ca/valet/lists/series/json. You can enter any code from that list in the Custom Series Codes field, comma separated.
What is the difference between Recent Observations and Start/End Date? Recent Observations pulls only the most recent N observations per series. If you set both Recent and a date range, Recent takes priority. Leave Recent empty to use the date range or pull the full history.
What data does each row contain? Each row is one observation and includes the series code, series label, date, value, and source terms. The exact field names are shown in the sample output.
Can I scrape multiple series in one run? Yes. You can select multiple preset series and add custom codes. The Actor will collect all of them and return a combined dataset.
What is the maximum number of series I can collect? You can set Maximum series up to 1,000,000. The default is 10, which is enough for most use cases.
How far back does the data go? The Valet API provides data from 2017 onwards for most series. Some series may have longer histories. You can set a start date to pull older data if available.
Can I schedule this Actor to run automatically? Yes. On Apify, you can schedule the Actor to run daily, weekly, or at any interval. This is useful for keeping exchange rate or inflation datasets up to date.
What export formats are supported? You can export the results to CSV, JSON, Excel, or XML directly from the Apify platform.

Related actors

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Bank of Canada. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
seriesCodes array Pick one or more Bank of Canada Valet series to collect. Each observation (a single date and value) becomes one row. Use Custom Series Codes below for any other series. ["FXUSDCAD","FXEURCAD"]
customSeriesCodes string Any Bank of Canada Valet series codes, comma separated (for example FXUSDCAD,V39079). When set, these are added to the series chosen above. Find codes at the Valet series list, https://www.bankofcanada.ca/valet/lists/series/json not set
recent integer Collect only the most recent N observations per series. Leave empty to use a date range, or to pull the full available history. 10
startDate string Earliest observation date to include, as YYYY-MM-DD. Ignored when Recent Observations is set. not set
endDate string Latest observation date to include, as YYYY-MM-DD. Ignored when Recent Observations is set. not set
maxItems integer How many series to collect per run. 10

Pricing

from $9.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.009 to $0.011

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST · run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~bank-of-canada-valet-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Bank of Canada Valet Scraper on Apify All scrapers