GitHunt API v1

Search, look up, and analyze GitHub developers programmatically. GitHunt gives you millisecond access to millions of developers available on GitHub - ranked, scored, and with contact details where publicly available.

Overview

The GitHunt API gives you direct access to the same developer search and ranking engine behind githunt.ai. Every account gets an API key with a monthly call quota based on their plan. All endpoints live under https://api.githunt.ai.

GitHunt continuously analyzes developer activity across GitHub, so /v1/search answers in milliseconds - no slow live crawls, no GitHub rate limits. Response payloads include a meta.dataSource field telling you how a result was served, and a meta.quota object with your current usage.

Full request/response schemas are also available as an OpenAPI 3.1 spec you can import into your own tooling.

Authentication

Generate an API key from the Account page, under the API tab. The key is shown once at creation time - store it somewhere safe, since GitHunt cannot show it to you again. Regenerating a key immediately invalidates the previous one.

Pass your key using either of these forms:

Authorization: Bearer ghk_live_...

X-Api-Key: ghk_live_...

Treat your API key like a password. Do not commit it to source control or expose it in client-side code - call the GitHunt API from your backend or a trusted server-side process.

Endpoints

Search developers

POST /v1/search
FieldTypeRequiredNotes
locationstringYesCity, region, or country
rolestringNoe.g. backend, frontend, devops
skillsstring[]NoMax 20 entries, e.g. ["go","kubernetes"]
languagesstring[]NoMax 10 entries, e.g. ["Go"]
minExperienceYearsnumberNo0-50
isHireablebooleanNoFilter to profiles flagged hireable on GitHub
strictSkillsbooleanNoRequire all listed skills instead of any
maxResultsnumberNo1-100, default 25
offsetnumberNo0-200, default 0. Candidates to skip, for paging with maxResults

matchedCount is the count in this page; page with offset. If the location matches no known city or country, data.results is empty and data.locationSuggestions lists similar supported locations instead.

curl -X POST https://api.githunt.ai/v1/search \
  -H "Authorization: Bearer ghk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "location": "Poland",
    "role": "backend",
    "skills": ["go", "kubernetes"],
    "languages": ["Go"],
    "minExperienceYears": 3,
    "maxResults": 25
  }'
{
  "success": true,
  "data": {
    "matchedCount": 25,
    "totalCount": 312,
    "results": [
      {
        "login": "example-dev",
        "score": 87,
        "profile_score": 28,
        "tech_stack_score": 35,
        "activity_score": 24,
        "github_experience": 6,
        "matching_keywords": "go, kubernetes, docker",
        "email": "dev@example.com",
        "name": "Example Developer",
        "company": "Acme Inc",
        "location": "Warsaw, Poland",
        "followers": 342,
        "bio": "Backend engineer, Go and Kubernetes",
        "profile_url": "https://github.com/example-dev",
        "hireable": "Yes",
        "last_active_date": "2026-07-18",
        "commits_per_month": 42,
        "commit_frequency_label": "Very Active",
        "semantic_commit_percentage": 78,
        "commit_message_quality_label": "Good",
        "top_repositories": [
          { "name": "k8s-operator", "stars": 1240, "language": "Go" }
        ],
        "top_oss_contributions": [
          { "repository": "kubernetes/kubernetes", "tier_label": "Elite", "commits": 15, "language": "Go" }
        ]
      }
    ]
  },
  "meta": {
    "requestId": "req_abc123",
    "dataSource": "candidate_pool",
    "quota": { "used": 12, "limit": 1000, "month": "2026-07" }
  }
}

Get a developer

GET /v1/users/{login}

Returns a flat profile for a single GitHub username.

curl https://api.githunt.ai/v1/users/octocat \
  -H "Authorization: Bearer ghk_live_..."
{
  "success": true,
  "data": {
    "username": "octocat",
    "score": 91,
    "profile_score": 88,
    "tech_stack_score": 93,
    "activity_score": 90,
    "github_experience": 12,
    "matching_keywords": ["go", "kubernetes"],
    "bio": "Backend engineer",
    "profile_url": "https://github.com/octocat",
    "email": "octocat@example.com",
    "name": "The Octocat",
    "company": "GitHub",
    "location": "San Francisco",
    "followers": 9001,
    "blog": "https://github.blog",
    "twitter_username": "octocat",
    "created_at": "2011-01-25T18:44:36Z",
    "updated_at": "2026-06-01T09:12:00Z",
    "hireable": "Yes",
    "avatar_url": "https://avatars.githubusercontent.com/u/583231",
    "last_active_date": "2026-07-18",
    "commits_per_month": 42,
    "commit_frequency_label": "Very Active",
    "semantic_commit_percentage": 78,
    "commit_message_quality_label": "Good",
    "top_repositories": [
      { "name": "octo-cli", "stars": 1240, "language": "Go" }
    ],
    "top_oss_contributions": [
      { "repository": "kubernetes/kubernetes", "tier_label": "Elite", "commits": 15, "language": "Go" }
    ]
  }
}

Analyze a profile

POST /v1/profile/analyze
FieldTypeRequiredNotes
usernamestringYesGitHub login to analyze
curl -X POST https://api.githunt.ai/v1/profile/analyze \
  -H "Authorization: Bearer ghk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"username": "octocat"}'
{
  "success": true,
  "data": {
    "proficiency": { "level": "Senior", "score": 72, "experienceYears": 9 },
    "emails": { "emails": [ { "address": "dev@example.com", "sources": ["profile"], "isPrimary": true } ] },
    "roleMatch": [ { "role": "backend", "displayName": "Backend", "score": 72 } ],
    "scores": { "role": "backend", "score": 72, "scores": { "profile": 25, "techStack": 30, "activity": 17 } },
    "profile": { }, "commitQuality": { }, "repositories": { }, "activity": { }, "badges": [ ], "summary": { }
  }
}

The sample above is abbreviated: profile, commitQuality, repositories, activity, badges, and summary carry the full analysis detail. See the OpenAPI spec.

Errors

All endpoints use the same error envelope:

{
  "success": false,
  "error": { "code": "quota_exceeded", "message": "Monthly API call quota exceeded" }
}
HTTP StatusCodeMeaning
400invalid_requestMissing or malformed request fields
401unauthorizedMissing, invalid, or revoked API key
404not_foundNo matching developer for the given login
429quota_exceededMonthly or daily quota exceeded; includes a Retry-After header
500internalUnexpected server error

Rate Limits & Quotas

All plans are additionally capped at 2,000 API calls/day as an abuse guard, regardless of monthly quota (negotiable on Enterprise).

PlanAPI calls / month
Free50 (trial)
Pro1,000
EnterpriseUnlimited

MCP Server Quickstart

GitHunt ships an MCP server so you can search and analyze developers directly from Claude, ChatGPT, or any MCP-compatible AI assistant, using tools search_developers, get_developer, and analyze_profile.

Hosted MCP (recommended)

Connect to GitHunt's hosted MCP server and sign in with your GitHunt account in the browser - no API key to copy:

https://mcp.githunt.ai/mcp
  • Claude (web, Desktop, Cowork, mobile): Settings → Connectors → Add custom connector → paste the URL above, then sign in when prompted.
  • Claude Code: claude mcp add --transport http githunt https://mcp.githunt.ai/mcp, then run /mcp to complete the sign-in.
  • ChatGPT and other clients: add a remote MCP server with the URL above; the sign-in flow starts automatically.

Hosted MCP calls are billed against the same monthly API quota as REST calls, shown on your dashboard.

Local MCP (API key)

Prefer running the server yourself, or your client doesn't support remote MCP? Use the npm package with an API key from your account page:

npx githunt-mcp

Add this to your MCP client configuration (e.g. Claude Code or Claude Desktop):

{
  "mcpServers": {
    "githunt": {
      "command": "npx",
      "args": ["githunt-mcp"],
      "env": { "GITHUNT_API_KEY": "ghk_live_..." }
    }
  }
}

Need a custom plan, higher quotas, or commercial terms? Contact us.