---
title: "Get devrank leaderboard with enriched user data"
method: GET
path: "/devrank/leaderboard"
---

# Get devrank leaderboard with enriched user data

`GET /devrank/leaderboard`

Fetch paginated developer ranking leaderboard sorted by crackedScore descending. Returns full user profiles enriched with devrank data. Requires DEVRANK service. Credits: 2 per result (1 for user + 1 for devrank).

## Query parameters

- `page` string — Page number for pagination
- `limit` string — Number of results per page (max 1000)

## Response `200`

Leaderboard retrieved successfully

- LeaderboardResponse
  - `users` PublicUserWithDevrank[], required — Array of users with devrank data sorted by crackedScore descending
    - `id` string, required — BountyLab internal ID
    - `githubId` string, required — GitHub node ID
    - `login` string, required — GitHub username
    - `displayName` string, nullable — User display name
    - `bio` string, nullable — User biography
    - `company` string, nullable — Company name
    - `location` string, nullable — User location
    - `websiteUrl` string, nullable — User website URL
    - `socialAccounts` object[], nullable — Social media accounts
      - `provider` string, required
      - `url` string, required
    - `emails` string[], nullable — Obfuscated email addresses showing only the last 2 characters of the local part and full domain (e.g., "***oe@gmail.com"). Use /api/users/best-email endpoint for unobfuscated email access with intelligent selection.
    - `resolvedCountry` string, nullable — Resolved country from location
    - `resolvedState` string, nullable — Resolved state/region from location
    - `resolvedCity` string, nullable — Resolved city from location
    - `createdAt` string, nullable — ISO 8601 timestamp when user account was created
    - `updatedAt` string, nullable — ISO 8601 timestamp when user was last updated
    - `embeddedAt` string, nullable — ISO 8601 timestamp when metadata was extracted
    - `score` number — Relevance score from search (0-1, lower is more relevant for distance metrics)
    - `devrank` object — Developer ranking data (only present when includeAttributes.devrank = true)
      - `crackedScore` number, required
      - `tier` string, required
      - `rawScore` number, required
      - `trust` number, required
      - `pc` number, required
      - `followersIn` number, required
      - `followingOut` number, required
      - `community` integer, required
      - `createdAt` string, required
      - `updatedAt` string, required
    - `professional` ProfessionalProfile — LinkedIn professional profile data (only present when includeAttributes.professional = true)
      - `firstName` string, nullable, required — First name
      - `lastName` string, nullable, required — Last name
      - `linkedinUrl` string, required — LinkedIn profile URL
      - `title` string, nullable, required — Current job title
      - `headline` string, nullable, required — Professional headline
      - `organization` string, nullable, required — Current organization/company
      - `currentIndustry` string, nullable, required — Current industry sector
      - `city` string, nullable, required — City
      - `state` string, nullable, required — State or province
      - `country` string, nullable, required — Country
      - `location` string, nullable, required — Full location string
      - `seniorityLevel` string, nullable, required — Seniority level (e.g., Senior, Manager)
      - `seniority` string, nullable, required — Seniority classification
      - `functionalArea` string, nullable, required — Functional area (e.g., Engineering, Product)
      - `expertise` string[], nullable, required — Areas of expertise
      - `certifications` string[], nullable, required — Professional certifications
      - `awards` string[], nullable, required — Professional awards
      - `memberships` string[], nullable, required — Professional organization memberships
      - `departments` string[], nullable, required — Departments worked in
      - `patents` string[], nullable, required — Patents held
      - `publications` string[], nullable, required — Publications authored
      - `priorIndustries` string[], nullable, required — Previous industries worked in
      - `languages` string[], nullable, required — Languages spoken
      - `connectionsCount` number, nullable, required — Number of LinkedIn connections
      - `followerCount` number, nullable, required — Number of LinkedIn followers
      - `education` ProfessionalEducation[], required — Education history
        - `campus` string, nullable, required — Name of the educational institution
        - `major` string, nullable, required — Field of study or degree program
        - `specialization` string, nullable, required — Area of specialization
        - `startDate` string, nullable, required — Start date (YYYY-MM-DD format)
        - `endDate` string, nullable, required — End date (YYYY-MM-DD format)
      - `experience` ProfessionalExperience[], required — Work experience history
        - `company` string, nullable, required — Company or organization name
        - `title` string, nullable, required — Job title or position
        - `summary` string, nullable, required — Description of role and responsibilities
        - `location` string, nullable, required — Work location
        - `industry` string, nullable, required — Industry sector
        - `startDate` string, nullable, required — Start date (YYYY-MM-DD format)
        - `endDate` string, nullable, required — End date (YYYY-MM-DD format, null if current)
        - `isCurrent` boolean, nullable, required — Whether this is the current position
    - `aggregates` UserAggregates — Aggregate metrics (only present when includeAttributes.aggregates = true)
      - `totalStars` number, required — Total stars received across all owned repositories
  - `page` integer, required — Current page number
  - `limit` integer, required — Number of results per page

## Other responses

- `400` — Bad request - invalid pagination parameters
- `401` — Unauthorized - API key missing
- `403` — Forbidden - Invalid API key or DEVRANK service access denied
- `429` — Too Many Requests - Hourly credit limit exceeded

---

[API](https://skmtc.net/bountylaboratories/apis/bounty-lab-public-api.md) · [All operations](https://skmtc.net/bountylaboratories/apis/bounty-lab-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bountylaboratories/bounty-lab-public-api/versions/910f8a49ca9e/schema)
