> ## Documentation Index
> Fetch the complete documentation index at: https://superthread.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get card time summary

> Returns the time-tracking-owned estimate plus direct and recursive descendant
totals. Boards supplies only card identity, hierarchy, and access context.
The additive planning object describes inclusive budgets over the current hierarchy
and lifetime tracked time. Legacy direct/rollup fields retain their existing additive
estimate and per-card remaining meanings; use planning for budget calculations.
Planning is unavailable if any required subtree or time data cannot be included;
its numeric fields are null, never complete-looking partial values. Legacy totals
continue to describe their authorized subset and are not proof of planning completeness.
Traversal is bounded to 1,000 distinct cards including the root, 64 levels (root is
level 1) and 50,000 entries. Exceeding a bound returns a validation error; a deadline
or dependency failure returns an error. Neither returns a partial summary.




## OpenAPI

````yaml GET /{team_id}/time/cards/{card_id}
openapi: 3.0.0
info:
  description: Superthread Public API Specification
  version: '0.1'
  title: Public API
  contact:
    email: engineering@superthread.com
servers:
  - url: https://api.superthread.com/v1
security:
  - BearerAuth: []
tags:
  - name: AI
    description: >-
      [Service: AI]. Handles AI-powered functionalities, such as
      recommendations, predictions, and automation features.
  - name: Activity
    description: >-
      [Service: Activity] Manages all activities; creating notifications and
      digests
  - name: Auth
    description: >-
      [Service: Auth] Responsible for user authentication, authorization, and
      session management.
  - name: Boards
    description: >-
      [Service: Boards] Manages core collaboration features such as "boards",
      "cards", "lists", "sprints", "epics".
  - name: Comments
    description: >-
      [Service: Comments] Handles the creation, editing, and management of
      comments across various entities.
  - name: Customers
    description: >-
      [Service: Customers] Manages customers, customer tiers and statuses,
      customer settings, and customer requests on cards and projects. Requires
      the `customers` team feature; not available to workspace guests.
  - name: Favourites
    description: >-
      [Service: Favourites] Responsible for favouriting resources in the system
      for quick access.
  - name: Files
    description: >-
      [Service: Files] Manages file uploads, storage, and retrieval for user and
      project resources.
  - name: Importer
    description: >-
      [Service: Importer] Handles data import operations from external sources
      into the platform.
  - name: Integrations
    description: >-
      [Service: Integrations] Facilitates connectivity with external tools and
      services, enabling smooth integration with third-party platforms and APIs.
  - name: Pages
    description: >-
      [Service: Pages] Manages the creation and organization of both public and
      private pages, supporting structured content and navigation and
      collaboration.
  - name: Projects
    description: '[Service: Projects] Handles all project related tasks.'
  - name: Reports
    description: >-
      [Service: Reports] Generates and manages analytical reports and insights
      for users and projects.
  - name: Search
    description: >-
      [Service: Search] Provides search functionalities, including indexing and
      retrieval of platform data.
  - name: TimeTracking
    description: >-
      [Service: TimeTracking] Manages time entries, active timers, time
      categories, billing rates, and audit/lock for time-tracking workflows.
  - name: Resourcing
    description: >-
      [Service: TimeTracking] Plans people's capacity: working patterns, time
      off, closures, public holidays, allocations of hours to projects, and
      retainer budgets. Not available to workspace guests.
  - name: Views
    description: >-
      [Feature] Provides tools to create and customize views, enabling users to
      organize and visualize their data according to their preferences and
      workflows.
  - name: OAuth2
    description: >-
      [Feature] Supports OAuth2 integration for seamless user authentication and
      authorization, ensuring secure access to external APIs and services.
  - name: Sprints
    description: >-
      [Feature] Facilitates sprint management within agile workflows, including
      planning, progress tracking, and reporting.
  - name: Cards
    description: >-
      [Feature] A Card is the core concept used in the system to describe an
      individual task or work item. They are used across Boards, Sprints, and
      Roadmaps. Cards include features like descriptions, checklists, comments,
      priorities, tags and more.
  - name: Checklists
    description: >-
      [Feature] A Checklist is a list of items that need to be completed. It is
      used to track progress on a card.
  - name: Lists
    description: >-
      [Feature] Represents a collection of tasks or items grouped within
      different contexts in the system. Lists (externally referenced as
      "statuses") are utilized across various entities such as boards, sprints,
      and roadmaps.
  - name: Notes
    description: >-
      [Feature] Enables users to create, edit, and organize notes, supporting
      rich text, attachments, transcriptions and AI enhancements.
  - name: Tags
    description: >-
      [Feature] Groups endpoints related to the creation, retrieval, updating,
      deletion, and merging of tags within teams (workspaces).
  - name: Agents
    description: >-
      [Feature] Manages agents and runs. Provides CRUD operations for agents,
      launching cloud agents, monitoring agent status, retrieving conversations,
      and sending follow-ups.
  - name: PublishedAgents
    description: >-
      [Feature] [Service: AI] External API for agents published to websites,
      apps and custom clients. Authenticated with scoped chat sessions
      (PublishedAgentSession) or host app assertions (AgentAppAssertion), never
      with workspace member credentials. Management routes for publications and
      app registrations live under the Agents tag. Base URL: these paths are
      absolute from the API origin. The real URL is
      `https://api.superthread.com/public/agents/v1/...`, and the spec's
      `basePath` `/v1` does not apply, the same as `/public/forms` (Swagger 2.0
      has no per-path base). Generated clients default to `.../v1` and would
      call `/v1/public/agents/v1/...`, so construct them with the API origin as
      the base: in TypeScript `new Api({ baseURL: 'https://api.superthread.com'
      })`, and in Go a transport whose base path is `/`. The www forms portal
      does the same, using an axios client whose `baseURL` is the API origin.
paths:
  /{team_id}/time/cards/{card_id}:
    parameters:
      - $ref: '#/components/parameters/path_team_id'
      - $ref: '#/components/parameters/path_card_id'
    get:
      tags:
        - TimeTracking
      summary: Get a card time estimate and totals
      description: >
        Returns the time-tracking-owned estimate plus direct and recursive
        descendant

        totals. Boards supplies only card identity, hierarchy, and access
        context.

        The additive planning object describes inclusive budgets over the
        current hierarchy

        and lifetime tracked time. Legacy direct/rollup fields retain their
        existing additive

        estimate and per-card remaining meanings; use planning for budget
        calculations.

        Planning is unavailable if any required subtree or time data cannot be
        included;

        its numeric fields are null, never complete-looking partial values.
        Legacy totals

        continue to describe their authorized subset and are not proof of
        planning completeness.

        Traversal is bounded to 1,000 distinct cards including the root, 64
        levels (root is

        level 1) and 50,000 entries. Exceeding a bound returns a validation
        error; a deadline

        or dependency failure returns an error. Neither returns a partial
        summary.
      operationId: getCardTimeSummary
      responses:
        '200':
          description: Card time estimate and authoritative direct and roll-up totals.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCardTimeSummaryResponse'
        default:
          description: client error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
components:
  parameters:
    path_team_id:
      in: path
      name: team_id
      description: >-
        Team ID is an alphanumerical string that identifies a Team. This is
        externally referred to as a "Workspace".
      required: true
      schema:
        type: string
    path_card_id:
      in: path
      name: card_id
      description: Card ID is a numerical string that identifies a card.
      required: true
      schema:
        type: string
  schemas:
    GetCardTimeSummaryResponse:
      type: object
      properties:
        card_time_summary:
          $ref: '#/components/schemas/CardTimeSummary'
    Error:
      type: object
      properties:
        id:
          type: string
          example: err5f744ab
        code:
          type: integer
          format: int32
          example: 403
        sec:
          $ref: '#/components/schemas/SuperthreadErrorCode'
        message:
          type: string
          example: You do not have access to this resource
          description: A user-friendly error message
        date:
          $ref: '#/components/schemas/STime'
    CardTimeSummary:
      type: object
      required:
        - card_id
        - direct
        - rollup
      properties:
        card_id:
          type: string
          example: '2700'
        estimate:
          $ref: '#/components/schemas/CardTimeEstimate'
        planning:
          $ref: '#/components/schemas/CardTimePlanningSummary'
        direct:
          $ref: '#/components/schemas/TimeTotals'
        rollup:
          $ref: '#/components/schemas/TimeTotals'
    SuperthreadErrorCode:
      type: string
      description: |
        Superthread Error Code (`SEC`): A structured error code.
        Format: `SEC:{ServiceID}-{InternalErrorCode}`.


          - `SEC`: Prefix for all structured error codes.
          - `ServiceID`: First 3 characters identify the service, '000' is reserved for generic errors.
          - `InternalErrorCode`: the next (last) 5 characters define the specific error.
      pattern: ^SEC:\d{3}-\d{5}$
      example: SEC:000-00014
    STime:
      type: integer
      format: int64
      example: 1608742037016
      description: unix timestamp in seconds
      x-go-type:
        type: STime
        import:
          package: github.com/superthread-com/common/pkg/types
        hints:
          noValidation: true
          kind: primitive
    CardTimeEstimate:
      type: object
      description: >
        Canonical per-card duration estimate owned by time-tracking. Existing
        records

        without estimate_kind retain direct-estimate semantics; conversion to an
        inclusive

        budget is explicit. New servers always return the effective
        estimate_kind, including

        direct for legacy rows. The property remains optional for compatibility
        with older

        servers and stored payloads. A cleared record retains its version and
        kind.
      required:
        - card_id
        - estimate_seconds
        - version
      properties:
        card_id:
          type: string
          example: '2700'
        estimate_seconds:
          type: integer
          format: int64
          minimum: 0
          description: Planned duration in seconds. Zero means the estimate is cleared.
          example: 28800
        estimate_kind:
          $ref: '#/components/schemas/TimeEstimateKind'
        version:
          type: integer
          format: int64
          minimum: 1
          example: 2
        time_created:
          $ref: '#/components/schemas/STime'
        time_updated:
          $ref: '#/components/schemas/STime'
    CardTimePlanningSummary:
      type: object
      description: >
        Lifetime planning over the current card hierarchy, independent of report
        dates and

        historical project snapshots. plan(node) is its explicit positive
        budget, otherwise

        its direct estimate plus its children's plans. A budget replaces the
        contribution

        of its entire subtree when summed into an ancestor, so nested budgets
        are not added

        again. Cards and time entries reachable through multiple paths are
        counted once.

        All numeric fields are serialized; unavailable planning returns null for
        every field.

        With complete planning, only own budget/remaining/overrun are nullable
        (no active root

        budget); other fields are authoritative non-negative integers, including
        zero.

        Example: a 10h root budget and 8h child budget containing 5h of
        grandchild estimates

        have children_planned_seconds=28800 and planned_seconds=36000, not 46800
        or 82800.

        With 1h tracked on the root and 5h below, tracked_seconds=21600 and
        remaining=14400.

        A direct-estimate leaf of 1h with no entries has planned_seconds=3600,
        zero child

        plans/tracked/coverage count, and null own budget/remaining/overrun. An
        unavailable

        response has completeness=unavailable,
        unavailable_reason=incomplete_data and null

        for all nine numeric fields. In complete responses unavailable_reason is
        null.
      required:
        - completeness
      properties:
        completeness:
          type: string
          enum:
            - complete
            - unavailable
        unavailable_reason:
          type: string
          x-omitempty: false
          enum:
            - incomplete_data
          description: >-
            Null when complete; generic incomplete_data otherwise, without
            exposing private identities or counts.
          nullable: true
        own_budget_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: >-
            Explicit positive root budget; null when absent, cleared or a direct
            estimate.
          nullable: true
        children_planned_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: >-
            Sum of child plans at the budget frontier, without duplicate cards
            or nested-budget inflation.
          nullable: true
        planned_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: >-
            Root budget when present; otherwise root direct estimate plus
            children_planned_seconds.
          nullable: true
        tracked_here_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: Lifetime time logged directly on the root card.
          nullable: true
        tracked_descendants_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: >-
            Lifetime time logged on distinct current descendants, excluding the
            root.
          nullable: true
        tracked_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: >-
            tracked_here_seconds plus tracked_descendants_seconds; every entry
            contributes once.
          nullable: true
        budget_remaining_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: >-
            max(own_budget_seconds - tracked_seconds, 0); null without an active
            root budget.
          nullable: true
        budget_overrun_seconds:
          type: integer
          format: int64
          minimum: 0
          x-omitempty: false
          description: >-
            max(tracked_seconds - own_budget_seconds, 0); null without an active
            root budget.
          nullable: true
        unestimated_leaf_card_count:
          type: integer
          minimum: 0
          x-omitempty: false
          description: >
            Distinct leaf cards, including the root when a leaf, with no
            explicit positive

            estimate. Counted even beneath a budget; this describes estimation
            coverage,

            not work excluded from the ancestor's inclusive budget.
          nullable: true
      example:
        completeness: complete
        own_budget_seconds: 36000
        children_planned_seconds: 28800
        planned_seconds: 36000
        tracked_here_seconds: 3600
        tracked_descendants_seconds: 18000
        tracked_seconds: 21600
        budget_remaining_seconds: 14400
        budget_overrun_seconds: 0
        unestimated_leaf_card_count: 1
    TimeTotals:
      type: object
      description: Authoritative totals for a set of deduplicated cards and entries.
      required:
        - estimate_seconds
        - tracked_seconds
        - remaining_seconds
        - card_count
        - unestimated_card_count
        - entry_count
      properties:
        estimate_seconds:
          type: integer
          format: int64
          example: 28800
        tracked_seconds:
          type: integer
          format: int64
          example: 14400
        remaining_seconds:
          type: integer
          format: int64
          description: >-
            Sum of max(card estimate minus direct tracked duration, zero) for
            every included card.
          example: 14400
        card_count:
          type: integer
          example: 4
        unestimated_card_count:
          type: integer
          description: Included cards with tracked duration but no time estimate.
          example: 1
        entry_count:
          type: integer
          example: 12
        money_totals:
          type: array
          description: >-
            Financial totals partitioned by snapshotted currency; currencies are
            never combined.
          items:
            $ref: '#/components/schemas/TimeMoneyTotal'
    TimeEstimateKind:
      type: string
      description: >
        direct estimates work on this card only; budget is an inclusive ceiling
        for this

        card and its descendants. Omitted stored kind means direct. Missing or
        zero duration

        does not establish an active budget, regardless of retained kind.
      enum:
        - direct
        - budget
      nullable: true
    TimeMoneyTotal:
      type: object
      required:
        - currency
        - total_cents
      properties:
        currency:
          type: string
          pattern: ^[A-Z]{3}$
          example: GBP
        total_cents:
          type: integer
          format: int64
          example: 50000
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.