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

GET /user GitHub Get the Authenticated User #
PATCH /user GitHub Update the Authenticated User #
GET /user/emails GitHub List Email Addresses for the Authenticated User #
POST /user/emails GitHub Add an Email Address for the Authenticated User #
DELETE /user/emails GitHub Delete an Email Address for the Authenticated User #
GET /user/followers GitHub List Followers of the Authenticated User #
GET /user/following GitHub List the People the Authenticated User Follows #
GET /user/following/{username} GitHub Check if a Person is Followed by the Authenticated User #
PUT /user/following/{username} GitHub Follow a User #
DELETE /user/following/{username} GitHub Unfollow a User #
GET /user/gpg_keys GitHub List GPG Keys for the Authenticated User #
POST /user/gpg_keys GitHub Create a GPG Key for the Authenticated User #
GET /user/gpg_keys/{gpg_key_id} GitHub Get a GPG Key for the Authenticated User #
DELETE /user/gpg_keys/{gpg_key_id} GitHub Delete a GPG Key for the Authenticated User #
GET /user/keys GitHub List Public SSH Keys for the Authenticated User #
POST /user/keys GitHub Create a Public SSH Key for the Authenticated User #
GET /user/keys/{key_id} GitHub Get a Public SSH Key for the Authenticated User #
DELETE /user/keys/{key_id} GitHub Delete a Public SSH Key for the Authenticated User #
GET /user/public_emails GitHub List Public Email Addresses for the Authenticated User #
GET /user/social_accounts GitHub List Social Accounts for the Authenticated User #
POST /user/social_accounts GitHub Add Social Accounts for the Authenticated User #
DELETE /user/social_accounts GitHub Delete Social Accounts for the Authenticated User #
GET /user/ssh_signing_keys GitHub List SSH Signing Keys for the Authenticated User #
POST /user/ssh_signing_keys GitHub Create a SSH Signing Key for the Authenticated User #
GET /user/ssh_signing_keys/{ssh_signing_key_id} GitHub Get an SSH Signing Key for the Authenticated User #
DELETE /user/ssh_signing_keys/{ssh_signing_key_id} GitHub Delete an SSH Signing Key for the Authenticated User #
GET /users GitHub List Users #
GET /users/{username} GitHub Get a User #
GET /users/{username}/followers GitHub List Followers of a User #
GET /users/{username}/following GitHub List the People a User Follows #
GET /users/{username}/following/{target_user} GitHub Check if a User Follows Another User #
GET /users/{username}/gpg_keys GitHub List GPG Keys for a User #
GET /users/{username}/hovercard GitHub Get Contextual Information for a User #
GET /users/{username}/keys GitHub List Public Keys for a User #
GET /users/{username}/social_accounts GitHub List Social Accounts for a User #
GET /users/{username}/ssh_signing_keys GitHub List SSH Signing Keys for a User #

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:
- name: Users
  description: Interact with and view information about users and also current user.
paths:
  /user:
    get:
      summary: GitHub Get the Authenticated User
      description: OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information.
      tags:
      - Users
      operationId: users/get-authenticated
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/users#get-the-authenticated-user
      parameters: []
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/private-user'
                - $ref: '#/components/schemas/public-user'
              examples:
                response-with-public-and-private-profile-information:
                  $ref: '#/components/examples/private-user-response-with-public-and-private-profile-information'
                response-with-public-profile-information:
                  $ref: '#/components/examples/private-user-response-with-public-profile-information'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: users
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      summary: GitHub Update the Authenticated User
      description: '**Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.'
      tags:
      - Users
      operationId: users/update-authenticated
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/users#update-the-authenticated-user
      parameters: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The new name of the user.
                  type: string
                  example: Omar Jahandar
                email:
                  description: The publicly visible email address of the user.
                  type: string
                  example: omar@example.com
                blog:
                  description: The new blog URL of the user.
                  type: string
                  example: blog.example.com
                twitter_username:
                  description: The new Twitter username of the user.
                  type:
                  - string
                  - 'null'
                  example: therealomarj
                company:
                  description: The new company of the user.
                  type: string
                  example: Acme corporation
                location:
                  description: The new location of the user.
                  type: string
                  example: Berlin, Germany
                hireable:
                  description: The new hiring availability of the user.
                  type: boolean
                bio:
                  description: The new short biography of the user.
                  type: string
            examples:
              default:
                summary: Example of updating blog and name
                value:
                  blog: https://github.com/blog
                  name: monalisa octocat
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/private-user'
              examples:
                default:
                  $ref: '#/components/examples/private-user'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/validation_failed'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: users
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/emails:
    get:
      summary: GitHub List Email Addresses for the Authenticated User
      description: 'Lists all of your email addresses, and specifies which one is visible

        to the public.


        OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/list-emails-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/emails#list-email-addresses-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/per-page'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/email'
              examples:
                default:
                  $ref: '#/components/examples/email-items-2'
          headers:
            Link:
              $ref: '#/components/headers/link'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: emails
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      summary: GitHub Add an Email Address for the Authenticated User
      description: OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
      tags:
      - Users
      operationId: users/add-email-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/emails#add-an-email-address-for-the-authenticated-user
      parameters: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                properties:
                  emails:
                    description: Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.
                    type: array
                    items:
                      type: string
                      example: username@example.com
                      minItems: 1
                    example: []
                required:
                - emails
                example:
                  emails:
                  - octocat@github.com
                  - mona@github.com
              - type: array
                items:
                  type: string
                  example: username@example.com
                  minItems: 1
              - type: string
            examples:
              default:
                summary: Example adding multiple email addresses
                value:
                  emails:
                  - octocat@github.com
                  - mona@github.com
                  - octocat@octocat.org
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/email'
              examples:
                default:
                  $ref: '#/components/examples/email-items'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/validation_failed'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: emails
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      summary: GitHub Delete an Email Address for the Authenticated User
      description: OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
      tags:
      - Users
      operationId: users/delete-email-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/emails#delete-an-email-address-for-the-authenticated-user
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                description: Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.
                properties:
                  emails:
                    description: Email addresses associated with the GitHub user account.
                    type: array
                    items:
                      type: string
                      example: username@example.com
                      minItems: 1
                example:
                  emails:
                  - octocat@github.com
                  - mona@github.com
                required:
                - emails
              - type: array
                items:
                  type: string
                  example: username@example.com
                  minItems: 1
              - type: string
            examples:
              default:
                summary: Example deleting multiple email accounts
                value:
                  emails:
                  - octocat@github.com
                  - mona@github.com
      responses:
        '204':
          description: Response
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/validation_failed'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: emails
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/followers:
    get:
      summary: GitHub List Followers of the Authenticated User
      description: Lists the people following the authenticated user.
      tags:
      - Users
      operationId: users/list-followers-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/followers#list-followers-of-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/per-page'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/simple-user'
              examples:
                default:
                  $ref: '#/components/examples/simple-user-items'
          headers:
            Link:
              $ref: '#/components/headers/link'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: followers
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/following:
    get:
      summary: GitHub List the People the Authenticated User Follows
      description: Lists the people who the authenticated user follows.
      tags:
      - Users
      operationId: users/list-followed-by-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/followers#list-the-people-the-authenticated-user-follows
      parameters:
      - $ref: '#/components/parameters/per-page'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/simple-user'
              examples:
                default:
                  $ref: '#/components/examples/simple-user-items'
          headers:
            Link:
              $ref: '#/components/headers/link'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: followers
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/following/{username}:
    get:
      summary: GitHub Check if a Person is Followed by the Authenticated User
      description: ''
      tags:
      - Users
      operationId: users/check-person-is-followed-by-authenticated
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/username'
      responses:
        '204':
          description: if the person is followed by the authenticated user
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          description: if the person is not followed by the authenticated user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/basic-error'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: followers
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      summary: GitHub Follow a User
      description: 'Note that you''ll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/enterprise-server@3.9/rest/guides/getting-started-with-the-rest-api#http-method)."


        OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/follow
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/followers#follow-a-user
      parameters:
      - $ref: '#/components/parameters/username'
      responses:
        '204':
          description: Response
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: followers
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      summary: GitHub Unfollow a User
      description: OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint.
      tags:
      - Users
      operationId: users/unfollow
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/followers#unfollow-a-user
      parameters:
      - $ref: '#/components/parameters/username'
      responses:
        '204':
          description: Response
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: followers
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/gpg_keys:
    get:
      summary: GitHub List GPG Keys for the Authenticated User
      description: 'Lists the current user''s GPG keys.


        OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/list-gpg-keys-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/per-page'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/gpg-key'
              examples:
                default:
                  $ref: '#/components/examples/gpg-key-items'
          headers:
            Link:
              $ref: '#/components/headers/link'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: gpg-keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      summary: GitHub Create a GPG Key for the Authenticated User
      description: 'Adds a GPG key to the authenticated user''s GitHub account.


        OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint.'
      operationId: users/create-gpg-key-for-authenticated-user
      tags:
      - Users
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  description: A descriptive name for the new key.
                  type: string
                armored_public_key:
                  description: A GPG key in ASCII-armored format.
                  type: string
              type: object
              required:
              - armored_public_key
            examples:
              default:
                value:
                  name: Octocat's GPG Key
                  armored_public_key: '--BEGIN PGP PUBLIC KEY BLOCK--

                    Version: GnuPG v1


                    mQINBFnZ2ZIBEADQ2Z7Z7

                    --END PGP PUBLIC KEY BLOCK--'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gpg-key'
              examples:
                default:
                  $ref: '#/components/examples/gpg-key'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/validation_failed'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: gpg-keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/gpg_keys/{gpg_key_id}:
    get:
      summary: GitHub Get a GPG Key for the Authenticated User
      description: 'View extended details for a single GPG key.


        OAuth app tokens and personal access tokens (classic) need the `read:gpg_key` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/get-gpg-key-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/gpg-key-id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gpg-key'
              examples:
                default:
                  $ref: '#/components/examples/gpg-key'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: gpg-keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      summary: GitHub Delete a GPG Key for the Authenticated User
      description: 'Removes a GPG key from the authenticated user''s GitHub account.


        OAuth app tokens and personal access tokens (classic) need the `admin:gpg_key` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/delete-gpg-key-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/gpg-key-id'
      responses:
        '204':
          description: Response
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/validation_failed'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: gpg-keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/keys:
    get:
      summary: GitHub List Public SSH Keys for the Authenticated User
      description: 'Lists the public SSH keys for the authenticated user''s GitHub account.


        OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/list-public-ssh-keys-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/per-page'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/key'
              examples:
                default:
                  $ref: '#/components/examples/key-items'
          headers:
            Link:
              $ref: '#/components/headers/link'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      summary: GitHub Create a Public SSH Key for the Authenticated User
      description: 'Adds a public SSH key to the authenticated user''s GitHub account.


        OAuth app tokens and personal access tokens (classic) need the `write:gpg_key` scope to use this endpoint.'
      operationId: users/create-public-ssh-key-for-authenticated-user
      tags:
      - Users
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                title:
                  description: A descriptive name for the new key.
                  type: string
                  example: Personal MacBook Air
                key:
                  description: The public SSH key to add to your GitHub account.
                  type: string
                  pattern: '^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) '
              required:
              - key
              type: object
            examples:
              default:
                value:
                  title: ssh-rsa AAAAB3NzaC1yc2EAAA
                  key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/key'
              examples:
                default:
                  $ref: '#/components/examples/key'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/validation_failed'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/keys/{key_id}:
    get:
      summary: GitHub Get a Public SSH Key for the Authenticated User
      description: 'View extended details for a single public SSH key.


        OAuth app tokens and personal access tokens (classic) need the `read:public_key` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/get-public-ssh-key-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/key-id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/key'
              examples:
                default:
                  $ref: '#/components/examples/key'
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      summary: GitHub Delete a Public SSH Key for the Authenticated User
      description: 'Removes a public SSH key from the authenticated user''s GitHub account.


        OAuth app tokens and personal access tokens (classic) need the `admin:public_key` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/delete-public-ssh-key-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/key-id'
      responses:
        '204':
          description: Response
        '304':
          $ref: '#/components/responses/not_modified'
        '401':
          $ref: '#/components/responses/requires_authentication'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
      x-github:
        githubCloudOnly: false
        enabledForGitHubApps: false
        category: users
        subcategory: keys
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /user/public_emails:
    get:
      summary: GitHub List Public Email Addresses for the Authenticated User
      description: 'Lists your publicly visible email address, which you can set with the

        [Set primary email visibility for the authenticated user](https://docs.github.com/enterprise-server@3.9/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user)

        endpoint.


        OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint.'
      tags:
      - Users
      operationId: users/list-public-emails-for-authenticated-user
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/enterprise-server@3.9/rest/users/emails#list-public-email-addresses-for-the-authenticated-user
      parameters:
      - $ref: '#/components/parameters/per-page'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '

# --- 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