---
title: "Search the GitHub users dataset"
method: GET
path: "/datasets/github-users/search"
tags: ["Datasets"]
---

# Search the GitHub users dataset

`GET /datasets/github-users/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/datasets/github-users/search`
- Auth: API key in header `x-api-key`

Searches enriched public GitHub user profiles stored in a search index. influence_tier enum: `nano`, `micro`, `mid`, `macro`, `mega`. Sort enum: `relevance`, `rank_score_desc`, `followers_desc`, `account_age_desc`, `account_age_asc`, `distance_asc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).

## Query parameters

- `q` string
- `login` string
- `company` string
- `influence_tier` 'nano' | 'micro' | 'mid' | 'macro' | 'mega'
- `country` string
- `country_code` string
- `state` string
- `city` string
- `domain` string
- `has_email` boolean
- `has_twitter` boolean
- `has_blog` boolean
- `reachable` boolean
- `active_90d` boolean
- `hireable` boolean
- `is_org` boolean
- `is_bot` boolean
- `is_suspected_automation` boolean
- `min_followers` integer
- `max_followers` integer
- `min_repos` integer
- `min_rank_score` integer
- `min_account_age_years` number
- `max_account_age_years` number
- `lat` number
- `lon` number
- `radius_m` integer
- `sort` 'relevance' | 'rank_score_desc' | 'followers_desc' | 'account_age_desc' | 'account_age_asc' | 'distance_asc'
- `page` integer
- `page_size` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- DatasetsGithubUsersSearchResponseDoc
  - `code` integer
  - `data` DatasetsGithubUserSearchResponse
    - `dataset` string: Identifier of the dataset queried (`github-users`).
    - `items` EsGithubUserDatasetItem[]: Matching GitHub user records on this page.
      - `account_age_years` number: Age of the account in years, to one decimal, at the time of `crawled_at`.
      - `active_90d` boolean: Whether the user's latest activity was within 90 days of `crawled_at`.
      - `avatar_url` string: URL of the profile picture.
      - `bio` string: Profile biography text.
      - `blog` string: Website or blog address on the profile.
      - `company` string: Employer name as written on the profile.
      - `company_normalized` string: Company name cleaned for matching: lowercased, with any leading `@` removed.
      - `crawled_at` string: Time the profile was fetched, in UTC (RFC 3339).
      - `created_at` string: Time the GitHub account was created, in UTC (RFC 3339).
      - `distance_m` number: Distance from the query point in metres. Set when results are sorted by distance.
      - `domains` string[]: Interest areas inferred from the profile text, for example `ml-ai`, `frontend` or `devops`.
      - `email` string: Public email address on the profile.
      - `follower_following_ratio` number: Followers divided by accounts followed, to two decimals. Equals `followers` when the user follows nobody.
      - `followers` integer: Number of followers.
      - `following` integer: Number of accounts the user follows.
      - `geo` EsGithubGeo
        - `city` string: Name of the city resolved from the profile location.
        - `country` string: Name of the country resolved from the profile location.
        - `country_code` string: Country code resolved from the profile location, for example `DE`.
        - `location` EsGithubGeoPoint
          - `lat` number: Latitude in decimal degrees.
          - `lon` number: Longitude in decimal degrees.
        - `state` string: Name of the state or region resolved from the profile location.
      - `has_blog` boolean: Whether the profile shows a website or blog.
      - `has_email` boolean: Whether the profile shows a public email address.
      - `has_twitter` boolean: Whether the profile shows a Twitter or X username.
      - `hireable` boolean: Whether the user has marked themselves as available for hire.
      - `html_url` string: Link to the user's GitHub profile page.
      - `id` integer: Numeric GitHub user id.
      - `influence_tier` string: Follower-based tier: `nano` (under 50), `micro` (50 to 499), `mid` (500 to 4,999), `macro` (5,000 to 49,999) or `mega` (50,000 or more).
      - `is_bot` boolean: Whether the account is a bot.
      - `is_org` boolean: Whether the account is an organization.
      - `is_suspected_automation` boolean: Whether the account looks like a commit farm or mass repository generator.
      - `last_active_at` string: Time of the user's latest recorded activity, in UTC (RFC 3339).
      - `location_raw` string: Free-text location as written on the profile.
      - `login` string: GitHub username of the account.
      - `name` string: Display name on the profile.
      - `prs_30d` integer: Number of pull request events the user had in the last 30 days.
      - `public_gists` integer: Number of public gists.
      - `public_repos` integer: Number of public repositories.
      - `pushes_30d` integer: Number of pushes the user made in the last 30 days.
      - `rank_score` integer: Overall notability score. Followers count most and recent activity adds a smaller amount. It is 0 for suspected automation.
      - `reachable` boolean: Whether the profile shows any public way to make contact: email, Twitter or X, a website or a linked social account.
      - `reviews_30d` integer: Number of pull request review events, including review comments, the user made in the last 30 days.
      - `schema_version` integer: Version of the record layout.
      - `social_accounts` EsGithubSocialLink[]: Social accounts linked on the profile.
        - `provider` string: Social network the link points to.
        - `url` string: Link to the account on that network.
      - `social_count` integer: Number of social accounts linked on the profile.
      - `twitter_username` string: Twitter or X username on the profile.
      - `type` string: Account type on GitHub, for example `User` or `Organization`.
    - `page` integer: Page number returned.
    - `page_size` integer: Number of items per page.
    - `sort` string: Sort order applied.
    - `total` integer: Total number of records matching the filters.
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/028417aa35bb?raw)
