| name | time-tracking-4-rescuetime-data-retrieval |
| description | Sub-skill of time-tracking: 4. RescueTime - Data Retrieval. |
| version | 1.0.0 |
| category | business |
| type | reference |
| scripts_exempt | true |
4. RescueTime - Data Retrieval
4. RescueTime - Data Retrieval
REST API - Analytics:
curl -s "https://www.rescuetime.com/anapi/data" \
-d "key=$RESCUETIME_API_KEY" \
-d "format=json" \
-d "perspective=rank" \
-d "resolution_time=day" \
-d "restrict_kind=overview" | jq
curl -s "https://www.rescuetime.com/anapi/data" \
-d "key=$RESCUETIME_API_KEY" \
-d "format=json" \
-d "restrict_begin=2025-01-01" \
-d "restrict_end=2025-01-31" \
-d "restrict_kind=overview" | jq
curl -s "https://www.rescuetime.com/anapi/data" \
-d "key=$RESCUETIME_API_KEY" \
-d "format=json" \
-d "restrict_kind=category" \
-d "resolution_time=week" | jq
curl -s "https://www.rescuetime.com/anapi/data" \
-d "key=$RESCUETIME_API_KEY" \
-d "format=json" \
-d "restrict_kind=productivity" | jq
curl -s "https://www.rescuetime.com/anapi/data" \
-d "key=$RESCUETIME_API_KEY" \
-d "format=json" \
-d "restrict_kind=activity" \
-d "resolution_time=day" | jq
curl -s "https://www.rescuetime.com/anapi/data" \
-d "key=$RESCUETIME_API_KEY" \
-d "format=json" \
-d "restrict_kind=efficiency" | jq
Python - RescueTime Client:
import requests
from datetime import datetime, timedelta
import os
class RescueTimeClient:
"""RescueTime API client."""
BASE_URL = "https://www.rescuetime.com/anapi"
def __init__(self, api_key=None):
self.api_key = api_key or os.environ.get("RESCUETIME_API_KEY")
def _request(self, endpoint, params=None):
"""Make API request."""
params = params or {}
params["key"] = self.api_key
params["format"] = "json"
response = requests.get(
f"{self.BASE_URL}/{endpoint}",
params=params
)
response.raise_for_status()
return response.json()
def get_daily_summary(self, date=None):
"""Get daily summary data."""
params = {
"perspective": "rank",
"resolution_time": "day",
"restrict_kind": "overview"
}
if date:
params["restrict_begin"] = date.strftime("%Y-%m-%d")
params["restrict_end"] = date.strftime("%Y-%m-%d")
._request(, params)
():
params = {
: start_date.strftime(),
: end_date.strftime(),
: restrict_kind,
: resolution
}
._request(, params)
():
params = {: }
start_date:
params[] = start_date.strftime()
end_date:
params[] = end_date.strftime()
._request(, params)
():
params = {
: ,
: resolution
}
start_date:
params[] = start_date.strftime()
end_date:
params[] = end_date.strftime()
._request(, params)
():
params = {
: ,
: resolution
}
start_date:
params[] = start_date.strftime()
end_date:
params[] = end_date.strftime()
._request(, params)
():
productivity = .get_productivity_data(start_date, end_date)
focus_time =
total_time =
row productivity.get(, []):
time_seconds = row[]
productivity_score = row[]
total_time += time_seconds
productivity_score >= :
focus_time += time_seconds
{
: focus_time,
: focus_time / ,
: total_time,
: total_time / ,
: (focus_time / total_time * ) total_time >
}
__name__ == :
client = RescueTimeClient()
today = client.get_daily_summary()
()
*Content truncated — see parent skill full reference.*