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

# Get the Team Capacity report

> Returns the Team Capacity board: one row per active team member with their active searches, stage breakdown, role breakdown, load score, workload tier, and quarter and year-to-date metrics.

The report applies the team’s saved board settings (job status filter, role filter, stage thresholds, role weights, workload thresholds, and sort), and returns those settings with it. Change them with `PATCH /v1/team-capacity/settings`.

Quarter and year boundaries are calendar quarters and years in UTC.

API keys need the `reports:read` scope.



## OpenAPI

````yaml /api-reference/openapi-v1.json get /v1/team-capacity
openapi: 3.1.0
info:
  title: Stardex API (v1)
  version: 1.0.0
  description: >-
    Stardex ATS API — manage candidates, jobs, companies, and recruiting
    workflows.
servers:
  - url: https://api.stardex.ai
    description: Production API server
security:
  - bearerAuth: []
tags:
  - name: Persons
    description: Manage person records — contacts, work history, and custom fields.
  - name: Jobs
    description: Manage job postings — pipeline stages, team members, and custom fields.
  - name: Candidates
    description: Manage candidate records and pipeline stage transitions.
  - name: Companies
    description: Browse and retrieve company records.
  - name: Lists
    description: Create, search, and retrieve saved person and company lists.
  - name: Person Activities
    description: Create and manage activity records (notes, emails, meetings) for persons.
  - name: Team Members
    description: List team members for use in search filters and assignments.
  - name: Custom Fields
    description: Retrieve custom field definitions and tag options for search filters.
paths:
  /v1/team-capacity:
    get:
      tags:
        - Team Capacity
      summary: Get the Team Capacity report
      description: >-
        Returns the Team Capacity board: one row per active team member with
        their active searches, stage breakdown, role breakdown, load score,
        workload tier, and quarter and year-to-date metrics.


        The report applies the team’s saved board settings (job status filter,
        role filter, stage thresholds, role weights, workload thresholds, and
        sort), and returns those settings with it. Change them with `PATCH
        /v1/team-capacity/settings`.


        Quarter and year boundaries are calendar quarters and years in UTC.


        API keys need the `reports:read` scope.
      operationId: getTeamCapacityReport
      responses:
        '200':
          description: Team Capacity report
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamCapacityReportResponse'
              example:
                success: true
                data:
                  generated_at: '2026-10-13T15:30:00.000Z'
                  quarter_start: '2026-10-01T00:00:00.000Z'
                  year_start: '2026-01-01T00:00:00.000Z'
                  is_configured: true
                  settings:
                    show_search_stage: true
                    stage_config:
                      stage_1_name: New
                      stage_1_max_weeks: 2
                      stage_2_name: Active
                      stage_2_max_weeks: 4
                      stage_3_name: Ongoing
                    show_load_score: true
                    role_weights:
                      - role_name: Lead Recruiter
                        weight: 75
                      - role_name: Sourcer
                        weight: 25
                    enable_active_search_color_coding: true
                    active_search_color_thresholds:
                      moderate_min: 5
                      heavy_min: 8
                    job_status_filter:
                      - Active
                      - On Hold
                    role_filter: []
                    sort:
                      column: total_searches
                      direction: desc
                  summary:
                    member_count: 2
                    active_search_count: 6
                    team_avg_load_score: 312.5
                  available_roles:
                    - name: Lead Recruiter
                      is_owner_role: true
                    - name: Sourcer
                      is_owner_role: false
                  available_job_statuses:
                    - name: Active
                      color: '#22c55e'
                      status_type: in_progress
                    - name: On Hold
                      color: '#f59e0b'
                      status_type: in_progress
                    - name: Placed
                      color: '#6366f1'
                      status_type: closed_won
                  members:
                    - team_member_id: 234e5678-e90a-12b3-c456-789012345678
                      first_name: Jane
                      last_name: Smith
                      title: Partner
                      image_url: https://img.clerk.com/jane-smith.png
                      total_searches: 5
                      workload_tier: moderate
                      stage_breakdown:
                        stage_1: 1
                        stage_2: 2
                        stage_3: 2
                      role_breakdown:
                        - role_name: Lead Recruiter
                          active_searches: 4
                        - role_name: Sourcer
                          active_searches: 2
                      load_score: 350
                      kicked_off_this_quarter: 2
                      closed_this_quarter: 1
                      avg_days_out: 34.6
                      avg_days_left: 41.2
                      ytd_avg_fill_days: 96.5
                      active_searches:
                        - job_id: 345e6789-e01b-23c4-d567-890123456789
                          title: Senior Software Engineer
                          company_name: Acme Corp
                          company_domain: acme.com
                          open_date: '2026-10-06'
                          end_date: '2026-12-15'
                          role_names:
                            - Lead Recruiter
                            - Sourcer
                    - team_member_id: 456e7890-e12b-34c5-d678-901234567890
                      first_name: Alex
                      last_name: Chen
                      title: Associate
                      image_url: null
                      total_searches: 1
                      workload_tier: light
                      stage_breakdown:
                        stage_1: 0
                        stage_2: 0
                        stage_3: 1
                      role_breakdown:
                        - role_name: Lead Recruiter
                          active_searches: 1
                      load_score: 75
                      kicked_off_this_quarter: 0
                      closed_this_quarter: 0
                      avg_days_out: 88
                      avg_days_left: -3
                      ytd_avg_fill_days: null
                      active_searches:
                        - job_id: 567e8901-e23c-45d6-e789-012345678901
                          title: Chief Financial Officer
                          company_name: Globex
                          company_domain: globex.com
                          open_date: '2026-07-17'
                          end_date: '2026-10-10'
                          role_names:
                            - Lead Recruiter
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
components:
  schemas:
    TeamCapacityReportResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          $ref: '#/components/schemas/TeamCapacityReport'
      required:
        - success
        - data
    TeamCapacityReport:
      type: object
      properties:
        generated_at:
          type: string
          description: When the report was computed (ISO 8601).
        quarter_start:
          type: string
          description: >-
            Start of the current calendar quarter in UTC, used for the quarter
            metrics.
        year_start:
          type: string
          description: >-
            Start of the current calendar year in UTC, used for
            `ytd_avg_fill_days`.
        is_configured:
          type: boolean
          description: >-
            Whether an admin has saved board settings. When false, `settings`
            holds the defaults.
        settings:
          $ref: '#/components/schemas/TeamCapacitySettings'
        summary:
          type: object
          properties:
            member_count:
              type: integer
              description: Active team members in the report.
            active_search_count:
              type: integer
              description: >-
                Unique active jobs after the status filter, across the whole
                team.
            team_avg_load_score:
              type: number
              description: Average load score across members with a load score above zero.
          required:
            - member_count
            - active_search_count
            - team_avg_load_score
          description: Team-wide totals.
        available_roles:
          type: array
          items:
            $ref: '#/components/schemas/TeamCapacityRole'
          description: >-
            Roles held on active jobs. Use these names for `role_filter`,
            `role_weights`, and role sort columns.
        available_job_statuses:
          type: array
          items:
            $ref: '#/components/schemas/TeamCapacityJobStatus'
          description: >-
            The team’s job statuses in pipeline order. Use these names for
            `job_status_filter`.
        members:
          type: array
          items:
            $ref: '#/components/schemas/TeamCapacityMember'
          description: >-
            One row per active team member, ordered by `settings.sort`. Members
            with no value for the sort column come last.
      required:
        - generated_at
        - quarter_start
        - year_start
        - is_configured
        - settings
        - summary
        - available_roles
        - available_job_statuses
        - members
    TeamCapacitySettings:
      type: object
      properties:
        show_search_stage:
          type: boolean
          description: Whether the board shows the search stage columns.
        stage_config:
          $ref: '#/components/schemas/TeamCapacityStageConfig'
        show_load_score:
          type: boolean
          description: Whether the board shows the weighted load score column.
        role_weights:
          type: array
          items:
            $ref: '#/components/schemas/TeamCapacityRoleWeight'
          description: >-
            Load score weight for each role. Roles without a saved weight get a
            default: the owner role gets more weight and the remaining roles
            share the rest.
        enable_active_search_color_coding:
          type: boolean
          description: >-
            Whether member names are colored light, moderate, or heavy by active
            search count.
        active_search_color_thresholds:
          $ref: '#/components/schemas/TeamCapacityColorThresholds'
        job_status_filter:
          type: array
          items:
            type: string
          description: >-
            Job status names included in the report. Empty means every status.
            Until an admin saves settings, this defaults to every status that is
            not closed won or closed lost.
        role_filter:
          type: array
          items:
            type: string
          description: >-
            Role names included in the report. A member’s search only counts
            when they hold one of these roles on it. Empty means every role.
        sort:
          $ref: '#/components/schemas/TeamCapacitySort'
      required:
        - show_search_stage
        - stage_config
        - show_load_score
        - role_weights
        - enable_active_search_color_coding
        - active_search_color_thresholds
        - job_status_filter
        - role_filter
        - sort
    TeamCapacityRole:
      type: object
      properties:
        name:
          type: string
          description: Role name.
        is_owner_role:
          type: boolean
          description: Whether this is the job owner role.
      required:
        - name
        - is_owner_role
    TeamCapacityJobStatus:
      type: object
      properties:
        name:
          type: string
          description: Job status name.
        color:
          type:
            - string
            - 'null'
          description: Status color (hex).
        status_type:
          type:
            - string
            - 'null'
          description: >-
            Status category, such as `in_progress`, `closed_won`, or
            `closed_lost`.
      required:
        - name
        - color
        - status_type
    TeamCapacityMember:
      type: object
      properties:
        team_member_id:
          type: string
          format: uuid
          description: Team member UUID. Matches IDs from `GET /v1/team-members`.
        first_name:
          type:
            - string
            - 'null'
          description: First name.
        last_name:
          type:
            - string
            - 'null'
          description: Last name.
        title:
          type:
            - string
            - 'null'
          description: Team member title, such as Partner or Associate.
        image_url:
          type:
            - string
            - 'null'
          description: Avatar URL.
        total_searches:
          type: integer
          description: >-
            Active (not archived) jobs the member is on, after the status and
            role filters.
        workload_tier:
          type: string
          enum:
            - light
            - moderate
            - heavy
          description: >-
            Workload tier from `total_searches` and
            `settings.active_search_color_thresholds`.
        stage_breakdown:
          $ref: '#/components/schemas/TeamCapacityStageBreakdown'
        role_breakdown:
          type: array
          items:
            $ref: '#/components/schemas/TeamCapacityRoleCount'
          description: >-
            Active searches per role, for the roles the member holds. A member
            with two roles on one job counts once under each role.
        load_score:
          type: number
          description: >-
            Sum of role weights across every role the member holds on every
            active search.
        kicked_off_this_quarter:
          type: integer
          description: >-
            Jobs the member is on with an open date between the start of the
            quarter and now.
        closed_this_quarter:
          type: integer
          description: >-
            Jobs the member is on with a closed status and an end date between
            the start of the quarter and now.
        avg_days_out:
          type:
            - number
            - 'null'
          description: >-
            Average days since open date across active searches. Null when none
            have an open date.
        avg_days_left:
          type:
            - number
            - 'null'
          description: >-
            Average days until end date across active searches. Negative values
            mean overdue. Null when none have an end date.
        ytd_avg_fill_days:
          type:
            - number
            - 'null'
          description: >-
            Average days from open to end date for archived jobs that ended this
            year. Null when there are none.
        active_searches:
          type: array
          items:
            $ref: '#/components/schemas/TeamCapacityActiveSearch'
          description: Active searches, newest kickoff first.
      required:
        - team_member_id
        - first_name
        - last_name
        - title
        - image_url
        - total_searches
        - workload_tier
        - stage_breakdown
        - role_breakdown
        - load_score
        - kicked_off_this_quarter
        - closed_this_quarter
        - avg_days_out
        - avg_days_left
        - ytd_avg_fill_days
        - active_searches
    TeamCapacityStageConfig:
      type: object
      properties:
        stage_1_name:
          type: string
          description: Display name for the first stage (newest searches).
        stage_1_max_weeks:
          type: integer
          description: Searches kicked off up to this many weeks ago fall in stage 1.
        stage_2_name:
          type: string
          description: Display name for the second stage.
        stage_2_max_weeks:
          type: integer
          description: >-
            Searches older than stage 1 and up to this many weeks old fall in
            stage 2. Always greater than `stage_1_max_weeks`.
        stage_3_name:
          type: string
          description: >-
            Display name for the third stage. Holds every active search older
            than `stage_2_max_weeks`.
      required:
        - stage_1_name
        - stage_1_max_weeks
        - stage_2_name
        - stage_2_max_weeks
        - stage_3_name
    TeamCapacityRoleWeight:
      type: object
      properties:
        role_name:
          type: string
          description: Job team role name.
        weight:
          type: integer
          description: >-
            Points a member earns toward their load score for each active search
            where they hold this role.
      required:
        - role_name
        - weight
    TeamCapacityColorThresholds:
      type: object
      properties:
        moderate_min:
          type: integer
          description: >-
            Members with at least this many active searches are shown as
            moderate (yellow).
        heavy_min:
          type: integer
          description: >-
            Members with at least this many active searches are shown as heavy
            (red). Always greater than `moderate_min`.
      required:
        - moderate_min
        - heavy_min
    TeamCapacitySort:
      type: object
      properties:
        column:
          type: string
          description: >-
            Column the board is sorted by. One of `member`, `title`,
            `total_searches`, `stage_1`, `stage_2`, `stage_3`, `load_score`,
            `kicked_off_this_quarter`, `closed_this_quarter`, `avg_days_out`,
            `avg_days_left`, `ytd_avg_fill_days`, or a role name to sort by that
            role’s column in the Role Breakdown.
        direction:
          type: string
          enum:
            - asc
            - desc
          description: Sort direction.
      required:
        - column
        - direction
    TeamCapacityStageBreakdown:
      type: object
      properties:
        stage_1:
          type: integer
          description: Active searches in stage 1 (see `settings.stage_config`).
        stage_2:
          type: integer
          description: Active searches in stage 2.
        stage_3:
          type: integer
          description: Active searches in stage 3.
      required:
        - stage_1
        - stage_2
        - stage_3
    TeamCapacityRoleCount:
      type: object
      properties:
        role_name:
          type: string
          description: Job team role name.
        active_searches:
          type: integer
          description: Active searches where the member holds this role.
      required:
        - role_name
        - active_searches
    TeamCapacityActiveSearch:
      type: object
      properties:
        job_id:
          type: string
          format: uuid
          description: Job UUID.
        title:
          type: string
          description: Job title.
        company_name:
          type: string
          description: Client company name, or `Unknown` when the job has none.
        company_domain:
          type:
            - string
            - 'null'
          description: Client company domain, without protocol or `www.`.
        open_date:
          type:
            - string
            - 'null'
          description: Date the search was kicked off.
        end_date:
          type:
            - string
            - 'null'
          description: Target or actual end date of the search.
        role_names:
          type: array
          items:
            type: string
          description: Roles the member holds on this job.
      required:
        - job_id
        - title
        - company_name
        - company_domain
        - open_date
        - end_date
        - role_names
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Authenticate with a Bearer token: API key, OAuth token, or session
        token.

````

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