WakaTime · Arazzo Workflow

WakaTime Summaries To Durations Drilldown

Version 1.0.0

Pull daily summaries over a date range, then drill into a single day's activity durations.

1 workflow 1 source API 1 provider
View Spec View on GitHub Developer ProductivityDeveloper ToolsTime TrackingCoding AnalyticsLeaderboardsIDE PluginsOpen-SourcePublic APIsArazzoWorkflows

Provider

wakatime

Workflows

summaries-to-durations
Fetch daily summaries for a range, then the durations for a chosen day.
Loads daily summaries across the supplied date range and, when summaries are present, drills into the durations for the chosen day.
2 steps inputs: apiKeyBasicAuth, date, end, project, start outputs: cumulativeTotal, durations, summaries
1
listSummaries
listSummaries
Request daily coding-activity summaries between the start and end dates.
2
listDurations
listDurations
Drill into the heartbeat-derived activity durations for the chosen day.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: WakaTime Summaries To Durations Drilldown
  summary: Pull daily summaries over a date range, then drill into a single day's activity durations.
  description: >-
    Provides a coarse-to-fine view of coding activity. It first requests daily
    summaries between a start and end date, then drills into a single day by
    requesting the heartbeat-derived activity durations for that date. The
    duration step is only taken when the summaries response actually contains
    data. Every step spells out its request inline, including HTTP Basic
    authentication with the WakaTime API key as the username, so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: wakatimeApi
  url: ../openapi/wakatime-api-v1-openapi.yml
  type: openapi
workflows:
- workflowId: summaries-to-durations
  summary: Fetch daily summaries for a range, then the durations for a chosen day.
  description: >-
    Loads daily summaries across the supplied date range and, when summaries are
    present, drills into the durations for the chosen day.
  inputs:
    type: object
    required:
    - apiKeyBasicAuth
    - start
    - end
    - date
    properties:
      apiKeyBasicAuth:
        type: string
        description: Base64 of "<api_key>:" for HTTP Basic auth (WakaTime API key as username).
      start:
        type: string
        description: Start date (YYYY-MM-DD) inclusive for the summaries range.
      end:
        type: string
        description: End date (YYYY-MM-DD) inclusive for the summaries range.
      date:
        type: string
        description: The single day (YYYY-MM-DD) to drill into for durations.
      project:
        type: string
        description: Optional project name filter for the durations drilldown.
  steps:
  - stepId: listSummaries
    description: Request daily coding-activity summaries between the start and end dates.
    operationId: listSummaries
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.apiKeyBasicAuth
    - name: start
      in: query
      value: $inputs.start
    - name: end
      in: query
      value: $inputs.end
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      summaries: $response.body#/data
      cumulativeTotal: $response.body#/cumulative_total
      dailyAverage: $response.body#/daily_average
    onSuccess:
    - name: hasSummaries
      type: goto
      stepId: listDurations
      criteria:
      - context: $response.body
        condition: $.data.length > 0
        type: jsonpath
    - name: noSummaries
      type: end
      criteria:
      - context: $response.body
        condition: $.data.length == 0
        type: jsonpath
  - stepId: listDurations
    description: Drill into the heartbeat-derived activity durations for the chosen day.
    operationId: listDurations
    parameters:
    - name: Authorization
      in: header
      value: Basic $inputs.apiKeyBasicAuth
    - name: date
      in: query
      value: $inputs.date
    - name: project
      in: query
      value: $inputs.project
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      durations: $response.body#/data
      firstDurationProject: $response.body#/data/0/project
  outputs:
    summaries: $steps.listSummaries.outputs.summaries
    cumulativeTotal: $steps.listSummaries.outputs.cumulativeTotal
    durations: $steps.listDurations.outputs.durations

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/wakatime-summaries-to-durations-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.