Accessing More Than 10,000 Rows of Data Using The API

Monday, March 28, 2011 | 12:47 PM

Did you know that you can easily get more than 10,000 rows of data from Analytics using the API?
Auto-Pagination through the API

Here is a quick overview on how to do auto-pagination with our API. You might also follow along by checking the fully working sample code in Python which you can use in your own applications.

The following sample query fetches the first 10,000 keywords by conversion rate for the month of February:

https://www.google.com/analytics/feeds/data
?ids=ga:12345
&dimensions=ga:keywords
&metrics=ga:conversionRateAll
&sort=-ga:conversionRateAll
&start-date=2011-02-01
&end-date=2011-02-28
&start-index=1
&max-results=10000


Notice how start-index is set to 1 and max-results is set to 10,000. When this query is issued to the API, the API will return up to 10,000 results. The API also returns the number rows found in Google Analytics in the openSearch:totalResult XML element

14,654

To get the total number of pages in this request, we can use the following python code:

num_pages = math.ceil(total_results / 10000)

Then getting the start-index for each additional page is trivial:

for page_number in range(num_pages)[1:]: # skips the first page.
start_index_for_page = page_number * 10000 + 1


Thats it! If you want to start doing this today, or just see how it should work, we’ve included a fully working example. If you liked this, and want to see more example, let us know what we should do next in our comments.