This question is aimed for users who use the REST Tracking API to manually insert visits and actions in Piwik. The parameter cdt lets you define the date and time of the page view. If you set this date to a date in the past (for example, 3 days ago) and that Piwik has already processed the statistics reports for this date, you will not see the newly added data in Piwik.

To tell Piwik that past data was recorded after-the-fact and force the archiving to happen again for this date, you can use the API function: CoreAdminHome.invalidateArchivedReports.

For example if you imported data in the past for a few specific websites on a couple different dates you could write:


Alternatively you may use the core:invalidate-report-data console commmand:

./console core:invalidate-report-data --dates=2012-01-01,2011-10-15 --sites=1,3,5 --dry-run


  • The next time auto archiving will run will automatically re-process the data for these particular dates.

  • it is possible to invalidate and re-process a segmented report only, simply add to the URL query the segment parameter: &

  • in rare cases you may want to delete reports for a particular period (one of: day, week, month, year, range). You may set the &period= parameter to the API call, this will force Piwik to only invalidate reports of the specified period.

  • when invalidating report for a period eg. week it automatically invalidates all periods that include this one, eg. the enclosing month and year. We say the invalidation cascades up. By default, periods that are included are not invalidated (invalidating month will not re-process the days and weeks within the month). You may also force Piwik to invalidate inner periods by setting the parameter &cascadeDown=1.

Any questions?

Many answers and more information about Piwik You can find here:

We are social

Follow us: