repowise-dev Owners API

The owners API from repowise-dev — 4 operation(s) for owners.

Operations 4

GET /api/repos/{repo_id}/owners List Owners #
GET /api/repos/{repo_id}/owners/summary Get Owners Summary #
GET /api/repos/{repo_id}/owners/knowledge-matrix Get Knowledge Matrix #
GET /api/repos/{repo_id}/owners/{owner_key} Get Owner #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/repowise-dev:repowise-dev-owners-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

repowise-dev-owners-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: repowise Owners API
  description: REST API for repowise — codebase documentation engine
  version: 0.59.0
tags:
- name: Owners
paths:
  /api/repos/{repo_id}/owners:
    get:
      tags:
      - Owners
      summary: List Owners
      description: Directory of contributors with rollup stats — engineering-leader view.
      operationId: list_owners_api_repos__repo_id__owners_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: repo_id
        in: path
        required: true
        schema:
          type: string
          title: Repo Id
      - name: q
        in: query
        required: false
        schema:
          type: string
          description: Substring filter on name or email
          default: ''
          title: Q
        description: Substring filter on name or email
      - name: sort
        in: query
        required: false
        schema:
          type: string
          description: 'One of: files_owned, hotspots_owned, commit_count_90d, dead_code_lines_owned, bus_factor_risk_files'
          default: files_owned
          title: Sort
        description: 'One of: files_owned, hotspots_owned, commit_count_90d, dead_code_lines_owned, bus_factor_risk_files'
      - name: kind
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - human
            - bot
            - agent
            type: string
          - type: 'null'
          description: Only this kind of identity; omitted lists every kind
          title: Kind
        description: Only this kind of identity; omitted lists every kind
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 50
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Paginated_OwnerListEntry_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-repowise-stability: internal
  /api/repos/{repo_id}/owners/summary:
    get:
      tags:
      - Owners
      summary: Get Owners Summary
      description: Truck factor, single-owner files, silos, concentration and activity, people only.
      operationId: get_owners_summary_api_repos__repo_id__owners_summary_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: repo_id
        in: path
        required: true
        schema:
          type: string
          title: Repo Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnersSummaryResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-repowise-stability: internal
  /api/repos/{repo_id}/owners/knowledge-matrix:
    get:
      tags:
      - Owners
      summary: Get Knowledge Matrix
      description: Every code file's top authors and risk facts, for client-side off-boarding.
      operationId: get_knowledge_matrix_api_repos__repo_id__owners_knowledge_matrix_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: repo_id
        in: path
        required: true
        schema:
          type: string
          title: Repo Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KnowledgeMatrixResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-repowise-stability: internal
  /api/repos/{repo_id}/owners/{owner_key}:
    get:
      tags:
      - Owners
      summary: Get Owner
      description: 'Full profile for one contributor.


        ``owner_key`` is either the contributor''s email (preferred) or

        ``name:`` for entries with no email recorded. URL-encoded

        by the caller.'
      operationId: get_owner_api_repos__repo_id__owners__owner_key__get
      security:
      - APIKeyHeader: []
      parameters:
      - name: repo_id
        in: path
        required: true
        schema:
          type: string
          title: Repo Id
      - name: owner_key
        in: path
        required: true
        schema:
          type: string
          title: Owner Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OwnerProfileResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-repowise-stability: internal
components:
  schemas:
    ConcentrationOwner:
      properties:
        key:
          type: string
          title: Key
        name:
          type: string
          title: Name
        files_owned:
          type: integer
          title: Files Owned
        share:
          type: number
          title: Share
      type: object
      required:
      - key
      - name
      - files_owned
      - share
      title: ConcentrationOwner
    QuietOwner:
      properties:
        key:
          type: string
          title: Key
        name:
          type: string
          title: Name
        last_commit_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Commit At
        files_owned:
          type: integer
          title: Files Owned
        changing_files_owned:
          type: integer
          title: Changing Files Owned
      type: object
      required:
      - key
      - name
      - last_commit_at
      - files_owned
      - changing_files_owned
      title: QuietOwner
    Paginated_OwnerListEntry_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/OwnerListEntry'
          type: array
          title: Items
        total:
          type: integer
          title: Total
        has_more:
          type: boolean
          title: Has More
        next_offset:
          anyOf:
          - type: integer
          - type: 'null'
          title: Next Offset
      type: object
      required:
      - items
      - total
      - has_more
      title: Paginated[OwnerListEntry]
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    OwnerModuleRollup:
      properties:
        module_path:
          type: string
          title: Module Path
        file_count:
          type: integer
          title: File Count
        hotspot_count:
          type: integer
          title: Hotspot Count
        dominant_pct:
          type: number
          title: Dominant Pct
      type: object
      required:
      - module_path
      - file_count
      - hotspot_count
      - dominant_pct
      title: OwnerModuleRollup
    OwnerRef:
      properties:
        key:
          type: string
          title: Key
        name:
          type: string
          title: Name
      type: object
      required:
      - key
      - name
      title: OwnerRef
    OwnerFileEntry:
      properties:
        file_path:
          type: string
          title: File Path
        commit_count_90d:
          type: integer
          title: Commit Count 90D
        churn_percentile:
          type: number
          title: Churn Percentile
        bus_factor:
          type: integer
          title: Bus Factor
        is_hotspot:
          type: boolean
          title: Is Hotspot
        last_commit_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Commit At
        primary_owner_commit_pct:
          anyOf:
          - type: number
          - type: 'null'
          title: Primary Owner Commit Pct
      type: object
      required:
      - file_path
      - commit_count_90d
      - churn_percentile
      - bus_factor
      - is_hotspot
      - last_commit_at
      - primary_owner_commit_pct
      title: OwnerFileEntry
    OwnerProfileResponse:
      properties:
        key:
          type: string
          title: Key
        name:
          type: string
          title: Name
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        kind:
          type: string
          enum:
          - human
          - bot
          - agent
          title: Kind
        aliases:
          $ref: '#/components/schemas/OwnerAliases'
        files_owned:
          type: integer
          title: Files Owned
        hotspots_owned:
          type: integer
          title: Hotspots Owned
        silo_modules:
          type: integer
          title: Silo Modules
        dead_code_files_owned:
          type: integer
          title: Dead Code Files Owned
        dead_code_lines_owned:
          type: integer
          title: Dead Code Lines Owned
        commit_count_90d:
          anyOf:
          - type: integer
          - type: 'null'
          title: Commit Count 90D
        commit_count_90d_at_least:
          anyOf:
          - type: integer
          - type: 'null'
          title: Commit Count 90D At Least
        last_commit_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Commit At
        first_commit_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: First Commit At
        bus_factor_risk_files:
          type: integer
          title: Bus Factor Risk Files
        lines_added_90d_est:
          type: integer
          title: Lines Added 90D Est
        lines_deleted_90d_est:
          type: integer
          title: Lines Deleted 90D Est
        modules:
          items:
            $ref: '#/components/schemas/OwnerModuleRollup'
          type: array
          title: Modules
        top_files:
          items:
            $ref: '#/components/schemas/OwnerFileEntry'
          type: array
          title: Top Files
        files_touched_total:
          type: integer
          title: Files Touched Total
          default: 0
        co_authors:
          items:
            $ref: '#/components/schemas/OwnerCoAuthor'
          type: array
          title: Co Authors
        co_authors_total:
          type: integer
          title: Co Authors Total
          default: 0
        commit_categories:
          additionalProperties: true
          type: object
          title: Commit Categories
      type: object
      required:
      - key
      - name
      - email
      - kind
      - aliases
      - files_owned
      - hotspots_owned
      - silo_modules
      - dead_code_files_owned
      - dead_code_lines_owned
      - commit_count_90d
      - last_commit_at
      - first_commit_at
      - bus_factor_risk_files
      - lines_added_90d_est
      - lines_deleted_90d_est
      - modules
      - top_files
      - co_authors
      - commit_categories
      title: OwnerProfileResponse
    OwnerListEntry:
      properties:
        key:
          type: string
          title: Key
        name:
          type: string
          title: Name
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        kind:
          type: string
          enum:
          - human
          - bot
          - agent
          title: Kind
        files_owned:
          type: integer
          title: Files Owned
        hotspots_owned:
          type: integer
          title: Hotspots Owned
        silo_modules:
          type: integer
          title: Silo Modules
        dead_code_files_owned:
          type: integer
          title: Dead Code Files Owned
        dead_code_lines_owned:
          type: integer
          title: Dead Code Lines Owned
        commit_count_90d:
          anyOf:
          - type: integer
          - type: 'null'
          title: Commit Count 90D
        commit_count_90d_at_least:
          anyOf:
          - type: integer
          - type: 'null'
          title: Commit Count 90D At Least
        last_commit_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Commit At
        bus_factor_risk_files:
          type: integer
          title: Bus Factor Risk Files
      type: object
      required:
      - key
      - name
      - email
      - kind
      - files_owned
      - hotspots_owned
      - silo_modules
      - dead_code_files_owned
      - dead_code_lines_owned
      - commit_count_90d
      - last_commit_at
      - bus_factor_risk_files
      title: OwnerListEntry
      description: One row in the engineering-leader-facing owners directory.
    KnowledgeMatrixResponse:
      properties:
        authors:
          items:
            $ref: '#/components/schemas/KnowledgeMatrixAuthor'
          type: array
          title: Authors
        dirs:
          items:
            type: string
          type: array
          title: Dirs
        files:
          items:
            prefixItems:
            - type: integer
            - type: string
            - type: integer
            - anyOf:
              - type: number
              - type: 'null'
            - type: boolean
            - type: integer
            - anyOf:
              - type: integer
              - type: 'null'
            - items:
                prefixItems:
                - type: integer
                - type: number
                type: array
                maxItems: 2
                minItems: 2
              type: array
            - type: boolean
            type: array
            maxItems: 9
            minItems: 9
          type: array
          title: Files
      type: object
      required:
      - authors
      - dirs
      - files
      title: KnowledgeMatrixResponse
      description: Every code file's top-5 human authors, positional and indexed for size.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SiloModule:
      properties:
        module:
          type: string
          title: Module
        owner:
          $ref: '#/components/schemas/OwnerRef'
        owned_files:
          type: integer
          title: Owned Files
        file_count:
          type: integer
          title: File Count
        share:
          type: number
          title: Share
      type: object
      required:
      - module
      - owner
      - owned_files
      - file_count
      - share
      title: SiloModule
    KnowledgeMatrixAuthor:
      properties:
        key:
          type: string
          title: Key
        name:
          type: string
          title: Name
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        last_commit_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Commit At
        active:
          type: boolean
          title: Active
      type: object
      required:
      - key
      - name
      - email
      - last_commit_at
      - active
      title: KnowledgeMatrixAuthor
    OwnerAliases:
      properties:
        names:
          items:
            type: string
          type: array
          title: Names
        emails:
          items:
            type: string
          type: array
          title: Emails
      type: object
      required:
      - names
      - emails
      title: OwnerAliases
      description: Every display name and canonical email folded into one person.
    OwnersSummaryResponse:
      properties:
        truck_factor:
          anyOf:
          - type: integer
          - type: 'null'
          title: Truck Factor
        people:
          type: integer
          title: People
        automation_identities:
          type: integer
          title: Automation Identities
        owners:
          type: integer
          title: Owners
        tracked_files:
          type: integer
          title: Tracked Files
        owned_files:
          type: integer
          title: Owned Files
        single_owner_files:
          type: integer
          title: Single Owner Files
        single_owner_hotspots:
          type: integer
          title: Single Owner Hotspots
        concentration:
          $ref: '#/components/schemas/OwnershipConcentration'
        silo_modules:
          items:
            $ref: '#/components/schemas/SiloModule'
          type: array
          title: Silo Modules
        activity_window_days:
          type: integer
          title: Activity Window Days
        active_contributors:
          type: integer
          title: Active Contributors
        activity_complete:
          type: boolean
          title: Activity Complete
        quiet_owners:
          items:
            $ref: '#/components/schemas/QuietOwner'
          type: array
          title: Quiet Owners
        quiet_owners_total:
          type: integer
          title: Quiet Owners Total
      type: object
      required:
      - truck_factor
      - people
      - automation_identities
      - owners
      - tracked_files
      - owned_files
      - single_owner_files
      - single_owner_hotspots
      - concentration
      - silo_modules
      - activity_window_days
      - active_contributors
      - activity_complete
      - quiet_owners
      - quiet_owners_total
      title: OwnersSummaryResponse
      description: Repository knowledge risk, people only (automation owns nothing).
    OwnershipConcentration:
      properties:
        top_n:
          type: integer
          title: Top N
        share:
          anyOf:
          - type: number
          - type: 'null'
          title: Share
        owners:
          items:
            $ref: '#/components/schemas/ConcentrationOwner'
          type: array
          title: Owners
      type: object
      required:
      - top_n
      - share
      - owners
      title: OwnershipConcentration
    OwnerCoAuthor:
      properties:
        name:
          type: string
          title: Name
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        shared_files:
          type: integer
          title: Shared Files
        co_change_strength:
          type: number
          title: Co Change Strength
      type: object
      required:
      - name
      - email
      - shared_files
      - co_change_strength
      title: OwnerCoAuthor
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: Authorization