How to get GitHub activity
GET request to /v1/github/activity with your input. You get clean JSON back in seconds for ~12 credits (0.4/result) per call — no OAuth, scraping or platform SDKs. Public events with typed payload (Push commits/ref, PR/issue action) — 90-event ceiling.How to get GitHub activity (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the GitHub Activity API
Send an authenticated GET request to /v1/github/activity with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/github/activity?username=getify" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"username": "getify",
"eventCeiling": 90,
"totalReturned": 2,
"nextCursor": "eyJ2IjoxLCJrIjoiYWN0aXZpdHkiLCJwIjoyfQ",
"hasMore": true,
"events": [
{
"id": "9001",
"type": "PushEvent",
"repo": "getify/You-Dont-Know-JS",
"repoUrl": "https://github.com/getify/You-Dont-Know-JS",
"payload": {
"ref": "refs/heads/2nd-ed",
"head": "deadbeef",
"before": "cafebabe",
"size": 1,
"distinctSize": 1,
"commits": [
{
"sha": "deadbeef",
"message": "typo fix",
"authorName": "Kyle Simpson",
"authorEmail": "getify@gmail.com",
"distinct": true
}
]
},
"createdAt": "2026-07-01T10:00:00Z",
"public": true
},
{
"id": "9002",
"type": "IssuesEvent",
"repo": "getify/You-Dont-Know-JS",
"repoUrl": "https://github.com/getify/You-Dont-Know-JS",
"payload": {
"action": "opened",
"number": 7,
"title": "Clarify chapter 3",
"url": "https://github.com/getify/You-Dont-Know-JS/issues/7",
"state": "open"
},
"createdAt": "2026-06-28T10:00:00Z",
"public": true
}
]
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| username | string | Yes | GitHub username or profile URL, e.g. getify. |
| limit | integer | No | Max items to return (default 30, max 90). Billed per result. |
| cursor | string | No | Opaque cursor from a previous nextCursor. Pagination stops after GitHub's 90-event public activity ceiling. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits. |
Frequently asked questions
What does the GitHub Activity API do?
The GitHub Activity API lets you list items in bulk with metadata from a public GitHub GitHub resource using one GET request to /v1/github/activity. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the GitHub Activity API cost?
At the default limit this endpoint costs 12 credits (0.4 per result). Billing scales with how many results you request. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a GitHub API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Why is there an eventCeiling of 90?
GitHub's /users/{u}/events/public returns at most 90 events (and only ~90 days). We echo eventCeiling and stop hasMore there — deep pagination past that is not available.
Where is the commit message / branch?
On PushEvent rows, payload.ref is the branch and payload.commits[] has sha + message. Other types expose payload.action and the related entity fields.
Is the GitHub Activity API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get GitHub activity?
Start free with 100 credits — no credit card required.
Get your free API key