{"id":22027143,"url":"https://github.com/brianp/libstrava-rs","last_synced_at":"2025-07-23T01:33:26.257Z","repository":{"id":145495264,"uuid":"268290007","full_name":"brianp/libstrava-rs","owner":"brianp","description":"A Rust Client library for the Strava API v3","archived":false,"fork":false,"pushed_at":"2020-05-31T18:28:17.000Z","size":80,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-05T04:42:46.485Z","etag":null,"topics":["client-api","oauth","segments","strava-api","swagger"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brianp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-31T13:50:36.000Z","updated_at":"2021-06-08T13:30:13.000Z","dependencies_parsed_at":"2023-05-13T21:27:24.488Z","dependency_job_id":null,"html_url":"https://github.com/brianp/libstrava-rs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brianp/libstrava-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Flibstrava-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Flibstrava-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Flibstrava-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Flibstrava-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianp","download_url":"https://codeload.github.com/brianp/libstrava-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Flibstrava-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266602817,"owners_count":23954696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client-api","oauth","segments","strava-api","swagger"],"created_at":"2024-11-30T07:35:34.689Z","updated_at":"2025-07-23T01:33:26.229Z","avatar_url":"https://github.com/brianp.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust API client for swagger\n\nThe [Swagger Playground](https://developers.strava.com/playground) is the easiest way to familiarize yourself with the Strava API by submitting HTTP requests and observing the responses before you write any client code. It will show what a response will look like with different endpoints depending on the authorization scope you receive from your athletes. To use the Playground, go to https://www.strava.com/settings/api and change your “Authorization Callback Domain” to developers.strava.com. Please note, we only support Swagger 2.0. There is a known issue where you can only select one scope at a time. For more information, please check the section “client code” at https://developers.strava.com/docs.\n\n## Overview\nThis API client was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project.  By using the [swagger-spec](https://github.com/swagger-api/swagger-spec) from a remote server, you can easily generate an API client.\n\n- Strava API version: 3.0.0\n- Package version: 0.1.0\n\n## Documentation for API Endpoints\n\nAll URIs are relative to *https://www.strava.com/api/v3*\n\nClass | Method | HTTP request | Description\n------------ | ------------- | ------------- | -------------\n*ActivitiesApi* | [**create_activity**](docs/ActivitiesApi.md#create_activity) | **Post** /activities | Create an Activity\n*ActivitiesApi* | [**get_activity_by_id**](docs/ActivitiesApi.md#get_activity_by_id) | **Get** /activities/{id} | Get Activity\n*ActivitiesApi* | [**get_comments_by_activity_id**](docs/ActivitiesApi.md#get_comments_by_activity_id) | **Get** /activities/{id}/comments | List Activity Comments\n*ActivitiesApi* | [**get_kudoers_by_activity_id**](docs/ActivitiesApi.md#get_kudoers_by_activity_id) | **Get** /activities/{id}/kudos | List Activity Kudoers\n*ActivitiesApi* | [**get_laps_by_activity_id**](docs/ActivitiesApi.md#get_laps_by_activity_id) | **Get** /activities/{id}/laps | List Activity Laps\n*ActivitiesApi* | [**get_logged_in_athlete_activities**](docs/ActivitiesApi.md#get_logged_in_athlete_activities) | **Get** /athlete/activities | List Athlete Activities\n*ActivitiesApi* | [**get_zones_by_activity_id**](docs/ActivitiesApi.md#get_zones_by_activity_id) | **Get** /activities/{id}/zones | Get Activity Zones\n*ActivitiesApi* | [**update_activity_by_id**](docs/ActivitiesApi.md#update_activity_by_id) | **Put** /activities/{id} | Update Activity\n*AthletesApi* | [**get_logged_in_athlete**](docs/AthletesApi.md#get_logged_in_athlete) | **Get** /athlete | Get Authenticated Athlete\n*AthletesApi* | [**get_logged_in_athlete_zones**](docs/AthletesApi.md#get_logged_in_athlete_zones) | **Get** /athlete/zones | Get Zones\n*AthletesApi* | [**get_stats**](docs/AthletesApi.md#get_stats) | **Get** /athletes/{id}/stats | Get Athlete Stats\n*AthletesApi* | [**update_logged_in_athlete**](docs/AthletesApi.md#update_logged_in_athlete) | **Put** /athlete | Update Athlete\n*ClubsApi* | [**get_club_activities_by_id**](docs/ClubsApi.md#get_club_activities_by_id) | **Get** /clubs/{id}/activities | List Club Activities\n*ClubsApi* | [**get_club_admins_by_id**](docs/ClubsApi.md#get_club_admins_by_id) | **Get** /clubs/{id}/admins | List Club Administrators\n*ClubsApi* | [**get_club_by_id**](docs/ClubsApi.md#get_club_by_id) | **Get** /clubs/{id} | Get Club\n*ClubsApi* | [**get_club_members_by_id**](docs/ClubsApi.md#get_club_members_by_id) | **Get** /clubs/{id}/members | List Club Members\n*ClubsApi* | [**get_logged_in_athlete_clubs**](docs/ClubsApi.md#get_logged_in_athlete_clubs) | **Get** /athlete/clubs | List Athlete Clubs\n*GearsApi* | [**get_gear_by_id**](docs/GearsApi.md#get_gear_by_id) | **Get** /gear/{id} | Get Equipment\n*RoutesApi* | [**get_route_as_gpx**](docs/RoutesApi.md#get_route_as_gpx) | **Get** /routes/{id}/export_gpx | Export Route GPX\n*RoutesApi* | [**get_route_as_tcx**](docs/RoutesApi.md#get_route_as_tcx) | **Get** /routes/{id}/export_tcx | Export Route TCX\n*RoutesApi* | [**get_route_by_id**](docs/RoutesApi.md#get_route_by_id) | **Get** /routes/{id} | Get Route\n*RoutesApi* | [**get_routes_by_athlete_id**](docs/RoutesApi.md#get_routes_by_athlete_id) | **Get** /athletes/{id}/routes | List Athlete Routes\n*RunningRacesApi* | [**get_running_race_by_id**](docs/RunningRacesApi.md#get_running_race_by_id) | **Get** /running_races/{id} | Get Running Race\n*RunningRacesApi* | [**get_running_races**](docs/RunningRacesApi.md#get_running_races) | **Get** /running_races | List Running Races\n*SegmentEffortsApi* | [**get_efforts_by_segment_id**](docs/SegmentEffortsApi.md#get_efforts_by_segment_id) | **Get** /segment_efforts | List Segment Efforts\n*SegmentEffortsApi* | [**get_segment_effort_by_id**](docs/SegmentEffortsApi.md#get_segment_effort_by_id) | **Get** /segment_efforts/{id} | Get Segment Effort\n*SegmentsApi* | [**explore_segments**](docs/SegmentsApi.md#explore_segments) | **Get** /segments/explore | Explore segments\n*SegmentsApi* | [**get_logged_in_athlete_starred_segments**](docs/SegmentsApi.md#get_logged_in_athlete_starred_segments) | **Get** /segments/starred | List Starred Segments\n*SegmentsApi* | [**get_segment_by_id**](docs/SegmentsApi.md#get_segment_by_id) | **Get** /segments/{id} | Get Segment\n*SegmentsApi* | [**star_segment**](docs/SegmentsApi.md#star_segment) | **Put** /segments/{id}/starred | Star Segment\n*StreamsApi* | [**get_activity_streams**](docs/StreamsApi.md#get_activity_streams) | **Get** /activities/{id}/streams | Get Activity Streams\n*StreamsApi* | [**get_route_streams**](docs/StreamsApi.md#get_route_streams) | **Get** /routes/{id}/streams | Get Route Streams\n*StreamsApi* | [**get_segment_effort_streams**](docs/StreamsApi.md#get_segment_effort_streams) | **Get** /segment_efforts/{id}/streams | Get Segment Effort Streams\n*StreamsApi* | [**get_segment_streams**](docs/StreamsApi.md#get_segment_streams) | **Get** /segments/{id}/streams | Get Segment Streams\n*UploadsApi* | [**create_upload**](docs/UploadsApi.md#create_upload) | **Post** /uploads | Upload Activity\n*UploadsApi* | [**get_upload_by_id**](docs/UploadsApi.md#get_upload_by_id) | **Get** /uploads/{uploadId} | Get Upload\n\n\n## Documentation For Models\n\n - [ActivityStats](docs/ActivityStats.md)\n - [ActivityTotal](docs/ActivityTotal.md)\n - [ActivityType](docs/ActivityType.md)\n - [ActivityZone](docs/ActivityZone.md)\n - [BaseStream](docs/BaseStream.md)\n - [Comment](docs/Comment.md)\n - [Error](docs/Error.md)\n - [ExplorerResponse](docs/ExplorerResponse.md)\n - [ExplorerSegment](docs/ExplorerSegment.md)\n - [Fault](docs/Fault.md)\n - [HeartRateZoneRanges](docs/HeartRateZoneRanges.md)\n - [Lap](docs/Lap.md)\n - [LatLng](docs/LatLng.md)\n - [MetaActivity](docs/MetaActivity.md)\n - [MetaAthlete](docs/MetaAthlete.md)\n - [MetaClub](docs/MetaClub.md)\n - [PhotosSummary](docs/PhotosSummary.md)\n - [PhotosSummaryPrimary](docs/PhotosSummaryPrimary.md)\n - [PolylineMap](docs/PolylineMap.md)\n - [PowerZoneRanges](docs/PowerZoneRanges.md)\n - [Route](docs/Route.md)\n - [RunningRace](docs/RunningRace.md)\n - [Split](docs/Split.md)\n - [StreamSet](docs/StreamSet.md)\n - [SummaryGear](docs/SummaryGear.md)\n - [SummarySegment](docs/SummarySegment.md)\n - [SummarySegmentEffort](docs/SummarySegmentEffort.md)\n - [TimedZoneDistribution](docs/TimedZoneDistribution.md)\n - [UpdatableActivity](docs/UpdatableActivity.md)\n - [Upload](docs/Upload.md)\n - [ZoneRange](docs/ZoneRange.md)\n - [ZoneRanges](docs/ZoneRanges.md)\n - [Zones](docs/Zones.md)\n - [AltitudeStream](docs/AltitudeStream.md)\n - [CadenceStream](docs/CadenceStream.md)\n - [DetailedGear](docs/DetailedGear.md)\n - [DetailedSegment](docs/DetailedSegment.md)\n - [DetailedSegmentEffort](docs/DetailedSegmentEffort.md)\n - [DistanceStream](docs/DistanceStream.md)\n - [HeartrateStream](docs/HeartrateStream.md)\n - [LatLngStream](docs/LatLngStream.md)\n - [MovingStream](docs/MovingStream.md)\n - [PowerStream](docs/PowerStream.md)\n - [SmoothGradeStream](docs/SmoothGradeStream.md)\n - [SmoothVelocityStream](docs/SmoothVelocityStream.md)\n - [SummaryActivity](docs/SummaryActivity.md)\n - [SummaryAthlete](docs/SummaryAthlete.md)\n - [SummaryClub](docs/SummaryClub.md)\n - [TemperatureStream](docs/TemperatureStream.md)\n - [TimeStream](docs/TimeStream.md)\n - [TimedZoneRange](docs/TimedZoneRange.md)\n - [DetailedActivity](docs/DetailedActivity.md)\n - [DetailedAthlete](docs/DetailedAthlete.md)\n - [DetailedClub](docs/DetailedClub.md)\n\n\n## Documentation For Authorization\n\n## strava_oauth\n- **Type**: OAuth\n- **Flow**: accessCode\n- **Authorization URL**: https://www.strava.com/api/v3/oauth/authorize\n- **Scopes**: \n - **read**: Read public segments, public routes, public profile data, public posts, public events, club feeds, and leaderboards\n - **read_all**: Read private routes, private segments, and private events for the user\n - **profile:read_all**: Read all profile information even if the user has set their profile visibility to Followers or Only You\n - **profile:write**: Update the user's weight and Functional Threshold Power (FTP), and access to star or unstar segments on their behalf\n - **activity:read**: Read the user's activity data for activities that are visible to Everyone and Followers, excluding privacy zone data\n - **activity:read_all**: The same access as activity:read, plus privacy zone data and access to read the user's activities with visibility set to Only You\n - **activity:write**: Access to create manual activities and uploads, and access to edit any activities that are visible to the app, based on activity read access level\n\nExample\n```\n\tauth := context.WithValue(context.TODO(), sw.ContextAccessToken, \"ACCESSTOKENSTRING\")\n    r, err := client.Service.Operation(auth, args)\n```\n\nOr via OAuth2 module to automatically refresh tokens and perform user authentication.\n```\n\timport \t\"golang.org/x/oauth2\"\n\n    / .. Perform OAuth2 round trip request and obtain a token .. //\n\n    tokenSource := oauth2cfg.TokenSource(createContext(httpClient), \u0026token)\n\tauth := context.WithValue(oauth2.NoContext, sw.ContextOAuth2, tokenSource)\n    r, err := client.Service.Operation(auth, args)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianp%2Flibstrava-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianp%2Flibstrava-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianp%2Flibstrava-rs/lists"}