List every contributor on a repository report

GET https://api.vamotalent.ai/v2/deep-research/reports/repos/{owner}/{name}/contributors
Access
Authenticated
search:deep
Cost
Free
Rate limit
120 / minute per account
Quota
None

Everyone a repository report holds as doing the work, one page at a time. The report and its PDF show the top contributors; this lists all of them: the builders ranked by recency-weighted work (pushes and merged pull requests over the last year, with GitHub’s own pull request and commit authorship), then the reviewers and mergers who keep the project moving without pushing much themselves. Each person carries the same fields as a contributor on the report: activity counts, first and last seen, pace, what they author, merge and review, the file types they touch, and identity facts with devRank where Vamo knows them. windowTotal and complete say whether the repository has more builders than a report keeps. Read from the stored report, so it is free and readable only for a repository this account has already researched; a repository the account has not researched is a 404.

Path parameters

  • owner string required
    min 1 chars, max 39 chars
  • name string required
    min 1 chars, max 100 chars

Query parameters

  • cursor string

    The `nextCursor` from the page before, to read the next page. Omit it for the first page.

    max 256 chars
  • limit integer default: 100

    People per page, 100 by default.

    min 1, max 250

Responses

One page of the full contributor list

  • repoName string required

    The `owner/name` the research was run on.

  • contributors array of object required

    This page of the list, in rank order: builders by recency-weighted work, then reviewers.

    • rank integer required

      Position in the whole list, 1 for the person who does the most recent weighted work.

    • login string required

      The contributor’s GitHub handle.

    • role string required

      `builder` when they pushed code or authored merged pull requests in the window, ranked by recency-weighted work. `reviewer` when they only merged or reviewed other people’s pull requests in the sampled merged pull requests, so they carry `depth` but no weight. Builders come first, then reviewers.

      builderreviewer
    • workShare number | null required

      A builder’s share, 0 to 1, of the recency-weighted work of every builder this report holds, so the shares across the whole list add up to 1. Null for a reviewer.

    • depth object | null

      What this person does here, read off the repository’s sampled merged pull requests: pull requests authored and how they were merged, other people’s pull requests merged, reviews given, and the file types their own pull requests touch (the area of the codebase they work in). Null or absent when they are not in the sample.

      • login string required

        The contributor’s GitHub handle.

      • authoredPrsMerged number | null

        AUTHORED work: merged PRs this contributor opened here, over the most recently updated merged PRs of this repository (up to 50) the research sampled. Absent or null means unknown, never zero.

        min 0
      • authoredPrsMergedByOthers number | null

        AUTHORED work: of those, how many another person (not a bot) merged, which is outside validation, over the most recently updated merged PRs of this repository (up to 50) the research sampled. Absent or null means unknown, never zero.

        min 0
      • selfMergedPrs number | null

        AUTHORED work: of those, how many the contributor merged themselves, which shows write access rather than validation, over the most recently updated merged PRs of this repository (up to 50) the research sampled. Absent or null means unknown, never zero.

        min 0
      • mergedForOthers number | null

        MERGED-FOR-OTHERS work: other people’s PRs this contributor merged here, over the most recently updated merged PRs of this repository (up to 50) the research sampled. A gatekeeping fact, never added to the authored counts. Absent or null means unknown, never zero.

        min 0
      • reviewsGiven number | null

        REVIEW work: reviews this contributor left on other people’s PRs here, over the most recently updated merged PRs of this repository (up to 50) the research sampled. A floor, since each PR’s reviews are read up to a cap. Absent or null means unknown, never zero.

        min 0
      • topExtensions array | null

        The extensions this contributor’s own merged PRs here touch most, at most 5, vendored, generated and lockfile paths excluded. Absent or null means unknown, never zero.

        max 5 items
        • extension string required

          The lowercased final extension without the dot (`ts`, `rs`), a known bare file name (`dockerfile`), or `(none)`.

        • filesTouched number required

          Changed files with this extension across the contributor’s own sampled merged PRs here, counted from paths (never line counts).

          min 0
    • identity object | null

      Identity facts where Vamo’s index knows the person, the same block a report contributor carries: name, title, LinkedIn URL, city and country, company, devRank (`crackedScore` and `crackedTier`), gem score, seniority, years of experience, and `hasEmail`. Null when the index does not know them, and always null for a reviewer.

    • person object required
      • login string required

        The GitHub handle.

      • githubUrl string required

        The GitHub profile URL.

      • name string | null required

        Their name, when we hold it.

      • linkedinUrl string | null required

        Their LinkedIn profile URL, when we hold it.

      • location object | null required

        Where they are. Null when we hold no location.

        • city string | null required

          City, when resolved.

        • country string | null required

          Country, when resolved.

        • raw string | null required

          The location as they wrote it.

      • employer object | null required

        Their current employer. Null when we hold none, which says nothing about whether they have one.

        • name string required

          The company in one display form ("Cloudflare" for "Cloudflare, Inc." and "@cloudflare").

        • key string required

          The same company as a lowercase key, equal for every spelling of it, to group people by.

      • devRank number | null required

        devRank, 0 to 100. Null when they are not scored.

      • hasEmail boolean required

        Whether we hold an email address for them. The address is a paid facet.

  • total integer required

    People in the whole list, builders and reviewers, across every page.

    min 0
  • builders integer required

    Builders in the whole list.

    min 0
  • windowTotal integer | null required

    Distinct people who pushed code or merged pull requests in the window, counted before any cap. Null on a report produced before this count was recorded.

  • complete boolean | null required

    True when the list holds every builder in the window. Current reports keep every builder (up to 10,000), so false almost always means an older report (or a repository past that ceiling): older reports keep the 300 with the most recent weighted work (30 before 2026-09-10), and `windowTotal` is larger than `builders`. Null when the report cannot say. Run the research again with `force: true` for a report with the current ceiling.

  • nextCursor string | null required

    Pass as `cursor` to read the next page. Null on the last page.

  • researchedAt string required

    When the research finished, as an ISO 8601 instant.