Strava Segment & Club Intel - Public Segment, Climb & Club Data
Pricing
from $6.00 / 1,000 segment or club records
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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
| Mode | Input | Output |
|---|---|---|
| segment_detail | segment_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_profile | club_ids (IDs or URLs) | Aggregate club records - name, sport, location, club type, member count, verified flag. No member identities, ever. |
| area_explore | bounds or center_lat/lng + radius_km | Best-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)
| Event | Price | When |
|---|---|---|
segment_record | $0.006 | One normalized segment or aggregate club record |
metric_enrichment | $0.012 | Per segment enriched with geometry-derived metrics |
area_rollup | $0.015 | Per popular-segments-by-area aggregation |
scheduled_delta_run | $0.050 | Per 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:
- httpx over the DATACENTER proxy.
- curl_cffi with Chrome TLS impersonation over the RESIDENTIAL proxy (defeats JA3/TLS-fingerprint WAFs).
- Playwright (patchright stealth) over RESIDENTIAL / a warm
BROWSER_CDP_URLsession - for JS/Cloudflare challenges and to reach the auth-gated explore endpoint with the operator's own session (this actor never handles credentials). - 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.