---
title: "GitHub User API"
method: GET
path: "/v1/github/user"
tags: ["GitHub"]
---

# GitHub User API

`GET /v1/github/user`

## Request

- Base URL: `https://api.captapi.com`
- URL: `https://api.captapi.com/v1/github/user`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

GitHub public profile — login, type User|Organization, email when public, followers (1 credit).

Pass a GitHub username or profile URL and get the public /users/{username} profile as camelCase JSON: login, name, company, blog, location, email (only when the account made it public — omitted when null), bio, avatar, publicRepos/publicGists, followers/following, twitterUsername, hireable, nodeId, siteAdmin, and createdAt/updatedAt. type is User or Organization (GitHub's casing) so orgs are distinguishable from people. Flat 1 credit. Honesty note: this is a thin wrap of GitHub's free public REST API (60 req/hour unauthenticated; 5,000/hour with a personal access token). Captapi's value here is one key across ~32 platforms, no per-platform rate-limit handling, and the same response envelope/field names as other profile endpoints — not removing a GitHub OAuth barrier (there isn't one for public profiles). Call api.github.com directly for GitHub-only jobs.

Docs: https://captapi.com/apis/github-user

## Query parameters

- `username` string, required
- `cache` boolean

## Response `200`

Success. The data object for this endpoint.

- object
  - `success` unknown, required
  - `data` object, required
    - `platform` string: Always "github" on this endpoint.
    - `type` string: GitHub account kind: "User" or "Organization" (upstream casing preserved).
    - `login` string: Account login name.
    - `id` integer: Stable platform ID for the item.
    - `nodeId` string: GitHub GraphQL node_id for the account.
    - `url` string: Canonical URL of the item.
    - `apiUrl` string: Api url URL.
    - `name` string: GitHub profile display name (not a deprecated alias — GitHub has no displayName field here).
    - `company` string: Company. Example: "Getify Solutions".
    - `blog` string: Blog URL.
    - `location` string: Location shown on the profile or item.
    - `bio` string: Profile bio. Canonical across profile endpoints (prefer over description on YouTube).
    - `avatar` string: Avatar / profile picture URL. Canonical across profile endpoints.
    - `publicRepos` integer: Count of public repositories.
    - `publicGists` integer: Count of public gists.
    - `followers` integer: Follower count.
    - `following` integer: Number of accounts followed.
    - `hireable` boolean: true when the user marked themselves hireable on GitHub; omitted/null when unset.
    - `siteAdmin` boolean: true when the account is a GitHub site admin (rare).
    - `createdAt` string: Creation date (ISO 8601).
    - `updatedAt` string: Last update date (ISO 8601).

## Other responses

- `400`: Bad request: wrong platform URL, unknown endpoint, or an invalid parameter value. Not billed.
- `401`: Missing, invalid or revoked API key. Not billed.
- `402`: Not enough credits for this request. Not billed.
- `404`: The resource does not exist or is not public. Not billed.
- `422`: A required parameter is missing or has the wrong type. Not billed.
- `429`: Rate limit reached. Wait for Retry-After seconds. Not billed.
- `502`: The platform could not be reached or returned nothing usable. Retryable, not billed. 503 and 504 use the same envelope.

---

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