WakaTime Summaries API

Daily aggregations of coding activity by project, language, editor, OS, machine, branch, and category.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

wakatime-summaries-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: WakaTime Commits Summaries API
  version: v1
  description: 'WakaTime API v1 provides automated time-tracking analytics for software developers. IDE

    plugins (VS Code, JetBrains, Vim, Emacs, Sublime, Xcode, Visual Studio, Eclipse, Zed, and

    many more) send "heartbeats" describing the file, project, language, branch, and editor a

    developer is working in. WakaTime aggregates that data into dashboards, summaries, stats,

    goals, leaderboards, and team/org dashboards.


    Authentication is via OAuth 2.0 (authorize / token / revoke) with scopes such as

    `read_summaries`, `read_stats`, `read_goals`, `read_heartbeats`, `write_heartbeats`,

    `read_orgs`, `write_orgs`, and `email`, or via API Key (HTTP Basic auth or `?api_key=`)

    for personal use. The default rate limit is fewer than 10 requests per second on average

    over any 5-minute window.


    All responses follow the pattern `{"data": ...}` for successful requests or

    `{"error": "message"}` for errors.

    '
  contact:
    name: WakaTime Support
    url: https://wakatime.com/contact
    email: support@wakatime.com
  termsOfService: https://wakatime.com/terms
  license:
    name: WakaTime Terms of Service
    url: https://wakatime.com/terms
  x-generated-from: documentation
  x-source-url: https://wakatime.com/developers
  x-last-validated: '2026-05-30'
servers:
- url: https://wakatime.com/api/v1
  description: WakaTime production API
- url: https://api.wakatime.com/api/v1
  description: WakaTime alternate hostname
security:
- oauth2: []
- apiKey: []
- bearerAuth: []
tags:
- name: Summaries
  description: Daily aggregations of coding activity by project, language, editor, OS, machine, branch, and category.
paths:
  /users/current/summaries:
    get:
      operationId: listSummaries
      summary: List Summaries
      description: Returns daily summaries of coding activity between a start and end date, broken down by project, language, editor, OS, machine, branch, category, and dependencies.
      tags:
      - Summaries
      parameters:
      - name: start
        in: query
        required: true
        description: Start date (YYYY-MM-DD) inclusive.
        schema:
          type: string
          format: date
        example: '2026-05-30'
      - name: end
        in: query
        required: true
        description: End date (YYYY-MM-DD) inclusive.
        schema:
          type: string
          format: date
        example: '2026-05-30'
      - $ref: '#/components/parameters/ProjectQuery'
      - $ref: '#/components/parameters/BranchesQuery'
      - $ref: '#/components/parameters/TimeoutQuery'
      - $ref: '#/components/parameters/WritesOnlyQuery'
      - $ref: '#/components/parameters/TimezoneQuery'
      - $ref: '#/components/parameters/RangeQuery'
      responses:
        '200':
          description: Daily summaries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SummariesResponse'
              examples:
                ListSummaries200Example:
                  summary: Default listSummaries 200 response
                  x-microcks-default: true
                  value:
                    data: []
                    cumulative_total: {}
                    daily_average: {}
                    start: '2026-05-30'
                    end: '2026-05-30'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    WritesOnlyQuery:
      name: writes_only
      in: query
      description: Whether to only include time editing (writing) files.
      schema:
        type: boolean
      example: true
    TimezoneQuery:
      name: timezone
      in: query
      description: Timezone to use (defaults to the user's profile timezone).
      schema:
        type: string
        example: America/Los_Angeles
      example: America/Los_Angeles
    TimeoutQuery:
      name: timeout
      in: query
      description: Keystroke timeout in minutes (defaults to user's account setting).
      schema:
        type: integer
        minimum: 1
        maximum: 60
      example: 1
    BranchesQuery:
      name: branches
      in: query
      description: Comma-separated list of git branches to include.
      schema:
        type: string
      example: example
    RangeQuery:
      name: range
      in: query
      description: Range filter (last_7_days, last_30_days, last_6_months, last_year, all_time).
      schema:
        type: string
        enum:
        - last_7_days
        - last_30_days
        - last_6_months
        - last_year
        - all_time
      example: last_7_days
    ProjectQuery:
      name: project
      in: query
      description: Filter by project name.
      schema:
        type: string
      example: example
  schemas:
    SummaryDay:
      type: object
      properties:
        grand_total:
          $ref: '#/components/schemas/SummaryTotal'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        projects:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        languages:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        editors:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        operating_systems:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        machines:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        branches:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        dependencies:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        entities:
          type: array
          items:
            $ref: '#/components/schemas/SummaryBreakdown'
          example: []
        range:
          type: object
          properties:
            date:
              type: string
              format: date
            start:
              type: string
              format: date-time
            end:
              type: string
              format: date-time
            text:
              type: string
            timezone:
              type: string
          example: {}
    SummaryBreakdown:
      type: object
      properties:
        name:
          type: string
          example: WakaTime
        total_seconds:
          type: number
          format: float
          example: 4
        percent:
          type: number
          format: float
          example: 1.0
        digital:
          type: string
          example: 252
        decimal:
          type: string
          example: '4.20'
        text:
          type: string
          example: 4 hrs 12 mins
        hours:
          type: integer
          example: 4
        minutes:
          type: integer
          example: 60
        seconds:
          type: integer
          nullable: true
          example: 60
        machine_name_id:
          type: string
          nullable: true
          example: machine-001
    SummariesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/SummaryDay'
          example: []
        cumulative_total:
          type: object
          properties:
            seconds:
              type: number
              format: float
            text:
              type: string
            decimal:
              type: string
            digital:
              type: string
          example: {}
        daily_average:
          type: object
          properties:
            holidays:
              type: integer
            days_minus_holidays:
              type: integer
            days_including_holidays:
              type: integer
            seconds:
              type: number
              format: float
            seconds_including_other_language:
              type: number
              format: float
            text:
              type: string
            text_including_other_language:
              type: string
          example: {}
        start:
          type: string
          format: date
          example: '2026-05-30'
        end:
          type: string
          format: date
          example: '2026-05-30'
    SummaryTotal:
      type: object
      properties:
        hours:
          type: integer
          example: 4
        minutes:
          type: integer
          example: 60
        total_seconds:
          type: number
          format: float
          example: 4
        digital:
          type: string
          example: 252
        decimal:
          type: string
          example: '4.20'
        text:
          type: string
          example: 4 hrs 12 mins
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization code flow.
      flows:
        authorizationCode:
          authorizationUrl: https://wakatime.com/oauth/authorize
          tokenUrl: https://wakatime.com/oauth/token
          refreshUrl: https://wakatime.com/oauth/token
          scopes:
            email: Read user email.
            read_summaries: Read coding-activity summaries.
            read_stats: Read aggregate stats.
            read_goals: Read coding goals.
            read_heartbeats: Read raw heartbeats.
            write_heartbeats: Send heartbeats.
            read_orgs: Read organization data.
            write_orgs: Modify organization data.
        implicit:
          authorizationUrl: https://wakatime.com/oauth/authorize
          scopes:
            email: Read user email.
            read_summaries: Read coding-activity summaries.
            read_stats: Read aggregate stats.
            read_goals: Read coding goals.
            read_heartbeats: Read raw heartbeats.
            write_heartbeats: Send heartbeats.
            read_orgs: Read organization data.
            write_orgs: Modify organization data.
    apiKey:
      type: http
      scheme: basic
      description: HTTP Basic with the WakaTime API key as the username. Alternatively, pass `?api_key=...` as a query parameter.
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth access token in the Authorization header as `Bearer waka_tok_...`.