Best Marathons 2026

VOTE FOR YOUR FAVORITE MARATHONS

Our annual poll is now live!
Which races deserve the top spot in each state for 2026?

VOTE NOW

Marathon Pace Bands

Marathon Pace Bands

Run the Right Pace in Your Next Marathon

Nearly 500 marathon courses.
Ships same or Next Day

Best Boston Marathon Qualifiers for 2026

Best Boston Marathon Qualifiers

It's here! Our annual list of the year's
best marathons to help you qualify for the Boston Marathon.

2026 IS HERE!



British Columbia Marathons

British Columbia has 4 active marathons this year. Races are most common in May, October, and July. Course terrain for these courses is most often rolling hills or mostly flat. Typical race day temperatures range from 41°F to 57°F.

Popular races include the Vancouver Marathon, Victoria Marathon, and Boundary Bay Marathon. 3 certified courses can be great Boston qualifier options. Races with the best Boston qualifying percentages include the Victoria Marathon — 9.3% BQ and Boundary Bay Marathon — 6.7% BQ.

Browse by metro or city:


British Columbia Marathons asc  Course desc PR Score asc desc Finishers asc desc BQ% asc Reviews Compare

Vancouver Marathon

Vancouver, BC
05/03/2026

Rolling Hills

Rolling Hills




Finishers

6,067 Finishers


PR Score

Finishers

6,067 Finishers

Race Reviews

Reviews

Compare Races
Compare Races

Totem to Totem Marathon

Skidegate, BC
07/18/2026

Mostly Flat

Mostly Flat



Finishers

7 Finishers


PR Score

Course is
Not Certified

Finishers

7 Finishers

Course is
Not Certified

Race Reviews

Reviews

Compare Races
Compare Races

Victoria Marathon

Victoria, BC
10/11/2026

Rolling Hills

Rolling Hills




Finishers

3,220 Finishers


PR Score

Finishers

3,220 Finishers

Race Reviews

Reviews

Compare Races
Compare Races

Boundary Bay Marathon

Delta, BC
11/01/2026

Very Flat

Very Flat




Finishers

195 Finishers


PR Score

Finishers

195 Finishers

Race Reviews

Reviews

Compare Races
Compare Races


// Optional country filter (DB stores 'USA'/'CAN' in markers.country) $countryFilterSql = ""; $countryBindType = ""; if (!empty($countryDb)) { $countryFilterSql = " AND country = ? "; $countryBindType = "s"; } ob_start(); ?>