WakaTime Data Dumps API

Full data exports.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

wakatime-data-dumps-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: WakaTime Commits Data Dumps 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: Data Dumps
  description: Full data exports.
paths:
  /users/current/data_dumps:
    get:
      operationId: listDataDumps
      summary: List Data Dumps
      description: Returns the authenticated user's data exports.
      tags:
      - Data Dumps
      responses:
        '200':
          description: Data dump list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/DataDump'
              examples:
                ListDataDumps200Example:
                  summary: Default listDataDumps 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: 5f8a2c7f-8b3a-4c2c-9b3f-1d2c4f5b6a7c
                      type: heartbeats
                      status: Pending...
                      percent_complete: 1
                      created_at: '2026-05-30T12:34:56Z'
                      download_url: https://wakatime.com/dumps/abc.json.gz
                      expires: '2026-05-30T12:34:56Z'
                      has_failed: true
                      is_processing: true
                      is_stuck: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createDataDump
      summary: Create Data Dump
      description: Triggers generation of a new data export.
      tags:
      - Data Dumps
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                  - heartbeats
                  - daily
                  description: Dump type.
                email_when_finished:
                  type: boolean
            examples:
              CreateDataDumpRequestExample:
                summary: Default createDataDump request
                x-microcks-default: true
                value:
                  type: heartbeats
                  email_when_finished: true
      responses:
        '201':
          description: Created dump job.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/DataDump'
              examples:
                CreateDataDump201Example:
                  summary: Default createDataDump 201 response
                  x-microcks-default: true
                  value:
                    data:
                      id: 5f8a2c7f-8b3a-4c2c-9b3f-1d2c4f5b6a7c
                      type: heartbeats
                      status: Pending...
                      percent_complete: 1
                      created_at: '2026-05-30T12:34:56Z'
                      download_url: https://wakatime.com/dumps/abc.json.gz
                      expires: '2026-05-30T12:34:56Z'
                      has_failed: true
                      is_processing: true
                      is_stuck: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    DataDump:
      type: object
      properties:
        id:
          type: string
          example: 5f8a2c7f-8b3a-4c2c-9b3f-1d2c4f5b6a7c
        type:
          type: string
          enum:
          - heartbeats
          - daily
          example: heartbeats
        status:
          type: string
          enum:
          - Pending...
          - Processing...
          - Completed
          - Failed
          example: Pending...
        percent_complete:
          type: integer
          example: 1
        created_at:
          type: string
          format: date-time
          example: '2026-05-30T12:34:56Z'
        download_url:
          type: string
          format: uri
          nullable: true
          example: https://wakatime.com/dumps/abc.json.gz
        expires:
          type: string
          format: date-time
          nullable: true
          example: '2026-05-30T12:34:56Z'
        has_failed:
          type: boolean
          example: true
        is_processing:
          type: boolean
          example: true
        is_stuck:
          type: boolean
          example: true
  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_...`.