Use GitHub’s REST star-history endpoint for the history series itself. GET /repos/{owner}/{repo}/stargazers/history returns calendar-week buckets with daily aggregate counts, so you can draw a chart without downloading individual stargazer identities. Choose GraphQL when the chart must also load related repository objects in the same request and you are prepared to manage cursors, node limits and point-based rate accounting.
This distinction matters because GitHub introduced the REST endpoint after restricting broad stargazer listings for privacy. The newer contract is bounded and predictable for large repositories, while a GraphQL implementation remains flexible but requires traversal and cost management.
As an Amazon Associate I earn from qualifying purchases.
The practical verdict
For a chart that answers “how many stars did this repository gain over time?”, REST is the better default. One response contains a week, that week’s total and seven daily counts. Pages are fixed at no more than 30 weeks, and moving to a higher page number walks backward toward the repository’s creation week.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →GraphQL is the better fit only when star history is one part of a larger graph-shaped response—for example, when each chart request also needs repository metadata and other connected objects. Its connection model gives you control over fields and traversal direction, but that control introduces cursor handling, point budgeting and node-limit risks that do not help a star-history-only workload.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
What the REST history endpoint actually returns
A purpose-built aggregate contract
The endpoint is GET /repos/{owner}/{repo}/stargazers/history. Each array entry has three fields:
week: the calendar week represented by the entry.total: the aggregate star count associated with that week.days: seven daily counts, beginning on Sunday.
The newest week is returned first. Increasing page moves toward older weeks, so a chart builder can fetch recent data immediately and continue backward only when it needs a longer range.
GitHub documents a default per_page of 30 and a maximum of 30. The documented maximum page is 100. In practical terms, every request has a known upper bound, unlike an unbounded walk through a stargazer identity list.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Calendar boundaries are GitHub-defined
The seven values in days are Sunday-based, but GitHub warns that week and day boundaries are not guaranteed to align with UTC. Do not silently label a bucket as a UTC midnight-to-midnight interval. Preserve the returned week and day positions, and state the boundary convention in your chart tooltip or documentation.
Authentication and permissions
Public resources can be queried without authentication. If you use a fine-grained token, the endpoint requires Metadata read permission. Apply the narrowest token scope that works for your deployment and keep credentials on the server rather than shipping them in browser code.
How to request and page through REST history
1. Make the first request
Send a request to GET /repos/{owner}/{repo}/stargazers/history. You can omit pagination parameters for the first page; GitHub uses the default of 30 weeks.
GET /repos/octo-org/example-repo/stargazers/history
The response is an array. A representative shape is:
[{"week":"2026-10-11","total":12840,"days":[12,18,21,17,25,19,14]}]
The values above illustrate the shape only; use the values returned for the repository you query. Treat days as an ordered seven-item series rather than assuming that each number is a cumulative total.
2. Request older weeks
Set per_page=30 explicitly if you want stable page sizing, then request page=2, page=3 and so on until the response is empty, you have reached the time window your product needs, or you reach the documented page limit.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
GET /repos/octo-org/example-repo/stargazers/history?per_page=30&page=2
Because pages are newest-first, page two is older than page one. Do not concatenate pages and then sort by request order; sort by the returned week value before rendering a left-to-right timeline.
3. Normalize the seven daily values
Store one record per day with the parent week, a Sunday-based offset from zero through six, and the returned count. Keeping the week identifier alongside each day prevents accidental mixing when a repository has a partial first or last week.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →4. Stop deliberately
For a “last 12 months” chart, stop once the oldest returned week is outside that window. For a lifetime chart, continue until no older page remains. Respect the documented page=100 ceiling; if a repository’s required span exceeds the contract, show the available range rather than pretending the omitted period is zero.
Building a production chart with REST
Choose a storage model
Persist the raw weekly objects as received, then derive daily rows for visualization. Raw retention lets you rebuild a chart if your display logic changes and makes it possible to audit a discrepancy against GitHub’s response.
- Use the repository’s full owner/name as the cache key.
- Record the request page and retrieval timestamp.
- Keep the seven-element order unchanged.
- Store the API response version or request headers you use, because GitHub’s contracts can evolve.
Refresh recent data, backfill old data once
A scheduled job can refresh page one frequently because it contains the newest week. Older pages change less often, so cache them and re-fetch on a slower cadence or when a user requests a longer history. This avoids repeatedly downloading the same archive while still allowing corrections to appear.
Handle partial weeks
The newest week may be in progress. Label it as current or partial rather than comparing it directly with completed weeks in a growth-rate calculation. Your chart can display the partial bucket, but rate-of-change summaries should either exclude it or clearly mark the comparison.
Make retries safe
Retry transient failures with exponential backoff and jitter. Keep page retrieval idempotent: writing page data under a deterministic repository-and-page key means a retry cannot duplicate points. Record non-success responses so an operational dashboard can distinguish an empty history from an authorization or rate-limit failure.
How GraphQL approaches the same problem
Connections, not a dedicated aggregate series
GraphQL exposes related data through connections. A connection requires either first or last, and the value must be between 1 and 100. The response includes pageInfo, which tells you whether more data exists and provides cursors for the next traversal.
For forward traversal, read pageInfo.endCursor and hasNextPage, then pass that cursor as after in the next request. To traverse backward, use startCursor, hasPreviousPage and before. A robust client must persist the cursor state and stop when the relevant page-info flag becomes false.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Why this is more work for star history
A star-history-only chart needs an aggregate time series. A connection-oriented query instead makes you manage pages of connected records and derive the series from what is returned. That means more application logic, more opportunities to mishandle cursors and more request-cost decisions. GraphQL’s field selection is useful when you need a broad repository object in the same response, but it does not remove the traversal work.
Recommended Free Tools
GraphQL limits you must design around
- The primary limit is point-based. GitHub documents 5,000 points per hour for typical user-authenticated requests, with different limits for enterprise installations and GitHub Actions.
- A single call cannot request more than 500,000 total nodes.
- Deeply nested or very large connections can time out or hit resource limits.
- Connection arguments are bounded at 100 items per page, so a long traversal still requires repeated calls.
These limits can change. Pin the API version used by your client and monitor GitHub’s current documentation and response headers rather than hard-coding assumptions indefinitely.
REST and GraphQL compared
| Decision axis | REST star history | GraphQL |
|---|---|---|
| Native history aggregation | Purpose-built weekly buckets with seven daily counts. | No equivalent aggregate-history contract is described here; you derive results while traversing connections. |
| Identity exposure | Returns aggregate counts, not stargazer identities. | Connection-oriented queries can involve individual connected records, so identity handling must be designed explicitly. |
| Pagination burden | page and per_page; newest week first; up to 30 weeks per page. |
Cursor traversal using first/last, after/before and pageInfo. |
| Request scaling | Bounded pages make lifetime retrieval predictable. | Long histories require repeated connection requests and cursor state. |
| Rate-limit accounting | Use the REST limits applicable to your authentication and endpoint. | Point-based; typical user authentication is documented at 5,000 points per hour. |
| Query flexibility | Focused response with a stable shape. | Choose fields and combine related repository objects in one query. |
| Production operations | Straightforward caching, page retries and chart normalization. | Requires cost estimation, node-budget checks, cursor recovery and timeout handling. |
What changed and why the REST endpoint matters
GitHub announced the star-history REST API on September 4, 2026, describing it as a way to track repository growth over time without exposing stargazer identities. GitHub Engineering later explained that the endpoint provides trends without returning individual identities or requiring unbounded database work.
The scale difference is concrete. GitHub Engineering’s October 14, 2026 migration example describes retrieving about 251,000 stars for react/react with the old stargazer-listing approach at about 2,511 requests. The same history required about 24 requests through the new endpoint, with up to 30 weeks of daily counts in each request. These figures describe that repository and that migration example; they are not a latency benchmark for every repository or network.
No independent end-to-end latency benchmark establishes that one API is universally faster. The defensible conclusion is narrower: REST transfers the aggregate history in a bounded contract, so it eliminates the identity-listing work a star-history chart does not need.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallPrivacy and removed-star caveats
Aggregate counts are not an identity feed
The REST contract is designed to provide trends without returning individual stargazer identities. That makes it a better fit for public charts that need counts rather than a list of people. It also reduces the amount of personal-data handling in your application.
Neither API is an unstar event log
Do not interpret the series as a complete record of every star and unstar event. GitHub’s engineering explanation says removed-star records are deleted from the underlying current-star model. The current REST contract describes stars represented in the returned history, not a durable event stream that preserves every removal. A curve can therefore differ from a ledger of all historical actions.
Explain the limitation to chart users
Add a concise note such as “Counts follow GitHub’s star-history contract and are not an event-level unstar log.” This is especially important when users compare the chart with an external analytics system that records events independently.
When GraphQL is still the right choice
The chart is part of a repository dashboard
If one screen needs history plus several repository objects, GraphQL can reduce the number of separate resource shapes your client has to coordinate. The trade-off is that you must keep the history traversal isolated enough that a large related connection cannot consume the entire node budget or cause a timeout.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
You need selective fields across related objects
GraphQL’s field selection is valuable when the response should contain a carefully chosen set of fields from connected objects. Use a small page size first, inspect the returned cost and page information, and increase the size only when the workload remains comfortably within limits.
Your team already operates cursor-based clients
Existing cursor infrastructure, cost dashboards and retry logic reduce GraphQL’s operational burden. Even then, keep a separate budget for history queries so a new nested field cannot unexpectedly exhaust the hourly point allowance.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Common implementation mistakes and fixes
Requesting a stargazer list for a count chart
Symptom: thousands of requests, slow backfills and unnecessary identity data.
Fix: switch the history series to /repos/{owner}/{repo}/stargazers/history and page by weeks.
Treating REST pages as chronological order
Symptom: the chart runs backward or shows a jump at every page boundary.
Fix: remember that page one is newest. Sort normalized records by week and day before display.
Assuming UTC week starts
Symptom: daily totals do not reconcile with another system’s UTC buckets.
Fix: use GitHub’s Sunday-based seven-day order and disclose that boundaries may not align with UTC.
Free tools Windows power users keep installed
One-click scans. No signup required.
Using an oversized GraphQL connection
Symptom: a query times out, exceeds node limits or consumes more points than expected.
Best Value
Fix: lower first or last, remove unnecessary nested fields, follow pageInfo incrementally and monitor point usage.
Assuming a missing page means zero stars
Symptom: the chart displays an artificial drop to zero.
Fix: distinguish an empty terminal response from an authorization, rate-limit or transient error. Mark unavailable intervals as unknown.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsCalling the curve an event history
Symptom: users expect every removed star to appear as a negative event.
Fix: label the data as GitHub’s aggregate history and explain that removed-star records are not retained as an event log.
A decision framework for your project
- Only need stars over time? Choose REST history.
- Need a bounded weekly-and-daily series with minimal privacy exposure? Choose REST history.
- Need repository objects and other connected data in one graph-shaped response? Consider GraphQL, while budgeting points and nodes.
- Need arbitrary event timestamps or a complete unstar ledger? Neither API contract described here provides that guarantee; do not present either series as one.
- Need the longest practical backfill? REST is easier to operate because pages are capped at 30 weeks and the documented page number is capped at 100.
Recommended REST architecture
Use a server-side collector keyed by repository, page and API-version configuration. Fetch page one on a schedule, cache older pages, normalize each week into seven ordered daily records, and render the newest partial week with an explicit label. Keep raw responses for auditing, retry transient failures idempotently and expose an “updated at” timestamp in the chart UI.
For GraphQL integrations, isolate the history query from unrelated deep connections, persist cursors between calls, stop on hasNextPage=false or hasPreviousPage=false, and enforce a point and node budget before adding fields. In both implementations, monitor GitHub’s documentation because access policies and limits can change.
Bottom line
For repository star-history charts, REST is the clear choice: it is aggregate by design, avoids stargazer identities, returns Sunday-based weekly buckets with daily counts and scales through bounded pagination. GraphQL remains useful when history must be delivered alongside a broader set of repository objects, but its flexibility comes with cursor traversal, point accounting and node-limit management. Choose it for the surrounding graph, not for star history alone.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

