Page Views Changes to Improve Accessibility and Data Management

sgergely
Instructure
Instructure
27
4025

We're rolling out some important updates to how Page Views are handled in Canvas, affecting both the user interface and our public APIs. These changes are designed to improve performance, accessibility, and data management, while also changing how partners access pageview data through the API

What's Changing for Canvas Users and Admins?

We’re streamlining access to page view data to simplify the user experience and to be more efficient about data retrieval and access. Most use cases require page view data from the past 30 days. Our data shows that only 2% of queries require data more than 30 days old. Effective September 24 only the most recent 30 days will be presented by default and older data will be available to download on the Canvas UI for Admins.

Enhanced User Interface for Page Views

We're making your page view history even more efficient and user-friendly.

  • Your Personal Page View History: When you access your History menu item in Canvas (available from the main menu), you'll continue to see your recent page view history. To ensure clarity and optimize performance, we're introducing an empty state message that will clearly indicate that only the last 30 days of your page view history will be displayed. This doesn't change what you currently see, but makes clear what data is available.
  • Admin Page View Insights: For Canvas Admins, viewing a user's page views will see some valuable improvements:
    • Streamlined On-Page Display: The infinite scroll on the page view list at the bottom of the user's page views will be replaced with a more accessible pager. Again, this pager will display the most recent 30 days of page view history, providing a focused and efficient view.
    • Improved CSV Downloads: We're significantly enhancing the CSV download process for page view data. You'll now have the flexibility to select one or more specific months or the last 365 days of data. Plus, CSV generation will become asynchronous, meaning you can continue working while your report is being prepared. The new process will also deliver one comprehensive CSV file, removing the previous 300-line limitation.

Important API Changes for Developers and Partners

We're also updating the List user page views API to improve its efficiency and scope.

  • API Data Reduction: Moving forward, this public Canvas API will return data for the last 30 days only. This change helps us optimize performance and ensure faster responses for common queries.
  • Impact on Partners: Partners currently utilizing the List user page views API for historical data will be affected. While incremental updates (the last 30 days of data) will still be readily available through this existing API, accessing older historical data will require a new approach.
  • New API for Historical Data (Beta Access): We understand the need for historical data access. To support this, we will be releasing a new set of additional APIs in Q4 specifically designed for retrieving historical page view data. These new APIs will first be available in beta access. We will provide more details on how to access and utilize these new APIs soon.

These updates represent our ongoing commitment to improving the Canvas experience for everyone. We believe these changes will lead to a more performant, accessible, and robust platform.

27 Comments
dbrace
Community Coach
Community Coach

Hi @sgergely,

Thank you for this update about user account Page Views.

In this update, the only time frame you provided was for the new API for historical data (Q4).

I have two questions:

  1. What is the time frame for everything else?
  2. For historical data with the new API, is the target "early" Q4 (which is October and only a few weeks away) or "late" Q4 (which is December)?

-Doug

dbrace
Community Coach
Community Coach

Thank you for editing to include the date.

-Doug

sgergely
Instructure
Instructure
Author

Hi @dbrace!

Wow you are quick! I have updated the post.

The UI changes are already deployed to the beta Canvas instances, and the 30 day limitation on the API along the UI changes is going to be rolled out to production on 24th of September.

Regarding the historical data access through API timing question I need to get back to you later.

Admins could still access 365 days of history for any of their users through the UI, that hasn't been changed, just got better.

chriscas
Community Coach
Community Coach

Hi @sgergely,

I would urge Instructure to reconsider adding the 30 day limit on the existing API.  I have spent a couple months writing a script to retrieve user data and parse it using that API.  As a Canvas Administrator, I expect to be able to use the API to get access to almost any data I need.  I know it's sometimes slower than using Canvas Data 2, but not every school has the time, resources, and expertise to be able to use CD2 and many like mine have likely already build processes that utilize the Pageviews API and need records for more than 30 days.  If this change must go forward, which I will be very disappointed to hear, Instructure should give a much longer transition time for everyone to adjust.

I do appreciate enhancements to the UI, as the infinite scrolling and 300 line limit for the CSV have always been super annoying.

-Chris

dbrace
Community Coach
Community Coach

Yeah, @sgergely, I have notifications turned on for certain areas of the Community. So I got the notice that the post was made and that it was edited.

I rarely look at page views while in beta because the data is from production (which makes sense) and I see the UI changes there.

Please make sure that the upcoming changes (with some more info about how they were work) are documented at https://community.canvaslms.com/t5/Canvas-Releases/tkb-p/canvas-release (whether as a "Release" or "Deploy", because I do not see references there).

When the time comes, can you please also make sure that the historical data API changes are documented at https://community.canvaslms.com/t5/Canvas-Change-Log/tkb-p/changelog?

I look forward to playing around with the UI enchangements for page views, especially the pagination because the Canvas mobile app(s) generate a lot of activity (and removing the 300-line limitation is key). I have a student (they are higher ed but a dual enrollment / high school student) I am currently looking at and in one-day and a couple of hours they have 98 pages of lines.

Thanks again for the update(s) and additional information.

-Doug

mclark19
Community Participant

@sgergely Can we assume that the analytics API that reports aggregate numbers (https://developerdocs.instructure.com/services/canvas/resources/analytics#method.analytics_api.stude...) will not be impacted by this change? 

-Martyn

jwals
Community Participant

Hi @sgergely , I will add our institution's voice to the frustration with this. Like @chriscas , we have scripts that make use of the page views API and that regularly request data more than thirty days old (I guess we're part of the 2%). I'm sure there are cost and efficiency improvements to moving that older data into colder storage but announcing a breaking change to your production API with less than two weeks notice is very much less than ideal. At the very least, we would strongly encourage you to delay this change until the new endpoints for historical data access are available so we can at least rewrite our scripts to have feature parity. 

ahess4
Community Contributor

I concur with @jwals . Why make this change before releasing the new endpoint?

hfchen
Community Participant

If Beta is any indication. I have issue with the UI changes as well.

1. 10 per page is too few on the "30 day activity" tab. I appreciate why infinite scroll might be a problem. But it needs to be 30-50 per page for usability's sake.

2. The tabs should really read "view activity" and "download activity log" with how it's setup currently.

3. I would appreciate being able to select specific dates for start/end dates for the download. Oftentimes now we just need 1-4 days of log downloaded. Not entire months.

sylvia_sotomayo
Community Participant

I use pageviews on a sporadic basis, generally when a student is disputing something - a charge, a grade, something - and the VP of Student Services needs to know the student's activity for a specific course during a specific term, up to 3 years back. I have a script that will download a whole 3-4 months worth of pageviews for a student via the API, filter it by the course in question, and prepare a report for Student Services. 

This: 

  • API Data Reduction: Moving forward, this public Canvas API will return data for the last 30 days only. This change helps us optimize performance and ensure faster responses for common queries.

will apparently destroy that whole process? I don't mind rewriting the script to use a different endpoint, but please do not change what the existing endpoint returns before then.

pgo586
Community Contributor

Hi @sgergely , I totally concur with @chriscas, @jwals and others who commented here and expressed frustration at the time frame. I believe that Instructure should treat this as an API deprecation (which it actually is), and follow its own documented policies for API deprecations (which interestingly, looks like they got updated this past August... but still mentions 90 day deprecation notices for various things within the table provided -like endpoints, etc-. ). So at 90 days is when I would expect the API endpoint or functionality to be removed, but not earlier than that.  

 

Jeff_F
Community Coach
Community Coach

+1 ---> You'll now have the flexibility to select one or more specific months or the last 365 days of data.  

 

jsmith
Community Participant

Hi @sgergely

I just downloaded the CSV in Beta for a specific user.

The clientIP field lists IP Addresses in BASE64

Could this please be changed to list IP Addresses as IPv4?

Or can someone share an Excel formula to convert BASE64 to IPv4?

ClientIP-Base64.png

ellen_peters
Community Participant

After the deploy of 24 September, the page views export csv no longer contains any data, except the column headings (makes no difference if I export one month or several months). It happens both on production and beta. I will create a ticket with support.

A question: I see that the columns headings are quite different than in the old export. Will the API documentation be updated for the new column names? 

dbrace
Community Coach
Community Coach

Hi @ellen_peters,

Maybe there is something unique occuring for you but, from the "1-year activity" area, I was able to request and download a one-month range (I used September 2025) and also a three-month range (February 2025 through April 2025). For both of those requests, I was able to open the CSV files in Microsoft Excel and saw the requested data (not just the header row). Please let us know what Support says.

Yes, the header row and data are different and I agree that those changes should be documented.

I think that there needs to be some clarification for how what is requested appears in the table of previous requests. I requested for September 2025 through September 2025 (one-month) and February 2025 through April 2025 (three-months) but they appear as August 2025 through September 2025 and January 2025 through April 2025. As expected from the request, there was no data from August 2025 (for the first request) and January 2025 (for the second request) in the CSV files.

Below is a screenshot showing that and how that could be confusing.

Page Views -- 1-year activity -- requests.png

-Doug

 

chriscas
Community Coach
Community Coach

I was also able to download files from the 1 year tab today, and they did have data in them so I can replicate what you're seeing @ellen_peters.

I do experience the month range issue @dbrace mentioned (if I select Sept-Sept, the exported range row says August-Sept, but the file itself does just contain Sept).

I would really have preferred if the columns in the export had stayed identical to the old format, or at least only had new things added.  That doesn't seem to be the case here though based on the reports in this thread so far, though I don't have an old file handy to compare to to confirm that.  I don't know if there's any flexibility on the Instructure side on the date included in the CSV or not.

I don't think Instructure meant for this to be a hugely impactful change, but for those of us who used the CSV data from the UI or the data from the API it's certainly been disruptive.

-Chris

ellen_peters
Community Participant

Hi @dbrace and @chriscas,

The issue I experienced with the empty export csv appeared to be a known issue for more users. It is mentioned on the Instructure status page

For our environment, it has been fixed. 

You both mention the discrepancy between the selected months in the filters and the months in the table of exports. In my situation however, the Start month is the same as in the filter, but the End month is one month later!? De data in the export csv are for May through September. 

Wrong end month.jpg

IanGoh
Community Contributor

@jsmith   I see regular clientIPs in the CSV both in Production and BETA.  Maybe they fixed it before release? 😉 

e.g., 

clientIp
162.129.250.59
chriscas
Community Coach
Community Coach

@ellen_peters,

I wonder if the date range display issue is somehow browser-specific.  I'm currently using Edge 140.0.3485.54 on macOS 15.7, and I see this (I even tried the same range as you to see if it was something related to that):

Screenshot 2025-09-25 at 10.24.55 AM.png

-Chris

dbrace
Community Coach
Community Coach

I am using macOS 15.7 (Intel chip; its last full macOS update will be macOS 26/Tahoe when I upgrade in June 2026, unless my IT Department gives me a new device before then but I doubt that because they are more concerned, as they should be, with upgrading Windows 10 to Windows 11) and Microsoft Edge 140.0.3485.81.

-Doug

ellen_peters
Community Participant

@chriscas

I have made an export in Edge, Firefox and Chrome (on Windows 11) and in all browsers the End month is one month later. I wondered if it has to do with the default language (English UK for us) and default time zone (Amsterdam for us). I changed these on our beta environment to English US and Mountain time. It makes no difference.

Another thing I noticed when using the different browsers: you only see the exports that you made in that specific browser. I wonder if that is intented.

IanGoh
Community Contributor

Hmm ... I just noticed there's an odd entry every so often in the Page Views (looking at myself, and another user)

 

Page views for this user
URL             Date                         Participated Time    User Agent
https://       Sep 24, 2:07 PM    19s                              Unrecognized Browser

 

Seems to occur once a day.  Can't recall if we had these in the old Page Views...

 

Ian

sgergely
Instructure
Instructure
Author

Hi everyone,

Thanks for sharing your questions, concerns, and thoughts — Based on your feedback, I’d like to clarify what’s changing and what options you have to continue accessing pageviews data.

🔑 Key points about the change:

  Changes that will help those of you with concerns

  • With the October 8th Canvas Production release, we will introduce a new beta historical data API, allowing you to retrieve pageviews for a larger date range - 365 days - in a more scalable way.
  • We increased the number of pageviews displayed per page from 10 → 100 in the last 30-day view.
  • We added a date range selector for a 30-day view so you can more easily target the timeframe you need.
  • We have rolled out a fix for the base64 IP address issue.
  • You will still be able to incrementally add data to your existing warehouse or historical dataset without interruption after the 30-day limit takes effect.

⚠️ Important note about data reliability:

As stated previously, pageviews data is a best-effort log aggregation, not a transactional system of record. Our documentation includes the following disclaimer:

“The data is a best effort attempt, and is not guaranteed to be complete or wholly accurate. This data is meant to be used for rollups and analysis in the aggregate, not in isolation for auditing, or other high-stakes analysis involving examining single users or small samples.

For academic integrity or security use cases, we recommend combining pageviews with other data sources or workflows to ensure completeness.

We appreciate your feedback and will continue improving both the UI and APIs to make this data easier and more reliable to work with.

dbrace
Community Coach
Community Coach

Hi @sgergely,

I noticed that in the same day (possibly in the same 24-hour period but I have not tried that), it is not possible to request the same time range or data again.

For example, earlier today I requested September 2025 to September 2025 data for a user account. I am now (later in the day because the user generated more activity) requested September 2025 to September 2025 and addiitonal time and I cannot. I was able to proceed by requesting data for August 2025 through September 2025 and that helped me in the moment.

Is that experience intended or is it a bug or is it an oversight with how the 1-year activity data export was designed/developed?

-Doug

sgergely
Instructure
Instructure
Author

Hello everyone!

As scheduled, the Historical PageView API is now officially released and ready for use!

You can find the documentation, which details the new asynchronous workflow, starting here: https://developerdocs.instructure.com/services/canvas/resources/users#method.page_views.query

The API follows the familiar pattern used by the DAP Query API (or CD2): you submit a query, poll the status of the job, and then download the results.

I'm currently working on a dedicated blog post to provide a broader, deeper understanding of this new tool, but I wanted to get this quick notification out to all of you right away. Happy querying!

dbrace
Community Coach
Community Coach

Thanks for that update, @sgergely. I look forward to talking a look at it.

Did you by chance see my most recent comment/question?

-Doug

sgergely
Instructure
Instructure
Author

@dbrace Sorry I have missed that! 

We have implemented two temporary limitations on the PageView History API to help us fine-tune our cloud resources and ensure system stability:

  1. 24-Hour Result Caching: If you initiate an export query for a specific user and time range, that exact query will be cached for 24 hours. You can download the result at any point during that period. To ensure you retrieve the most current data (within the last 30 days), we recommend using the standard List user page views API for incremental updates.

  2. One Parallel Query Limit: We currently allow only one PageView History query to run per Canvas instance at a time. We may increase this limit in the future to allow for parallel processing, but for now, we must restrict it to ensure the system remains stable and responsive for all users.