Public API · v1
GitHub Cards
Four live, configurable SVG cards for public GitHub profiles—free and ready for any README.
Quick Start
Paste any of these snippets into your GitHub README:
Overview Card
Profile contributions, public repositories, stars, forks, pull requests, commits, followers, and top languages.
https://repopulse.kubik.gr/api/cards/overview?username=dimitrisnimas&theme=github-dark&show_avatar=trueLanguages Card
Repository language byte totals with default, compact, and donut layouts. Forks, archived repositories, private repositories, and repositories without language data are excluded.
https://repopulse.kubik.gr/api/cards/languages?username=dimitrisnimas&layout=donut&langs_count=6&exclude=html,cssLanguages describe the composition of public repository code, not a developer's expertise.
Contribution Calendar
A UTC-safe yearly calendar with month labels, optional weekdays, total, and intensity legend.
https://repopulse.kubik.gr/api/cards/contributions?username=dimitrisnimas&year=2026&show_legend=trueContribution Streak
Current streak, longest streak, active days, date ranges, and total contributions.
https://repopulse.kubik.gr/api/cards/streak?username=dimitrisnimas&show_ring=trueRepository Card
A compact public repository summary with description, language, stars, forks, issues, license, topics, and archived/fork/template state. Private and inaccessible repositories return the same generic not-found SVG.
https://repopulse.kubik.gr/api/cards/repository?owner=dimitrisnimas&repo=repository-name&show_topics=trueDeveloper Profile Card
A public developer identity card with optional avatar, bio, company, location, website domain, public metrics, languages, and GitHub status. RepoPulse never geocodes locations or fetches external websites.
https://repopulse.kubik.gr/api/cards/profile?username=dimitrisnimas&show_avatar=truePinned Repositories
Uses the repositories pinned on the user's public GitHub profile—never an approximation based on stars or activity. Supports one or two columns and up to six repositories.
https://repopulse.kubik.gr/api/cards/pinned?username=dimitrisnimas&columns=2&limit=4Query Parameters
Every card accepts username, theme, width, hide_border, and locale. Booleans accept true, false, 1, and 0.
Languages adds layout, langs_count, exclude, and hide_progress. Contributions adds year, show_total, show_legend, and show_weekdays. Streak adds year and show_ring.
Years are limited to 2008 through the current UTC year. Contribution calendar widths are 500–1000px; other cards support 320–900px.
Data and calculation methodology
Language percentages use byte totals across all owned, non-fork, non-archived public repositories and are rounded to one decimal place. Private repository languages are not included.
Contribution data is limited to what GitHub exposes to the server token. Streaks include all contribution-calendar activity—not only commits. Today counts when active; otherwise an active yesterday preserves the current streak through yesterday. Two inactive days reset it. Dates use UTC to avoid timezone shifts.
Reliability architecture
RepoPulse prefers stale data over broken README images. Requests use timeout-bound retries, a circuit breaker, fresh/stale Redis cache, in-process deduplication, and short distributed locks. GitHub and its README image proxy may cache SVGs after RepoPulse has refreshed them.
A daily Vercel Cron refreshes a bounded list of recently requested cards through the protected internal endpoint. On Hobby, execution is approximate within the configured hour; more frequent schedules require Vercel Pro.
Diagnostics
/api/health reports liveness, /api/readiness reports safe dependency readiness, and /api/status lists operational card types. The internal /api/internal/refresh endpoint requires CRON_SECRET.
GitHub API limitations still apply, Redis is optional locally, and private GitHub data is not supported.