GitHub User API

The GitHub Users API (part of the REST API) lets applications read and, for the authenticated account, manage user-related data on GitHub. It can fetch public profiles for any user or the authenticated users private profile details, list a users public repositories and organizations, and view activity like followers and following.

Operations 36

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /user Get my own account profile · GitHub Get the Authenticated User #
Ask an LLM
“Who am I signed in as, according to the token I'm using?”
“What does my own profile look like, including private details my token scope allows?”
Tell an agent
Show my own signed-in user profile.
Tell me which account this token belongs to.
PATCH /user Update my own profile · GitHub Update the Authenticated User #
Ask an LLM
“Can I change my display name, bio or location on my profile through the API?”
“How do I mark myself as available for hire on my profile?”
Tell an agent
Set my profile bio to {bio}.
Update my profile name to {name} and my location to {location}.
GET /user/emails List all email addresses on my account · GitHub List Email Addresses for the Authenticated User #
Ask an LLM
“Which email addresses are attached to my account, and which one is public?”
“Are all the emails on my account verified?”
Tell an agent
List every email address on my account, including private ones.
Show all my account emails and which is primary.
POST /user/emails Add an email address to my account · GitHub Add an Email Address for the Authenticated User #
Ask an LLM
“How do I add another email address to my account?”
“What token scope is needed to attach a new email to my user?”
Tell an agent
Add a new email address to my account.
Attach an additional email to my signed-in user.
DELETE /user/emails Remove an email address from my account · GitHub Delete an Email Address for the Authenticated User #
Ask an LLM
“Can I remove an old email address from my account?”
“What scope do I need to detach an email from my user?”
Tell an agent destructive · confirm first
Delete an email address from my account.
Remove an outdated email from my signed-in user.
GET /user/followers List my followers · GitHub List Followers of the Authenticated User #
Ask an LLM
“Who follows me?”
“How many people are following my account?”
Tell an agent
List the people who follow me.
Show my followers, {per_page} per page.
GET /user/following List the people I follow · GitHub List the People the Authenticated User Follows #
Ask an LLM
“Which accounts am I following?”
“Can I get the full list of users I follow?”
Tell an agent
List everyone I follow.
Show page {page} of the accounts I'm following.
GET /user/following/{username} Check if I follow a user · GitHub Check if a Person is Followed by the Authenticated User #
Ask an LLM
“Am I already following a particular user?”
“Can I confirm whether a certain person is on my following list?”
Tell an agent
Check whether I follow {username}.
Tell me if {username} is someone I'm following.
PUT /user/following/{username} Follow a user · GitHub Follow a User #
Ask an LLM
“How do I follow another developer from the API?”
“Is there a special Content-Length requirement when following someone?”
Tell an agent
Follow {username}.
Start following the account {username} from my user.
DELETE /user/following/{username} Unfollow a user · GitHub Unfollow a User #
Ask an LLM
“Can I stop following someone through the API?”
“What scope does unfollowing a user require?”
Tell an agent destructive · confirm first
Unfollow {username}.
Stop following the account {username}.
GET /user/gpg_keys List my GPG keys · GitHub List GPG Keys for the Authenticated User #
Ask an LLM
“Which GPG keys have I registered for signing commits?”
“What scope is needed to read the GPG keys on my own account?”
Tell an agent
List the GPG keys on my account.
Show all my registered GPG signing keys, {per_page} per page.
POST /user/gpg_keys Add a GPG key to my account · GitHub Create a GPG Key for the Authenticated User #
Ask an LLM
“How do I upload a GPG public key so my signed commits show as verified?”
“Can I give a GPG key a friendly name when I add it?”
Tell an agent
Add this armored GPG public key to my account: {armored_public_key}.
Register GPG key {armored_public_key} on my account named {name}.
GET /user/gpg_keys/{gpg_key_id} Get details of one of my GPG keys · GitHub Get a GPG Key for the Authenticated User #
Ask an LLM
“What are the extended details of a single GPG key on my account?”
“Which emails and subkeys belong to one of my GPG keys?”
Tell an agent
Get my GPG key {gpg_key_id}.
Show full details for GPG key id {gpg_key_id} on my account.
DELETE /user/gpg_keys/{gpg_key_id} Delete one of my GPG keys · GitHub Delete a GPG Key for the Authenticated User #
Ask an LLM
“Can I remove a compromised GPG key from my account?”
“What happens to commit verification if I delete a GPG key?”
Tell an agent destructive · confirm first
Delete my GPG key {gpg_key_id}.
Remove GPG key {gpg_key_id} from my account.
GET /user/keys List my SSH authentication keys · GitHub List Public SSH Keys for the Authenticated User #
Ask an LLM
“Which SSH keys can currently access my account?”
“How do I audit the public SSH keys I've added for git access?”
Tell an agent
List the public SSH keys on my account.
Show my SSH access keys, page {page}.
POST /user/keys Add an SSH authentication key to my account · GitHub Create a Public SSH Key for the Authenticated User #
Ask an LLM
“How do I add a new SSH key so a laptop can push over SSH?”
“Can I label a new SSH access key with a title?”
Tell an agent
Add the public SSH key {key} to my account for authentication.
Register SSH access key {key} with title {title}.
GET /user/keys/{key_id} Get one of my SSH authentication keys · GitHub Get a Public SSH Key for the Authenticated User #
Ask an LLM
“What are the details of one specific SSH access key on my account?”
“When was a given SSH key of mine added?”
Tell an agent
Get my public SSH key {key_id}.
Show details of SSH access key {key_id} on my account.
DELETE /user/keys/{key_id} Delete one of my SSH authentication keys · GitHub Delete a Public SSH Key for the Authenticated User #
Ask an LLM
“Can I revoke an SSH key from a lost machine?”
“What's the way to remove an old SSH access key from my account?”
Tell an agent destructive · confirm first
Delete my public SSH key {key_id}.
Remove SSH access key {key_id} from my account.
GET /user/public_emails List my publicly visible email addresses · GitHub List Public Email Addresses for the Authenticated User #
Ask an LLM
“Which of my email addresses is visible to the public?”
“What email do other people see on my profile?”
Tell an agent
List only my publicly visible email addresses.
Show the email that is public on my profile.
GET /user/social_accounts List my linked social accounts · GitHub List Social Accounts for the Authenticated User #
Ask an LLM
“Which social media accounts are linked on my own profile?”
“What social links have I added to my account?”
Tell an agent
List the social accounts on my profile.
Show my own linked social media accounts, {per_page} per page.
POST /user/social_accounts Add social accounts to my profile · GitHub Add Social Accounts for the Authenticated User #
Ask an LLM
“How do I add my social media links to my profile?”
“Can I add several social account URLs in one request?”
Tell an agent
Add {account_urls} as social accounts on my profile.
Link the social profiles {account_urls} to my account.
DELETE /user/social_accounts Remove social accounts from my profile · GitHub Delete Social Accounts for the Authenticated User #
Ask an LLM
“Can I remove a social media link from my profile?”
“Is it possible to delete multiple social accounts from my profile at once?”
Tell an agent destructive · confirm first
Remove {account_urls} from the social accounts on my profile.
Unlink social profiles {account_urls} from my account.
GET /user/ssh_signing_keys List my SSH signing keys · GitHub List SSH Signing Keys for the Authenticated User #
Ask an LLM
“Which SSH keys have I registered for signing commits, as opposed to logging in?”
“What SSH signing keys are on my account right now?”
Tell an agent
List the SSH signing keys on my account.
Show my commit-signing SSH keys, page {page}.
POST /user/ssh_signing_keys Add an SSH signing key to my account · GitHub Create a SSH Signing Key for the Authenticated User #
Ask an LLM
“How do I register an SSH key to sign my commits?”
“Can I name an SSH signing key when adding it?”
Tell an agent
Add {key} as an SSH signing key on my account.
Register commit-signing SSH key {key} titled {title}.
GET /user/ssh_signing_keys/{ssh_signing_key_id} Get one of my SSH signing keys · GitHub Get an SSH Signing Key for the Authenticated User #
Ask an LLM
“What are the details of a specific SSH signing key of mine?”
“Can I look up a commit-signing key by its id?”
Tell an agent
Get my SSH signing key {ssh_signing_key_id}.
Show details for commit-signing key {ssh_signing_key_id}.
DELETE /user/ssh_signing_keys/{ssh_signing_key_id} Delete one of my SSH signing keys · GitHub Delete an SSH Signing Key for the Authenticated User #
Ask an LLM
“Can I remove an SSH key I only used for signing commits?”
“What's the way to retire an old commit-signing SSH key?”
Tell an agent destructive · confirm first
Delete my SSH signing key {ssh_signing_key_id}.
Remove commit-signing key {ssh_signing_key_id} from my account.
GET /users List all users in signup order · GitHub List Users #
Ask an LLM
“Can I page through every user and organization account in the order they signed up?”
“How do I continue listing all users after a certain user id?”
Tell an agent
List all user accounts in the order they signed up.
List every user account that signed up after user id {since}.
GET /users/{username} Look up a user's public profile · GitHub Get a User #
Ask an LLM
“What public information is available about someone's GitHub account?”
“Can I see a user's public profile, like their bio and company, by username?”
Tell an agent
Get the public profile of {username}.
Show me who {username} is: name, bio and public repos count.
GET /users/{username}/followers List a user's followers · GitHub List Followers of a User #
Ask an LLM
“Who follows a particular developer?”
“Can I see the follower list of someone else's account?”
Tell an agent
List the followers of {username}.
Show who follows {username}, {per_page} per page.
GET /users/{username}/following List who a user follows · GitHub List the People a User Follows #
Ask an LLM
“Which accounts does a given user follow?”
“Can I see the following list of someone else?”
Tell an agent
List the people {username} follows.
Show page {page} of accounts followed by {username}.
GET /users/{username}/following/{target_user} Check if one user follows another · GitHub Check if a User Follows Another User #
Ask an LLM
“Does one particular user follow another particular user?”
“Can I test a follow relationship between two accounts that aren't mine?”
Tell an agent
Check whether {username} follows {target_user}.
Tell me if user {username} is following {target_user}.
GET /users/{username}/gpg_keys List another user's GPG keys · GitHub List GPG Keys for a User #
Ask an LLM
“Which GPG keys has a given user published for commit verification?”
“Can I fetch someone else's GPG keys to verify their signatures?”
Tell an agent
List the GPG keys of {username}.
Show the public GPG keys published by {username}.
GET /users/{username}/hovercard Get hovercard context about a user · GitHub Get Contextual Information for a User #
Ask an LLM
“What's the hovercard context for a user in relation to a repository or pull request?”
“Can I find out how someone relates to a specific issue, organization or repo?”
Tell an agent
Get hovercard information for {username}.
Show how {username} relates to {subject_type} {subject_id}.
GET /users/{username}/keys List another user's verified SSH keys · GitHub List Public Keys for a User #
Ask an LLM
“Which verified public SSH keys does a given user have?”
“Can I grab someone's SSH keys to grant them server access?”
Tell an agent
List the verified public SSH keys of {username}.
Show the SSH access keys published by user {username}.
GET /users/{username}/social_accounts List another user's social accounts · GitHub List Social Accounts for a User #
Ask an LLM
“What social media accounts has a given developer linked?”
“Can I find someone's other social profiles from their username?”
Tell an agent
List the social accounts of {username}.
Show the social media profiles linked by {username}.
GET /users/{username}/ssh_signing_keys List another user's SSH signing keys · GitHub List SSH Signing Keys for a User #
Ask an LLM
“Which SSH keys does a given user sign commits with?”
“Can I fetch another developer's SSH signing keys to verify their commits?”
Tell an agent
List the SSH signing keys of {username}.
Show commit-signing SSH keys published by {username}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/github-user-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

github-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.1.4
  title: GitHub v3 REST Users API
  description: GitHub's v3 REST API.
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://docs.github.com/articles/github-terms-of-service
  contact:
    name: Support
    url: https://support.github.com/contact?tags=dotcom-rest-api
  x-github-plan: ghes
  x-github-release: 3.9
servers:
- url: '{protocol}://{hostname}/api/v3'
  variables:
    hostname:
      description: Self-hosted Enterprise Server hostname
      default: HOSTNAME
    protocol:
      description: Self-hosted Enterprise Server protocol
      default: http
tags:


# --- truncated at 32 KB (97 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/github/refs/heads/main/openapi/github-users-api-openapi.yml