Skip to main content

REST API for accessing your WakaTime coding activity stats.

Project description

wakatime-api

REST API for accessing your WakaTime coding activity stats. - Uses GET for retrieval, POST/PUT/PATCH for modification. - All requests must use HTTPS. - Responses are JSON objects. Data is in the data key, errors in error or errors. - Refer to WakaTime usage guidelines when using the trademark or logo.

This Python package is automatically generated by the Swagger Codegen project:

  • API version: v1
  • Package version: 1.0.0
  • Build package: io.swagger.codegen.v3.generators.python.PythonClientCodegen For more information, please visit https://wakatime.com/contact

Requirements.

Python 2.7 and 3.4+

Installation & Usage

pip install

If the python package is hosted on Github, you can install directly from Github

pip install wakatime-api

(you may need to run pip with root permission: sudo pip install wakatime-api)

Then import the package:

import wakatime_api 

Getting Started

Please follow the installation procedure and then run the following:

from __future__ import print_function
import time
import wakatime_api
from wakatime_api.rest import ApiException
from pprint import pprint

# Configure API key authorization: apiKeyQuery
configuration = wakatime_api.Configuration()
configuration.api_key['api_key'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['api_key'] = 'Bearer'# Configure HTTP basic authorization: basicAuth
configuration = wakatime_api.Configuration()
configuration.username = 'YOUR_USERNAME'
configuration.password = 'YOUR_PASSWORD'
# Configure OAuth2 access token for authorization: oauth2
configuration = wakatime_api.Configuration()
configuration.access_token = 'YOUR_ACCESS_TOKEN'

# create an instance of the API class
api_instance = wakatime_api.CommitsApi(wakatime_api.ApiClient(configuration))
user = 'user_example' # str | User ID or 'current' for the authenticated user.
project = 'project_example' # str | Project ID or name (URL encoded).
hash = 'hash_example' # str | Commit hash.
branch = 'branch_example' # str | Filter by branch name. (optional)

try:
    # Get Single Commit
    api_response = api_instance.get_commit(user, project, hash, branch=branch)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling CommitsApi->get_commit: %s\n" % e)

# Configure API key authorization: apiKeyQuery
configuration = wakatime_api.Configuration()
configuration.api_key['api_key'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['api_key'] = 'Bearer'# Configure HTTP basic authorization: basicAuth
configuration = wakatime_api.Configuration()
configuration.username = 'YOUR_USERNAME'
configuration.password = 'YOUR_PASSWORD'
# Configure OAuth2 access token for authorization: oauth2
configuration = wakatime_api.Configuration()
configuration.access_token = 'YOUR_ACCESS_TOKEN'

# create an instance of the API class
api_instance = wakatime_api.CommitsApi(wakatime_api.ApiClient(configuration))
project = 'project_example' # str | Project ID or name (URL encoded).
hash = 'hash_example' # str | Commit hash.
branch = 'branch_example' # str | Filter by branch name. (optional)

try:
    # Get Current User's Single Commit
    api_response = api_instance.get_current_user_commit(project, hash, branch=branch)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling CommitsApi->get_current_user_commit: %s\n" % e)

# Configure API key authorization: apiKeyQuery
configuration = wakatime_api.Configuration()
configuration.api_key['api_key'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['api_key'] = 'Bearer'# Configure HTTP basic authorization: basicAuth
configuration = wakatime_api.Configuration()
configuration.username = 'YOUR_USERNAME'
configuration.password = 'YOUR_PASSWORD'
# Configure OAuth2 access token for authorization: oauth2
configuration = wakatime_api.Configuration()
configuration.access_token = 'YOUR_ACCESS_TOKEN'

# create an instance of the API class
api_instance = wakatime_api.CommitsApi(wakatime_api.ApiClient(configuration))
user = 'user_example' # str | User ID or 'current' for the authenticated user.
project = 'project_example' # str | Project ID or name (URL encoded).
author = 'author_example' # str | Filter commits by author username. (optional)
branch = 'branch_example' # str | Filter by branch name. (optional)
page = 1 # int | Page number for paginated results. (optional) (default to 1)

try:
    # List Project Commits
    api_response = api_instance.list_commits(user, project, author=author, branch=branch, page=page)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling CommitsApi->list_commits: %s\n" % e)

# Configure API key authorization: apiKeyQuery
configuration = wakatime_api.Configuration()
configuration.api_key['api_key'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['api_key'] = 'Bearer'# Configure HTTP basic authorization: basicAuth
configuration = wakatime_api.Configuration()
configuration.username = 'YOUR_USERNAME'
configuration.password = 'YOUR_PASSWORD'
# Configure OAuth2 access token for authorization: oauth2
configuration = wakatime_api.Configuration()
configuration.access_token = 'YOUR_ACCESS_TOKEN'

# create an instance of the API class
api_instance = wakatime_api.CommitsApi(wakatime_api.ApiClient(configuration))
project = 'project_example' # str | Project ID or name (URL encoded).
author = 'author_example' # str | Filter commits by author username. (optional)
branch = 'branch_example' # str | Filter by branch name. (optional)
page = 1 # int | Page number for paginated results. (optional) (default to 1)

try:
    # List Current User's Project Commits
    api_response = api_instance.list_current_user_commits(project, author=author, branch=branch, page=page)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling CommitsApi->list_current_user_commits: %s\n" % e)

Documentation for API Endpoints

All URIs are relative to https://api.wakatime.com/api/v1

Class Method HTTP request Description
CommitsApi get_commit GET /users/{user}/projects/{project}/commits/{hash} Get Single Commit
CommitsApi get_current_user_commit GET /users/current/projects/{project}/commits/{hash} Get Current User's Single Commit
CommitsApi list_commits GET /users/{user}/projects/{project}/commits List Project Commits
CommitsApi list_current_user_commits GET /users/current/projects/{project}/commits List Current User's Project Commits
DataDumpsApi create_current_user_data_dump POST /users/current/data_dumps Create Current User's Data Dump
DataDumpsApi create_data_dump POST /users/{user}/data_dumps Create Data Dump
DataDumpsApi list_current_user_data_dumps GET /users/current/data_dumps List Current User's Data Dumps
DataDumpsApi list_data_dumps GET /users/{user}/data_dumps List Data Dumps
DurationsApi get_current_user_durations GET /users/current/durations Get Current User Durations
DurationsApi get_user_durations GET /users/{user}/durations Get User Durations
ExternalDurationsApi create_current_user_external_duration POST /users/current/external_durations Create Current User External Duration
ExternalDurationsApi create_current_user_external_durations_bulk POST /users/current/external_durations.bulk Create Current User External Durations (Bulk)
ExternalDurationsApi create_external_duration POST /users/{user}/external_durations Create External Duration
ExternalDurationsApi create_external_durations_bulk POST /users/{user}/external_durations.bulk Create External Durations (Bulk)
ExternalDurationsApi delete_current_user_external_durations_bulk DELETE /users/current/external_durations.bulk Delete Current User External Durations (Bulk)
ExternalDurationsApi delete_external_durations_bulk DELETE /users/{user}/external_durations.bulk Delete External Durations (Bulk)
ExternalDurationsApi get_current_user_external_durations GET /users/current/external_durations Get Current User External Durations
ExternalDurationsApi get_user_external_durations GET /users/{user}/external_durations Get User External Durations
GoalsApi get_current_user_goal GET /users/current/goals/{goal} Get Current User's Single Goal
GoalsApi get_goal GET /users/{user}/goals/{goal} Get Single Goal
GoalsApi list_current_user_goals GET /users/current/goals List Current User Goals
GoalsApi list_goals GET /users/{user}/goals List User Goals
HeartbeatsApi create_current_user_heartbeat POST /users/current/heartbeats Create Current User Heartbeat
HeartbeatsApi create_current_user_heartbeats_bulk POST /users/current/heartbeats.bulk Create Current User Heartbeats (Bulk)
HeartbeatsApi create_heartbeat POST /users/{user}/heartbeats Create Heartbeat
HeartbeatsApi create_heartbeats_bulk POST /users/{user}/heartbeats.bulk Create Heartbeats (Bulk)
HeartbeatsApi delete_current_user_heartbeats_bulk DELETE /users/current/heartbeats.bulk Delete Current User Heartbeats (Bulk)
HeartbeatsApi delete_heartbeats_bulk DELETE /users/{user}/heartbeats.bulk Delete Heartbeats (Bulk)
HeartbeatsApi get_current_user_heartbeats GET /users/current/heartbeats Get Current User Heartbeats
HeartbeatsApi get_user_heartbeats GET /users/{user}/heartbeats Get User Heartbeats
InsightsApi get_current_user_insight GET /users/current/insights/{insight_type}/{range} Get Current User Insight
InsightsApi get_user_insight GET /users/{user}/insights/{insight_type}/{range} Get User Insight
LeaderboardsApi get_current_user_private_leaderboard_leaders GET /users/current/leaderboards/{board} Get Current User's Private Leaderboard Leaders
LeaderboardsApi get_leaders GET /leaders Get Public Leaders
LeaderboardsApi get_private_leaderboard_leaders GET /users/{user}/leaderboards/{board} Get Private Leaderboard Leaders
LeaderboardsApi list_current_user_private_leaderboards GET /users/current/leaderboards List Current User Private Leaderboards
LeaderboardsApi list_private_leaderboards GET /users/{user}/leaderboards List User Private Leaderboards
MetaApi get_meta GET /meta Get API Meta Information
OrganizationsApi get_current_user_org_dashboard_durations GET /users/current/orgs/{org}/dashboards/{dashboard}/durations Get Current User's Org Dashboard Durations
OrganizationsApi get_current_user_org_dashboard_member_durations GET /users/current/orgs/{org}/dashboards/{dashboard}/members/{member}/durations Get Current User's Org Dashboard Member Durations
OrganizationsApi get_current_user_org_dashboard_member_summaries GET /users/current/orgs/{org}/dashboards/{dashboard}/members/{member}/summaries Get Current User's Org Dashboard Member Summaries
OrganizationsApi get_current_user_org_dashboard_summaries GET /users/current/orgs/{org}/dashboards/{dashboard}/summaries Get Current User's Org Dashboard Summaries
OrganizationsApi get_org_dashboard_durations GET /users/{user}/orgs/{org}/dashboards/{dashboard}/durations Get Org Dashboard Durations
OrganizationsApi get_org_dashboard_member_durations GET /users/{user}/orgs/{org}/dashboards/{dashboard}/members/{member}/durations Get Org Dashboard Member Durations
OrganizationsApi get_org_dashboard_member_summaries GET /users/{user}/orgs/{org}/dashboards/{dashboard}/members/{member}/summaries Get Org Dashboard Member Summaries
OrganizationsApi get_org_dashboard_summaries GET /users/{user}/orgs/{org}/dashboards/{dashboard}/summaries Get Org Dashboard Summaries
OrganizationsApi list_current_user_org_dashboard_members GET /users/current/orgs/{org}/dashboards/{dashboard}/members List Current User's Org Dashboard Members
OrganizationsApi list_current_user_org_dashboards GET /users/current/orgs/{org}/dashboards List Current User's Org Dashboards
OrganizationsApi list_current_user_orgs GET /users/current/orgs List Current User Organizations
OrganizationsApi list_org_dashboard_members GET /users/{user}/orgs/{org}/dashboards/{dashboard}/members List Org Dashboard Members
OrganizationsApi list_org_dashboards GET /users/{user}/orgs/{org}/dashboards List Org Dashboards
OrganizationsApi list_orgs GET /users/{user}/orgs List User Organizations
ProjectsApi list_current_user_projects GET /users/current/projects List Current User Projects
ProjectsApi list_projects GET /users/{user}/projects List User Projects
ResourcesApi list_editors GET /editors List Editors
ResourcesApi list_program_languages GET /program_languages List Programming Languages
StatsApi get_aggregate_stats GET /stats/{range} Get Aggregate Stats
StatsApi get_all_time_since_today GET /users/{user}/all_time_since_today Get All Time Since Today
StatsApi get_current_user_all_time_since_today GET /users/current/all_time_since_today Get Current User's All Time Since Today
StatsApi get_current_user_stats_default_range GET /users/current/stats Get Current User Stats (Default Range)
StatsApi get_current_user_stats_for_range GET /users/current/stats/{range} Get Current User Stats (Specific Range)
StatsApi get_user_stats_default_range GET /users/{user}/stats Get User Stats (Default Range)
StatsApi get_user_stats_for_range GET /users/{user}/stats/{range} Get User Stats (Specific Range)
SummariesApi get_current_user_status_bar_summary GET /users/current/status_bar/today Get Current User Status Bar Summary (Today)
SummariesApi get_current_user_summaries GET /users/current/summaries Get Current User Summaries
SummariesApi get_user_status_bar_summary GET /users/{user}/status_bar/today Get User Status Bar Summary (Today)
SummariesApi get_user_summaries GET /users/{user}/summaries Get User Summaries
UsersApi get_current_user GET /users/current Get Current User Details
UsersApi get_user GET /users/{user} Get User Details
UsersApi list_current_user_agents GET /users/current/user_agents List Current User Agents
UsersApi list_current_user_machine_names GET /users/current/machine_names List Current User Machine Names
UsersApi list_machine_names GET /users/{user}/machine_names List User Machine Names
UsersApi list_user_agents GET /users/{user}/user_agents List User Agents

Documentation For Models

Documentation For Authorization

apiKeyQuery

  • Type: API key
  • API key parameter name: api_key
  • Location: URL query string

basicAuth

  • Type: HTTP basic authentication

oauth2

  • Type: OAuth
  • Flow: accessCode
  • Authorization URL: https://wakatime.com/oauth/authorize
  • Scopes:
  • read_summaries: Access Summaries and Stats (categories, dependencies, editors, languages, machines, operating systems, projects).
  • read_summaries.categories: Access Summaries and Stats (limited to categories).
  • read_summaries.dependencies: Access Summaries and Stats (limited to dependencies).
  • read_summaries.editors: Access Summaries and Stats (limited to editors).
  • read_summaries.languages: Access Summaries and Stats (limited to languages).
  • read_summaries.machines: Access Summaries and Stats (limited to machines).
  • read_summaries.operating_systems: Access Summaries and Stats (limited to operating systems).
  • read_summaries.projects: Access Summaries and Stats (limited to projects).
  • read_stats: Access Stats (categories, dependencies, editors, languages, machines, operating systems, projects).
  • read_stats.best_day: Access Stats (limited to best day).
  • read_stats.categories: Access Stats (limited to categories).
  • read_stats.dependencies: Access Stats (limited to dependencies).
  • read_stats.editors: Access Stats (limited to editors).
  • read_stats.languages: Access Stats (limited to languages).
  • read_stats.machines: Access Stats (limited to machines).
  • read_stats.operating_systems: Access Stats (limited to operating systems).
  • read_stats.projects: Access Stats (limited to projects).
  • read_goals: Access Goals.
  • read_orgs: Access organizations and dashboard member activity.
  • write_orgs: Modify organizations and dashboards.
  • read_private_leaderboards: Access private leaderboards.
  • write_private_leaderboards: Modify private leaderboards.
  • read_heartbeats: Access coding activity, projects, files, editors, languages, OS, dependencies, Stats, Durations, External Durations, and Heartbeats.
  • write_heartbeats: Modify coding activity (create, edit, delete Heartbeats and External Durations).
  • email: Access user's private email address.

Author

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wakatime_api-0.1.3.tar.gz (106.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wakatime_api-0.1.3-py3-none-any.whl (562.9 kB view details)

Uploaded Python 3

File details

Details for the file wakatime_api-0.1.3.tar.gz.

File metadata

  • Download URL: wakatime_api-0.1.3.tar.gz
  • Upload date:
  • Size: 106.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for wakatime_api-0.1.3.tar.gz
Algorithm Hash digest
SHA256 4f3e48ece5e4ca0f321124b83441edcfa302c60f72b66986b8292d83c0677cdd
MD5 facdfcc0728bb778fe5a92adbdc258f5
BLAKE2b-256 012ea07be467b742df5ba394e22a248d88a244afe46a75c4ff6b3f1e9e54b966

See more details on using hashes here.

File details

Details for the file wakatime_api-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: wakatime_api-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 562.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for wakatime_api-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 253566ca4c38bdafbde74326b1ebb4219654edeab21e3e129fa001d426c0bad1
MD5 132432808d841f75e1a07a1a357ac990
BLAKE2b-256 44fb4367b560af371574c2e9f3a2ed2fec5722ef64f9dbddd9ce1523dae1b107

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page