GitHub · user
Read a public GitHub user or organization. GET /api/v1/github/user accepts your x-api-key header. This endpoint returns live public data; demo mode is unavailable.
Request parameters
Uses the official public GitHub REST API and returns its public user resource. Supply exactly one of handle or a canonical github.com profile URL.
| Parameter | Type | Required | Description |
|---|---|---|---|
handle | string | No | Public GitHub username; no URL. |
url | string | No | Public https://github.com/<login> profile URL. |
freshness | string | No | 24h (default), 1h, 7d, or live. Accepted cache hits are free; live forces refresh except simultaneous requests may share newly fetched data. |
Code examples
Set SIGNALSHELF_BASE_URL and SIGNALSHELF_API_KEY on your server.
curl "$SIGNALSHELF_BASE_URL/api/v1/github/user?" \
-H "x-api-key: $SIGNALSHELF_API_KEY"const response = await fetch(process.env.SIGNALSHELF_BASE_URL + "/api/v1/github/user?", {
headers: { 'x-api-key': process.env.SIGNALSHELF_API_KEY },
});
const body = await response.json();
if (!response.ok) throw new Error(body.error.message);
console.log(body.data, body.meta);import os, requests
response = requests.get(
os.environ['SIGNALSHELF_BASE_URL'] + "/api/v1/github/user?",
headers={'x-api-key': os.environ['SIGNALSHELF_API_KEY']},
timeout=30,
)
response.raise_for_status()
print(response.json())Response and pagination
The response contains data and meta. data includes platform, resource, sample:false, provider, and the public source payload. Lists return data.items; individual resources return data.data.
The response contains a public GitHub profile object at data.data, with login, ID, name, bio, company, location, public repository and gist counts, follower counts, profile links, and timestamps when the source provides them. Email appears only when the user has made it public. SignalShelf makes an unauthenticated source request and does not retrieve private profile data.
meta includes event_id, mode, cache, credits_charged, fetched_at, age_seconds, and duration_ms. A fresh successful result costs one credit; accepted cached results and failures cost zero.
Availability and failures
Implementation is not a continuous availability guarantee. Source rate limits, retention, deleted content, restrictions, and regional availability apply. This is an independent SignalShelf contract, not a drop-in competitor response format.
400: invalid parameters. 401: missing/revoked key. 402: insufficient credits. 404: missing public resource. 429: SignalShelf throttle. 502/503: upstream failure or rate limit, with credit restored.