---
title: "Get users by GitHub username"
method: POST
path: "/api/raw/users/by-login"
---

# Get users by GitHub username

`POST /api/raw/users/by-login`

Fetch GitHub users by their usernames (login). Supports batch requests (1-100 logins). Requires RAW service. Credits: 1 per result returned.

## Request body

- GetUsersByLoginRequest
  - `logins` string[], required — Array of GitHub usernames (1-100)
  - `includeAttributes` UserIncludeAttributes — Optional graph relationships to include (followers, following, stars, owns, contributes)
    - `followers` object — Include followers with cursor pagination
      - `first` integer, required — Number of items to return (max: 100)
      - `after` string — Cursor for pagination (opaque base64-encoded)
      - `filters` union — Optional filters for users. Supports fields like login, company, location, resolvedCountry, resolvedState, resolvedCity. Operators: Eq, NotEq, In, NotIn, Lt, Lte, Gt, Gte.
        - object
          - `field` string, required — Field name to filter on
          - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
          - `value` union, required — Filter value (type depends on field and operator)
            - string
            - number
            - string[]
            - number[]
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` object[], required — Array of field filters
            - `field` string, required — Field name to filter on
            - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
            - `value` union, required — Filter value (type depends on field and operator)
              - …
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` union[], required — Array of filters
            - union
              - …
    - `following` object — Include users this user follows with cursor pagination
      - `first` integer, required — Number of items to return (max: 100)
      - `after` string — Cursor for pagination (opaque base64-encoded)
      - `filters` union — Optional filters for users. Supports fields like login, company, location, resolvedCountry, resolvedState, resolvedCity. Operators: Eq, NotEq, In, NotIn, Lt, Lte, Gt, Gte.
        - object
          - `field` string, required — Field name to filter on
          - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
          - `value` union, required — Filter value (type depends on field and operator)
            - string
            - number
            - string[]
            - number[]
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` object[], required — Array of field filters
            - `field` string, required — Field name to filter on
            - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
            - `value` union, required — Filter value (type depends on field and operator)
              - …
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` union[], required — Array of filters
            - union
              - …
    - `stars` object — Include starred repositories with cursor pagination
      - `first` integer, required — Number of items to return (max: 100)
      - `after` string — Cursor for pagination (opaque base64-encoded)
      - `filters` union — Optional filters for users. Supports fields like login, company, location, resolvedCountry, resolvedState, resolvedCity. Operators: Eq, NotEq, In, NotIn, Lt, Lte, Gt, Gte.
        - object
          - `field` string, required — Field name to filter on
          - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
          - `value` union, required — Filter value (type depends on field and operator)
            - string
            - number
            - string[]
            - number[]
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` object[], required — Array of field filters
            - `field` string, required — Field name to filter on
            - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
            - `value` union, required — Filter value (type depends on field and operator)
              - …
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` union[], required — Array of filters
            - union
              - …
    - `owns` object — Include owned repositories with cursor pagination
      - `first` integer, required — Number of items to return (max: 100)
      - `after` string — Cursor for pagination (opaque base64-encoded)
      - `filters` union — Optional filters for users. Supports fields like login, company, location, resolvedCountry, resolvedState, resolvedCity. Operators: Eq, NotEq, In, NotIn, Lt, Lte, Gt, Gte.
        - object
          - `field` string, required — Field name to filter on
          - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
          - `value` union, required — Filter value (type depends on field and operator)
            - string
            - number
            - string[]
            - number[]
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` object[], required — Array of field filters
            - `field` string, required — Field name to filter on
            - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
            - `value` union, required — Filter value (type depends on field and operator)
              - …
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` union[], required — Array of filters
            - union
              - …
    - `contributes` object — Include contributed repositories with cursor pagination
      - `first` integer, required — Number of items to return (max: 100)
      - `after` string — Cursor for pagination (opaque base64-encoded)
      - `filters` union — Optional filters for users. Supports fields like login, company, location, resolvedCountry, resolvedState, resolvedCity. Operators: Eq, NotEq, In, NotIn, Lt, Lte, Gt, Gte.
        - object
          - `field` string, required — Field name to filter on
          - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
          - `value` union, required — Filter value (type depends on field and operator)
            - string
            - number
            - string[]
            - number[]
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` object[], required — Array of field filters
            - `field` string, required — Field name to filter on
            - `op` 'Eq' | 'NotEq' | 'In' | 'NotIn' | 'Lt' | 'Lte' | 'Gt' | 'Gte' | 'Glob' | 'NotGlob' | 'IGlob' | 'NotIGlob' | 'Regex' | 'Contains' | 'NotContains' | 'ContainsAny' | 'NotContainsAny' | 'AnyLt' | 'AnyLte' | 'AnyGt' | 'AnyGte' | 'ContainsAllTokens', required — Filter operator
            - `value` union, required — Filter value (type depends on field and operator)
              - …
        - object
          - `op` 'And' | 'Or', required — Composite operator
          - `filters` union[], required — Array of filters
            - union
              - …
    - `devrank` boolean — Include devrank data for the user

## Response `200`

Users retrieved successfully

- UsersResponse
  - `users` PublicUserWithGraph[], required — Array of user objects
    - `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 fetched from devrank endpoints)
      - `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
    - `followers` PaginatedUsers — Users who follow this user (when includeAttributes.followers is specified)
      - `edges` PublicUser[], required — Array of user objects
        - `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)
      - `pageInfo` PageInfo, required — Pagination information
        - `hasNextPage` boolean, required — Whether there are more items available
        - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
    - `following` object — Users this user follows (when includeAttributes.following is specified)
      - `edges` PublicUser[], required — Array of user objects
        - `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)
      - `pageInfo` PageInfo, required — Pagination information
        - `hasNextPage` boolean, required — Whether there are more items available
        - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
    - `stars` PaginatedRepositories — Repositories this user starred (when includeAttributes.stars is specified)
      - `edges` PublicRepositoryWithGraph[], required — Array of repository objects
        - `id` string, required — BountyLab internal ID
        - `githubId` string, required — GitHub node ID
        - `ownerLogin` string, required — Repository owner username
        - `name` string, required — Repository name
        - `description` string, nullable — Repository description
        - `stargazerCount` number, required — Number of stars
        - `language` string, nullable — Primary programming language
        - `totalIssuesCount` number, required — Total number of issues (open + closed)
        - `totalIssuesOpen` number, required — Number of open issues
        - `totalIssuesClosed` number, required — Number of closed issues
        - `readmePreview` string, nullable — Preview of repository README (first ~500 chars)
        - `lastContributorLocations` string[], nullable — Locations of last contributors to this repository
        - `createdAt` string, nullable — ISO 8601 timestamp when repository was created
        - `updatedAt` string, nullable — ISO 8601 timestamp when repository was last updated
        - `embeddedAt` string, nullable — ISO 8601 timestamp when embedding was created
        - `score` number — Relevance score from search (0-1, lower is more relevant for cosine distance)
        - `owner` object — Repository owner (when includeAttributes.owner = true)
          - `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)
        - `contributors` object — Repository contributors (when includeAttributes.contributors is specified)
          - `edges` PublicUser[], required — Array of user objects
            - `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
              - …
            - `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)
          - `pageInfo` PageInfo, required — Pagination information
            - `hasNextPage` boolean, required — Whether there are more items available
            - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
        - `starrers` object — Users who starred this repository (when includeAttributes.starrers is specified)
          - `edges` PublicUser[], required — Array of user objects
            - `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
              - …
            - `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)
          - `pageInfo` PageInfo, required — Pagination information
            - `hasNextPage` boolean, required — Whether there are more items available
            - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
        - `ownerDevrank` object — Devrank data for the repository owner (when includeAttributes.ownerDevrank = 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
      - `pageInfo` PageInfo, required — Pagination information
        - `hasNextPage` boolean, required — Whether there are more items available
        - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
    - `owns` object — Repositories this user owns (when includeAttributes.owns is specified)
      - `edges` PublicRepositoryWithGraph[], required — Array of repository objects
        - `id` string, required — BountyLab internal ID
        - `githubId` string, required — GitHub node ID
        - `ownerLogin` string, required — Repository owner username
        - `name` string, required — Repository name
        - `description` string, nullable — Repository description
        - `stargazerCount` number, required — Number of stars
        - `language` string, nullable — Primary programming language
        - `totalIssuesCount` number, required — Total number of issues (open + closed)
        - `totalIssuesOpen` number, required — Number of open issues
        - `totalIssuesClosed` number, required — Number of closed issues
        - `readmePreview` string, nullable — Preview of repository README (first ~500 chars)
        - `lastContributorLocations` string[], nullable — Locations of last contributors to this repository
        - `createdAt` string, nullable — ISO 8601 timestamp when repository was created
        - `updatedAt` string, nullable — ISO 8601 timestamp when repository was last updated
        - `embeddedAt` string, nullable — ISO 8601 timestamp when embedding was created
        - `score` number — Relevance score from search (0-1, lower is more relevant for cosine distance)
        - `owner` object — Repository owner (when includeAttributes.owner = true)
          - `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)
        - `contributors` object — Repository contributors (when includeAttributes.contributors is specified)
          - `edges` PublicUser[], required — Array of user objects
            - `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
              - …
            - `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)
          - `pageInfo` PageInfo, required — Pagination information
            - `hasNextPage` boolean, required — Whether there are more items available
            - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
        - `starrers` object — Users who starred this repository (when includeAttributes.starrers is specified)
          - `edges` PublicUser[], required — Array of user objects
            - `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
              - …
            - `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)
          - `pageInfo` PageInfo, required — Pagination information
            - `hasNextPage` boolean, required — Whether there are more items available
            - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
        - `ownerDevrank` object — Devrank data for the repository owner (when includeAttributes.ownerDevrank = 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
      - `pageInfo` PageInfo, required — Pagination information
        - `hasNextPage` boolean, required — Whether there are more items available
        - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
    - `contributes` object — Repositories this user contributes to (when includeAttributes.contributes is specified)
      - `edges` PublicRepositoryWithGraph[], required — Array of repository objects
        - `id` string, required — BountyLab internal ID
        - `githubId` string, required — GitHub node ID
        - `ownerLogin` string, required — Repository owner username
        - `name` string, required — Repository name
        - `description` string, nullable — Repository description
        - `stargazerCount` number, required — Number of stars
        - `language` string, nullable — Primary programming language
        - `totalIssuesCount` number, required — Total number of issues (open + closed)
        - `totalIssuesOpen` number, required — Number of open issues
        - `totalIssuesClosed` number, required — Number of closed issues
        - `readmePreview` string, nullable — Preview of repository README (first ~500 chars)
        - `lastContributorLocations` string[], nullable — Locations of last contributors to this repository
        - `createdAt` string, nullable — ISO 8601 timestamp when repository was created
        - `updatedAt` string, nullable — ISO 8601 timestamp when repository was last updated
        - `embeddedAt` string, nullable — ISO 8601 timestamp when embedding was created
        - `score` number — Relevance score from search (0-1, lower is more relevant for cosine distance)
        - `owner` object — Repository owner (when includeAttributes.owner = true)
          - `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)
        - `contributors` object — Repository contributors (when includeAttributes.contributors is specified)
          - `edges` PublicUser[], required — Array of user objects
            - `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
              - …
            - `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)
          - `pageInfo` PageInfo, required — Pagination information
            - `hasNextPage` boolean, required — Whether there are more items available
            - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
        - `starrers` object — Users who starred this repository (when includeAttributes.starrers is specified)
          - `edges` PublicUser[], required — Array of user objects
            - `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
              - …
            - `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)
          - `pageInfo` PageInfo, required — Pagination information
            - `hasNextPage` boolean, required — Whether there are more items available
            - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
        - `ownerDevrank` object — Devrank data for the repository owner (when includeAttributes.ownerDevrank = 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
      - `pageInfo` PageInfo, required — Pagination information
        - `hasNextPage` boolean, required — Whether there are more items available
        - `endCursor` string, nullable, required — Cursor to fetch next page (null if no more items)
  - `count` number, required — Number of users returned

## Other responses

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

## Changes

- **2026-01-23** `800dc7d25374` — 5 breaking, 5 info
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10, subschema #11, subschema #12, subschema #13, subschema #14, subschema #15, subschema #16, subschema #17, subschema #18, subschema #19, subschema #20, subschema #21, subschema #22, subschema #23, subschema #24, subschema #25, subschema #26, subschema #27, subschema #28, subschema #29, subschema #30, subschema #31, subschema #32, subschema #33, subschema #34, subschema #35, subschema #36, subschema #37, subschema #38, subschema #39, subschema #40, subschema #41, subschema #42, subschema #43, subschema #44, subschema #45, subschema #46, subschema #47, subschema #48, subschema #49, subschema #50, subschema #51, subschema #52, subschema #53, subschema #54, subschema #55, subschema #56, subschema #57, subschema #58, subschema #59, subschema #60, subschema #61, subschema #62, subschema #63, subschema #64, subschema #65, subschema #66, subschema #67, subschema #68, subschema #69, subschema #70, subschema #71, subschema #72, subschema #73, subschema #74, subschema #75, subschema #76, subschema #77, subschema #78, subschema #79, subschema #80, subschema #81, subschema #82, subschema #83, subschema #84, subschema #85, subschema #86, subschema #87, subschema #88, subschema #89, subschema #90, subschema #91, subschema #92, subschema #93, subschema #94, subschema #95, subschema #96, subschema #97, subschema #98, subschema #99, subschema #100, subschema #101, subschema #102, subschema #103, subschema #104, subschema #105, subschema #106, subschema #107, subschema #108, subschema #109, subschema #110, subschema #111, subschema #112, subschema #113, subschema #114, subschema #115, subschema #116, subschema #117, subschema #118, subschema #119, subschema #120, subschema #121, subschema #122, subschema #123, subschema #124, subschema #125, subschema #126, subschema #127, subschema #128, subschema #129, subschema #130, subschema #131, subschema #132, subschema #133, subschema #134, subschema #135, subschema #136, subschema #137, subschema #138, subschema #139, subschema #140, subschema #141` from the `includeAttributes/contributes/filters` request property `anyOf` list
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10, subschema #11, subschema #12, subschema #13, subschema #14, subschema #15, subschema #16, subschema #17, subschema #18, subschema #19, subschema #20, subschema #21, subschema #22, subschema #23, subschema #24, subschema #25, subschema #26, subschema #27, subschema #28, subschema #29, subschema #30, subschema #31, subschema #32, subschema #33, subschema #34, subschema #35, subschema #36, subschema #37, subschema #38, subschema #39, subschema #40, subschema #41, subschema #42, subschema #43, subschema #44, subschema #45, subschema #46, subschema #47, subschema #48, subschema #49, subschema #50, subschema #51, subschema #52, subschema #53, subschema #54, subschema #55, subschema #56, subschema #57, subschema #58, subschema #59, subschema #60, subschema #61, subschema #62, subschema #63, subschema #64, subschema #65, subschema #66, subschema #67, subschema #68, subschema #69, subschema #70, subschema #71, subschema #72, subschema #73, subschema #74, subschema #75, subschema #76, subschema #77, subschema #78, subschema #79, subschema #80, subschema #81, subschema #82, subschema #83, subschema #84, subschema #85, subschema #86, subschema #87, subschema #88, subschema #89, subschema #90, subschema #91, subschema #92, subschema #93, subschema #94, subschema #95, subschema #96, subschema #97, subschema #98, subschema #99, subschema #100, subschema #101, subschema #102, subschema #103, subschema #104, subschema #105, subschema #106, subschema #107, subschema #108, subschema #109, subschema #110, subschema #111, subschema #112, subschema #113, subschema #114, subschema #115, subschema #116, subschema #117, subschema #118, subschema #119, subschema #120, subschema #121, subschema #122, subschema #123, subschema #124, subschema #125, subschema #126, subschema #127, subschema #128, subschema #129, subschema #130, subschema #131, subschema #132, subschema #133, subschema #134, subschema #135, subschema #136, subschema #137, subschema #138, subschema #139, subschema #140, subschema #141` from the `includeAttributes/followers/filters` request property `anyOf` list
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10, subschema #11, subschema #12, subschema #13, subschema #14, subschema #15, subschema #16, subschema #17, subschema #18, subschema #19, subschema #20, subschema #21, subschema #22, subschema #23, subschema #24, subschema #25, subschema #26, subschema #27, subschema #28, subschema #29, subschema #30, subschema #31, subschema #32, subschema #33, subschema #34, subschema #35, subschema #36, subschema #37, subschema #38, subschema #39, subschema #40, subschema #41, subschema #42, subschema #43, subschema #44, subschema #45, subschema #46, subschema #47, subschema #48, subschema #49, subschema #50, subschema #51, subschema #52, subschema #53, subschema #54, subschema #55, subschema #56, subschema #57, subschema #58, subschema #59, subschema #60, subschema #61, subschema #62, subschema #63, subschema #64, subschema #65, subschema #66, subschema #67, subschema #68, subschema #69, subschema #70, subschema #71, subschema #72, subschema #73, subschema #74, subschema #75, subschema #76, subschema #77, subschema #78, subschema #79, subschema #80, subschema #81, subschema #82, subschema #83, subschema #84, subschema #85, subschema #86, subschema #87, subschema #88, subschema #89, subschema #90, subschema #91, subschema #92, subschema #93, subschema #94, subschema #95, subschema #96, subschema #97, subschema #98, subschema #99, subschema #100, subschema #101, subschema #102, subschema #103, subschema #104, subschema #105, subschema #106, subschema #107, subschema #108, subschema #109, subschema #110, subschema #111, subschema #112, subschema #113, subschema #114, subschema #115, subschema #116, subschema #117, subschema #118, subschema #119, subschema #120, subschema #121, subschema #122, subschema #123, subschema #124, subschema #125, subschema #126, subschema #127, subschema #128, subschema #129, subschema #130, subschema #131, subschema #132, subschema #133, subschema #134, subschema #135, subschema #136, subschema #137, subschema #138, subschema #139, subschema #140, subschema #141` from the `includeAttributes/following/filters` request property `anyOf` list
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10, subschema #11, subschema #12, subschema #13, subschema #14, subschema #15, subschema #16, subschema #17, subschema #18, subschema #19, subschema #20, subschema #21, subschema #22, subschema #23, subschema #24, subschema #25, subschema #26, subschema #27, subschema #28, subschema #29, subschema #30, subschema #31, subschema #32, subschema #33, subschema #34, subschema #35, subschema #36, subschema #37, subschema #38, subschema #39, subschema #40, subschema #41, subschema #42, subschema #43, subschema #44, subschema #45, subschema #46, subschema #47, subschema #48, subschema #49, subschema #50, subschema #51, subschema #52, subschema #53, subschema #54, subschema #55, subschema #56, subschema #57, subschema #58, subschema #59, subschema #60, subschema #61, subschema #62, subschema #63, subschema #64, subschema #65, subschema #66, subschema #67, subschema #68, subschema #69, subschema #70, subschema #71, subschema #72, subschema #73, subschema #74, subschema #75, subschema #76, subschema #77, subschema #78, subschema #79, subschema #80, subschema #81, subschema #82, subschema #83, subschema #84, subschema #85, subschema #86, subschema #87, subschema #88, subschema #89, subschema #90, subschema #91, subschema #92, subschema #93, subschema #94, subschema #95, subschema #96, subschema #97, subschema #98, subschema #99, subschema #100, subschema #101, subschema #102, subschema #103, subschema #104, subschema #105, subschema #106, subschema #107, subschema #108, subschema #109, subschema #110, subschema #111, subschema #112, subschema #113, subschema #114, subschema #115, subschema #116, subschema #117, subschema #118, subschema #119, subschema #120, subschema #121, subschema #122, subschema #123, subschema #124, subschema #125, subschema #126, subschema #127, subschema #128, subschema #129, subschema #130, subschema #131, subschema #132, subschema #133, subschema #134, subschema #135, subschema #136, subschema #137, subschema #138, subschema #139, subschema #140, subschema #141` from the `includeAttributes/owns/filters` request property `anyOf` list
  - …6 more
- …earlier changes not shown

[Full history](https://skmtc.dev/bountylaboratories/apis/bounty-lab-public-api/changes/api/raw/users/by-login/post.md)

---

[API](https://skmtc.dev/bountylaboratories/apis/bounty-lab-public-api.md) · [All operations](https://skmtc.dev/bountylaboratories/apis/bounty-lab-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bountylaboratories/apis/bounty-lab-public-api/revisions/4664c27f7e3a?raw)
