iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
GitHub keeps repository traffic in a rolling 14-day window. The REST API returns clone and page-view totals and dated breakdowns only for the most recent 14 days. If you need trends older than that, you must collect the responses yourself before each day drops out of the window. GitHub does not document a recovery backfill after an observation expires.
What “14 days” means in GitHub traffic
The limit is a rolling lookback, not a permanent archive. At any request time, GitHub’s repository traffic endpoints expose the latest 14 days of data. The response contains aggregate totals and rows for individual time buckets, but a bucket disappears when it moves beyond that window. Waiting until the end of a month and then asking GitHub for the month’s history will leave the first half of the month unavailable.
This applies to the traffic API’s clone and view statistics. GitHub’s reference describes the result as the total number of clones and the breakdown per day or week for the last 14 days. The web interface follows the same short horizon for its traffic graph.
The figures are aggregate, not an audit log
Traffic statistics do not identify visitors or clone events. A clone count represents full repository clones; fetches are not counted as clones in the traffic graph. Visitor values are aggregate unique estimates supplied by GitHub. Referral sources, referral paths and popular content are ranked lists, not a complete record of every visit or URL request.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
What the repository traffic view contains
Anyone with push access to a repository can view its traffic. The interface separates several measures that are easy to lump together under the word “traffic.”
- Full clones: repository clones, excluding ordinary fetches.
- Visitors: GitHub’s aggregate visitor and unique-visitor measures for the recent window.
- Referring sites: ranked source domains or sites sending traffic.
- Popular content: ranked repository pages or paths that received attention.
Full-clone and visitor information updates hourly. Referring sites and popular content update daily. That difference affects the timing of an archive: a snapshot taken while a day is still open can change on the next run even when the date itself has not changed.
Time zones and bucket boundaries
GitHub assigns traffic-graph data to UTC+0. The daily buckets are aligned to midnight UTC regardless of the repository owner’s location. If your team operates in London, New York or Tokyo, a “day” in your local dashboard may not match GitHub’s day. Store the timestamp GitHub returns, and convert it for presentation only after retaining the original UTC value.
When you request weekly data, weeks begin on Monday. Do not group daily rows by local calendar week and then compare them directly with GitHub’s weekly response; the boundaries can differ around time-zone transitions and week starts.
Traffic API endpoints worth archiving
The collector can request only the measures needed for a report, but preserving the raw responses makes later analysis and schema changes safer. The principal repository traffic paths are:
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
| Endpoint path | What it returns | Supported period | Update behavior |
|---|---|---|---|
traffic/views |
Page-view totals, daily or weekly rows, and unique estimates | per=day or per=week |
Visitor and view information updates hourly |
traffic/clones |
Full-clone totals, daily or weekly rows, and unique estimates | per=day or per=week |
Clone information updates hourly |
traffic/popular/referrers |
Top referring sites | Endpoint-defined recent ranking | Updates daily |
traffic/popular/paths |
Top referring paths or popular content paths | Endpoint-defined recent ranking | Updates daily |
For the first two endpoints, request the period explicitly. A daily request is usually easiest to normalize, while a weekly request can support a second validation or reporting view. Keep the aggregate fields as well as every dated row; totals and rows are both part of the response contract and can be useful when checking a collector.
Build an archive before data expires
A dependable archive is a small data pipeline: authenticate, request each endpoint, record when the request happened, preserve the original JSON, and upsert dated rows. The following sequence avoids the most common gaps.
1. Create a least-privilege credential
Use either a fine-grained personal access token or a GitHub App credential. GitHub documents the repository Administration permission at read level for these traffic requests. Grant access only to the repositories that need reporting, keep the secret in a secret manager or repository secret, and rotate it according to your organization’s policy.
Do not put a token in a committed script, a generated report, or a log line. A collector should fail closed when the credential is absent or rejected, and its alert should identify the repository and endpoint without printing the secret.
2. Schedule at least one run each day
Run the collector daily, preferably at a consistent UTC time. Daily collection is sufficient to preserve every day’s bucket because the lookback is 14 days, but it does not freeze an in-progress day. If hourly freshness matters, poll more often and retain each raw response; that increases API calls and operational work.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
GitHub Actions can run a scheduled workflow, but GitHub documents an important continuity risk: scheduled workflows in public repositories are automatically disabled after 60 days without repository activity. Add a health check and notification for missed runs, or use an external scheduler when the archive must continue independently of repository activity.
Recommended Free Tools
3. Request the endpoints explicitly
For each repository, issue authenticated requests equivalent to:
GET /repos/OWNER/REPO/traffic/views?per=day
GET /repos/OWNER/REPO/traffic/clones?per=day
GET /repos/OWNER/REPO/traffic/popular/referrers
GET /repos/OWNER/REPO/traffic/popular/paths
Use the API version header required by your GitHub client or organization, and record that version with the response. Request weekly variants when your reports need GitHub’s Monday-based weekly buckets. Treat non-success responses as collection failures rather than replacing the day with zeros.
4. Preserve raw and normalized data
Write the unmodified JSON response to durable storage with these fields alongside it:
- repository identifier (owner and repository name, or an immutable internal ID);
- endpoint name and requested period;
- retrieval timestamp in UTC;
- API version header used;
- collector schema or code version;
- HTTP status and, where useful, response headers that describe rate limits.
Then normalize each dated row into a table keyed by (repository, metric, bucket_timestamp). That composite key makes retries idempotent: rerunning a failed job updates the same bucket instead of creating duplicates. Keep the raw object even after normalization so a later parser can recover fields your first schema did not use.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsRank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
5. Keep the current bucket mutable
Do not permanently seal today’s row after the first successful request. GitHub says full-clone and visitor information update hourly, so a later run can revise the value for the same UTC date. Referring-site and popular-content rankings update daily and can also change between retrievals. Upsert the open bucket and record the latest retrieval time; close it only after your own policy says the day is complete.
6. Aggregate only after collection
Calculate weekly and monthly totals in your own database after the daily rows are stored. Summing ordinary counts such as views or full clones is appropriate when the buckets do not overlap. Do not sum daily uniques values and label the result “unique people for the month.” Each daily unique value is GitHub’s estimate for that period; the same person can appear on multiple days, and the API does not provide an identity-level deduplication key.
Choose the operating model
There is no single best archive architecture. The right choice depends on how critical continuity is, how many repositories you monitor and how often you query the results.
| Decision | Option | Strength | Trade-off |
|---|---|---|---|
| Scheduler | GitHub Actions cron | Quick to deploy beside repository code | Public-repository schedules can be disabled after 60 inactive days; workflow ownership remains inside GitHub |
| Scheduler | External cron or service | Independent health checks and continuity | Requires another host, secret store and operational owner |
| Credential | Fine-grained personal access token | Simple for an individual or small team; repository-scoped permissions | Rotation and ownership follow a person’s account |
| Credential | GitHub App | Installation-scoped access and service identity | More setup, private-key handling and installation management |
| Storage | Repository files | Transparent history and easy review for a small archive | Large JSON histories are awkward to query and can expose data to every repository reader |
| Storage | Object storage | Cheap immutable raw retention and straightforward partitioning | Requires a separate query layer for reports |
| Storage | Database | Fast filtering, upserts and dashboards | Needs schema maintenance, backups and access controls |
| Collection | Daily snapshots | Low call volume and enough to prevent 14-day loss | Less detail about hourly changes |
| Collection | Several polls per day | Captures more of the hourly update cycle | More API calls, storage and reconciliation work |
Common failure modes and fixes
A scheduled workflow stopped running
Check the workflow’s run history and the repository’s recent activity. For a public repository, the 60-day automatic-disable rule is a likely cause. Re-enable the workflow, add a notification when no successful run arrives within your expected interval, and consider moving the schedule to an external service.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
A request returns an authorization error
Verify that the token or App installation can access the target repository and has the documented Administration read permission. Check that the collector is using the intended owner and repository, and replace an expired or revoked credential. Never “fix” an authorization error by broadening permissions to unrelated repositories.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Daily totals appear to change after collection
This is expected while the UTC day is open. Retain the retrieval timestamp and overwrite the same normalized key on the next run. If a value changes after your closeout period, preserve both raw responses and investigate the API response or collector version rather than silently discarding the difference.
Reports do not match local calendar dates
Display the original UTC bucket and label any converted local date clearly. A local-day report that crosses midnight UTC must be generated from your own time-zone transformation, not by renaming GitHub’s bucket.
Referral or popular-content numbers look incomplete
Those endpoints provide ranked lists, not an event-level export. A missing page or domain in the ranking does not prove it generated zero visits. Store the list as a snapshot with its retrieval time and avoid treating rank order as a complete denominator.
Free tools Windows power users keep installed
One-click scans. No signup required.
A month’s “unique visitors” total seems inflated
Do not add daily unique estimates. Report each day, use GitHub’s aggregate values as supplied, or describe a monthly figure as a sum of daily estimates rather than a count of distinct people.
GitHub Enterprise Server data-residency limitation
GitHub’s documentation states that repository traffic statistics are unavailable through both the REST API and the web UI on GitHub Enterprise Server data-residency sites. An archiver built for GitHub.com therefore cannot be assumed to work for those installations. Confirm the deployment type before designing storage, credentials or reporting around these endpoints.
A practical retention and reporting design
Keep two layers. The raw layer stores one object per retrieval, partitioned by repository, endpoint and UTC date, with the response and metadata untouched. The normalized layer stores dated metrics keyed by repository, metric and bucket timestamp, plus the latest retrieval time and schema version. This supports both reproducible audits and simple dashboards.
For a weekly report, group daily count rows using UTC Monday-to-Sunday boundaries or use the API’s weekly response as a comparison. For a monthly report, sum non-unique count metrics from the daily normalized rows and show unique estimates separately. Include a coverage indicator that identifies missing collection days; a zero is a measurement, while a missing row is a collection problem.
Finally, test the archive with a deliberately repeated run. The second run should update the same bucket, preserve the raw first response, and produce no duplicate normalized row. Test an expired or invalid credential in a non-production repository so the alert path is known before a real 14-day gap occurs.
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.

