Strava

Connect Strava to Webflow to display athletic activity data on your site via native embeds, automated workflows, or custom API development.

Install app
View website
View lesson
A record settings
CNAME record settings
Strava

How to integrate Strava with Webflow

Use native embeds for simple activity display, Zapier for dynamic CMS updates, or Strava's API for filtered feeds and custom dashboards.

The Strava API v3 provides REST endpoints for activities, statistics, segments, routes, and webhooks. The Webflow Data API v2 enables programmatic CMS manipulation. API implementations require serverless infrastructure (AWS Lambda, Vercel, or Netlify Functions).

Native embeds for activities and routes

Strava offers four embed types, including individual activities, routes, profile feeds, and club feeds. According to the Strava embed documentation, copy the embed code from any public activity/route and paste it into the Webflow Code Embed element. Both profile and activity must be set to "Everyone" visibility.

To implement:

  • Set visibility to public: Profile and activities require "Everyone" privacy settings
  • Copy embed codes: On strava.com, click Share > Embed
  • Add Code Embed elements: Paste HTML into Webflow's Code Embed settings
  • Enable dynamic CMS: Store codes in Plain Text fields within Collections, bind to Code Embed elements

Customization can be done via data attributes, available per route, as documented in the route embedding documentation. It works best for static showcase pages and athlete portfolios.

Automation platforms for CMS synchronization

Zapier's Strava-Webflow integration syncs activities to CMS without code. The pre-built template creates published CMS items when activities are logged.

Create a workflow with Set "New Athlete Activity" as trigger, "Create Live Item" as action, map Strava fields to Webflow Collection fields.

Build with Webflow and Strava API

Custom API implementations require OAuth 2.0 with token refresh (tokens expire ~6 hours), serverless infrastructure, and Webflow's Data API. New apps require a 2-4 week Strava Developer Program approval.

Core components:

  • OAuth 2.0: Implement via Strava's /oauth/authorize and POST /oauth/token
  • Token management: Store refresh tokens in a secure database, implement automatic refresh
  • Serverless endpoints: Handle auth callbacks, API fetching, webhook processing
  • Webflow API: Use the Create Items endpoint for CMS updates

The webhooks system sends real-time notifications for create/update/delete events, which is preferable to polling.

Fetching activity data

GET /athlete/activities lists workouts (200/page max) with before/after timestamp filtering. GET /activities/{id} returns details requiring activity:read or activity:read_all scopes.

const response = await fetch(
  'https://www.strava.com/api/v3/athlete/activities?per_page=30&page=1',
  { headers: { 'Authorization': `Bearer ${accessToken}` } }
);

Activity objects include id, name, distance (meters), moving_time (seconds), total_elevation_gain, type, start_date, and map polyline. Map to Webflow fields: Number for distance/elevation, Text for name, Date/Time for start_date.

Displaying athlete statistics

GET /athletes/{id}/stats returns 4-week, YTD, and all-time totals by activity type. GET /athlete provides profile info (requires profile:read_all). Update statistics daily/weekly to reduce API consumption.

Building segment leaderboards

GET /segments/{id}/leaderboard displays rankings with gender, age, weight, and date filters. GET /segments/explore discovers segments by lat/lng bounds. Requires API implementation—native embeds and Zapier insufficient.

Implementing real-time webhooks

Subscribe via POST /push_subscriptions with callback URL and verify token. Strava validates by sending hub.challenge (echo within 2 seconds).

app.get('/webhooks/strava', (req, res) => {
  if (req.query['hub.mode'] === 'subscribe' && req.query['hub.verify_token'] === VERIFY_TOKEN) {
    res.json({"hub.challenge": req.query['hub.challenge']});
  } else { res.sendStatus(403); }
});

app.post('/webhooks/strava', (req, res) => {
  res.status(200).send('EVENT_RECEIVED');
  processEventAsync(req.body);
});

Event types: create, update, delete, and athlete deauthorization (authorized: false). Implement idempotent processing using object_id + event_time for deduplication.


What you can build

Integrating Strava with Webflow lets you build fitness-focused sites that display activity data, routes, and athlete achievements.

  • Race event websites: Display routes with interactive maps and elevation profiles
  • Athlete portfolios: Show activities, statistics, and achievements via embeds or Zapier automation
  • Running club hubs: For member activity streams and achievements. The Club feeds require "Everyone" visibility
  • Coaching platforms: Automated CMS updates for client progress tracking. Plan for CMS capacity limits

Frequently asked questions

  • Yes. Zapier's integration creates CMS items from activities. Set "New Athlete Activity" trigger, "Create Live Item" action, map fields. Monitor for reliability issues.

  • Each Strava application can register only one webhook subscription, but that single subscription receives events for all authenticated users. The webhook payload includes an owner_id field that identifies which athlete triggered the event, allowing you to route events to the correct user.

  • Strava activity embeds use fixed iframe dimensions, which don't scale responsively on mobile by default. You can include custom CSS within the embed code.

Strava
Strava
Joined in

Category

Maps

Description

Strava connects millions of athletes through GPS-based activity tracking across 48 sports, making it valuable for event organizers, fitness coaches, running clubs, and athlete portfolios.

Install app

This integration page is provided for informational and convenience purposes only.


Other Maps integrations

Other Maps integrations

OpenStreetMap

OpenStreetMap

Connect OpenStreetMap's collaborative mapping platform to your Webflow site for cost-effective, customizable maps. Display store locations, visualize service areas, and create interactive location-based experiences without Google Maps fees or restrictions.

Maps
Learn more
Storepoint Locator

Storepoint Locator

Connect Storepoint Locator maps with Webflow sites using CMS sync, HTML embeds, or the Widget JavaScript API.

Maps
Learn more
Flowstar: Store Locator Map

Flowstar: Store Locator Map

Connect Flowstar: Store Locator Map, a Webflow-native store locator app, with Webflow to add interactive location finders for multi-location businesses through visual configuration.

Maps
Learn more
Google Business Profile

Google Business Profile

Display Google Business Profile data on Webflow through third-party widgets (Elfsight, SociableKIT, Shapo), custom API integration with backend infrastructure, or automation platforms that handle server-side API calls.

Maps
Learn more
Stay22

Stay22

Connect Stay22's accommodation booking map to Webflow sites with iframe embeds or custom API integration.

Maps
Learn more
Google Maps

Google Maps

Connect Google Maps to Webflow to display interactive maps, store locations, and location-based content on your website. Add everything from simple embedded maps to complex multi-location directories with custom markers and real-time data.

Maps
Learn more
Elfsight Google Maps widget

Elfsight Google Maps widget

Add Google Maps \ Store Locator to Webflow.

Maps
Learn more

Related integrations

No items found.

Get started for free

Try Webflow for as long as you like with our free Starter plan. Purchase a paid Site plan to publish, host, and unlock additional features.

Get started — it’s free