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
| Field | Type | Required | Notes |
|---|---|---|---|
location | string | Yes | City, region, or country |
role | string | No | e.g. backend, frontend, devops |
skills | string[] | No | Max 20 entries, e.g. ["go","kubernetes"] |
languages | string[] | No | Max 10 entries, e.g. ["Go"] |
minExperienceYears | number | No | 0-50 |
isHireable | boolean | No | Filter to profiles flagged hireable on GitHub |
strictSkills | boolean | No | Require all listed skills instead of any |
maxResults | number | No | 1-100, default 25 |
offset | number | No | 0-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
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
| Field | Type | Required | Notes |
|---|---|---|---|
username | string | Yes | GitHub 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 Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | Missing or malformed request fields |
| 401 | unauthorized | Missing, invalid, or revoked API key |
| 404 | not_found | No matching developer for the given login |
| 429 | quota_exceeded | Monthly or daily quota exceeded; includes a Retry-After header |
| 500 | internal | Unexpected 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).
| Plan | API calls / month |
|---|---|
| Free | 50 (trial) |
| Pro | 1,000 |
| Enterprise | Unlimited |
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/mcpto 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.