GitHub hub

GitHub profile following API

Page the public outbound graph for a GitHub login — peers, orgs, and accounts they already watch — as compact stubs in the shared Social Fetch envelope.

GET /v1/github/profiles/{handle}/following

1 credit Failed requests are free

About this endpoint

GET /v1/github/profiles/{handle}/following takes a GitHub username (login) and returns data.following plus data.page (hasMore, nextCursor). Send x-api-key. Each stub can include platformUserId, optional nodeId, handle, avatarUrl, profileUrl, accountType (User or Organization), and optional siteAdmin. Use accountType when you want to separate people from orgs in an influence map. Continue with cursor from a previous page when hasMore is true.

Branch on data.lookupStatus first: found vs not_found. found with an empty following array can mean the login follows nobody publicly on that page. Inbound followers are GET /v1/github/profiles/{handle}/followers. Aggregate following counts without the list live on GET /v1/github/profiles/{handle} under data.metrics. See the credit badge on this page for pricing; bill from meta.creditsCharged.

GitHub profile following API FAQ

How do I list who a GitHub profile follows via API?

Call GET /v1/github/profiles/{handle}/following with your Social Fetch API key in the x-api-key header. Pass the public GitHub username (login) as the path parameter. Read data.lookupStatus, then data.following and data.page. Full parameters are in the API docs linked from this page.

When should I use following instead of followers?

Use following when the job is outbound: peer discovery, org affinity, sponsor watchlists, or "who does this maintainer already track." Use followers when you need the inbound audience for the same login. Both return stubs; the edge direction is the product difference.

How much does the GitHub profile following API cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

Can following stubs be organizations as well as users?

Yes. Each row's accountType can be User or Organization. Filter or bucket on that field when building influence maps so org follows do not get mixed into people-only pipelines.

How does pagination work on GitHub profile following?

When data.page.hasMore is true, pass data.page.nextCursor as the cursor query param on the next request. Keep the same handle across pages. Treat the cursor as opaque; do not invent page indexes yourself.

What does lookupStatus mean on the following route?

found means the following list could be returned for that login. not_found means no public profile matched. Do not treat an empty following array as zero follows until you have confirmed lookupStatus is found.

Following list vs profile metrics vs the followers list?

This route pages the outbound following graph. Aggregate following counts without the list are on GET /v1/github/profiles/{handle} under data.metrics. Accounts that follow the login are GET /v1/github/profiles/{handle}/followers.

Can I map who a maintainer or org follows for recruiting?

Yes. Page following for a seed login, upsert stubs by handle or platformUserId, then fan out to profile or repositories routes on the accounts that matter. Keep meta.requestId if you need support on a failed page.

Do I need GitHub OAuth to read a public following list?

No. Social Fetch authenticates with your Social Fetch API key only. Prefer GitHub's official API with a GitHub token when you need authenticated scopes, private data, or write access.