Strava Segment & Club Intel - Public Segment, Climb & Club Data avatar

Strava Segment & Club Intel - Public Segment, Climb & Club Data

Pricing

from $6.00 / 1,000 segment or club records

Go to Apify Store
Strava Segment & Club Intel - Public Segment, Climb & Club Data

Strava Segment & Club Intel - Public Segment, Climb & Club Data

Public Strava segment + club intelligence the locked-down API no longer hands out: normalized segments (distance, grade, elevation, climb category), aggregate club info, and popular-segments-by-area rollups. Logged-out, public-only, PII-minimized. For coaches and route analytics.

Pricing

from $6.00 / 1,000 segment or club records

Rating

0.0

(0)

Developer

Seibs.co

Seibs.co

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Strava Segment & Club Intel

Public Strava segment and club intelligence the locked-down API no longer hands to third parties - normalized into one schema, with geometry-derived climb metrics and popular-segments-by-area rollups.

In November 2024 Strava tightened its API: new apps default to one authorized user, broader access goes through a review/approval form, AI/aggregation use is banned, and a developer subscription gates the standard tier. The people that locks out - fitness-app builders, coaches, route/segment-analytics tools, endurance-gear marketers - are exactly who needs this data. This actor delivers the public segment/club surface that doesn't require an application: logged-out, public-only, and PII-minimized.

Responsible use (read this first). This actor reads only logged-out, PUBLIC Strava data. It does not log in, use any athlete credential, or collect individual athletes' names, IDs, photos, leaderboard positions, or any private activity/movement trace. Club output is aggregate (member count only). Segment geometry is the segment's own public road/trail shape, not a person. Use it for segment/route and area analytics, not to profile or track individuals. Respect Strava's Terms and applicable privacy law in your jurisdiction.


What it does

ModeInputOutput
segment_detailsegment_ids (IDs or URLs)Normalized segment records - name, sport, location, and distance / average + max grade / elevation gain-loss / climb category derived from Strava's own public geometry stream - plus automatic area rollups.
club_profileclub_ids (IDs or URLs)Aggregate club records - name, sport, location, club type, member count, verified flag. No member identities, ever.
area_explorebounds or center_lat/lng + radius_kmBest-effort bounding-box discovery. Strava's explore endpoint is auth-gated when logged out, so this fail-softs with a documented note unless you supply a warm browser session (browser_cdp_url); place-level rollups still run over any segment_ids you provide.

Why the metrics are derived

Since the Nov-2024 lockdown, the logged-out segment page no longer ships the numeric stats (effort/athlete counts, leaderboards) - those load behind a session. What is public is the segment's geometry stream (/stream/segments/{id}: the distance, altitude, and lat/lng arrays of the segment's shape). This actor computes distance, grade, elevation gain/loss, and a Strava-style climb category from that public geometry, and labels every computed value metrics_source: "public_stream" so you never mistake a derived grade for an official one.

Worked example (live-verified): segment 229781 "Hawk Hill" -> 2,658 m, 5.86% avg grade, +156 m, Cat 4. Segment 8109834 "Old La Honda" -> 5,048 m, 7.7% avg grade, +389 m, Cat 2.


Output

Each record carries record_type: segment, club, area_rollup, plus a responsible_use_note header and any fetch_error / explore_gated notes. Dataset views: overview (AI-agent skim), segments, clubs, areas.

{
"record_type": "segment",
"segment_id": "229781",
"name": "Hawk Hill",
"activity_type": "ride",
"display_location": "Marin Headlands (GGNRA), California",
"distance_m": 2658.5, "distance_mi": 1.65,
"average_grade_pct": 5.86, "max_grade_pct": 9.2,
"elevation_diff_m": 155.9, "total_elevation_gain_m": 155.9,
"climb_category": 4, "climb_category_label": "Cat 4",
"start_latlng": [37.8331, -122.483451],
"metrics_source": "public_stream",
"source_url": "https://www.strava.com/segments/229781"
}

Pricing (pay-per-event)

EventPriceWhen
segment_record$0.006One normalized segment or aggregate club record
metric_enrichment$0.012Per segment enriched with geometry-derived metrics
area_rollup$0.015Per popular-segments-by-area aggregation
scheduled_delta_run$0.050Per scheduled monitor run (new/changed deltas)

Anti-bot escalation ladder

Strava's public pages usually answer the cheapest tier from a datacenter IP. On a real block the client escalates automatically:

  1. httpx over the DATACENTER proxy.
  2. curl_cffi with Chrome TLS impersonation over the RESIDENTIAL proxy (defeats JA3/TLS-fingerprint WAFs).
  3. Playwright (patchright stealth) over RESIDENTIAL / a warm BROWSER_CDP_URL session - for JS/Cloudflare challenges and to reach the auth-gated explore endpoint with the operator's own session (this actor never handles credentials).
  4. Fail-soft - a documented note, run still finishes SUCCEEDED.

Set BROWSER_CDP_URL to point the browser tier at a warm anti-detect browser. CAPTCHA-less by default.


Monitor mode

Run on a schedule (Apify Schedules) and the actor computes a delta vs the prior run - new/changed segments and club member-count trends (an aggregate, privacy-safe "leaderboard trend" signal) - and can post a Slack digest (slack_webhook_url). Adds scheduled_delta_run only on scheduled runs.


What this actor will NOT do

  • No login, no athlete OAuth, no cookies carried in.
  • No individual athlete records, names, IDs, photos, or follower graphs.
  • No segment leaderboards (gated logged-out anyway) and no KOM/QOM holder identities.
  • No personal routes or activities - those are an individual's movement trace and are deliberately not built.

These are hard product boundaries, not toggles.


MCP / AI agents

A companion mcp-strava-segment-intel server exposes these as MCP tools (get_segments, get_club, area_rollup, explore_segments) for Claude, Cursor, OpenAI, and LangChain, with x402 (USDC on Base) and Skyfire agentic-payment support. The dataset also ships an MCP-compatible JSON link (see Output tab).

Who it's for

Cycling/running businesses, coaches and route/segment-analytics tools, endurance-gear marketers, and AI agents doing route/area research - anyone shut out by the Nov-2024 API lockdown who needs the public segment/club layer without an application.