Issue with next_page_token and /metrics/meetings endpoint

Description
When trying to pull meetings for a date range via /metrics/meetings (in this case, the previous day), the initial API call returns just fine, but when attempting to use the next_page_token to pull subsequent calls we always get an error that the token is invalid or expired.

Error

{“code”:300,“message”:“The next page token is invalid or expired.”}

Which App Type (OAuth / Chatbot / JWT / Webhook)?
JWT

Which Endpoint/s?
/metrics/meetings

How To Reproduce (If applicable)
Output of initial API call and subsequent call, with meeting and auth token info removed:

GET https://api.zoom.us/v2/metrics/meetings?from=2021-02-03&page_size=300&to=2021-02-04&type=past HTTP/1.1
Content-Type: application/json
Authorization: Bearer
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.17763.1490
Host: api.zoom.us


HTTP/1.1 200
Date: Fri, 05 Feb 2021 16:47:47 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
x-zm-trackingid: WEB_c7a51d4fd767954bd5b4aacb2c195ca7
X-Content-Type-Options: nosniff
Cache-Control: no-cache, no-store, must-revalidate, no-transform
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: zm_aid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: zm_haid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: web_zak=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: cred=A6B93FFFE75F6D5F3229D07C682A38FB; Path=/; Secure; HttpOnly
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-RateLimit-Category: Resource-intensive
X-RateLimit-Limit: 60000
X-RateLimit-Remaining: 59972
Set-Cookie: _zm_ctaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: _zm_chtaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-XSS-Protection: 1; mode=block
Referrer-Policy: strict-origin-when-cross-origin

3add
{"from":"2021-02-03","to":"2021-02-04","page_count":5,"page_size":300,"total_records":1302,"next_page_token":"ovMNfa0sDzLLnq7xhk1Hq7g6PwFoYmteEw2","meetings":""}
------------------------------------------------------------------

GET https://api.zoom.us/v2/metrics/meetings?next_page_token=ovMNfa0sDzLLnq7xhk1Hq7g6PwFoYmteEw2&page_size=300 HTTP/1.1
Content-Type: application/json
Authorization: Bearer
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.17763.1490
Host: api.zoom.us


HTTP/1.1 400
Date: Fri, 05 Feb 2021 16:47:47 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 67
Connection: keep-alive
x-zm-trackingid: WEB_44dd11e51e2d2648ab8cb75e5e39cf28
X-Content-Type-Options: nosniff
Cache-Control: no-cache, no-store, must-revalidate, no-transform
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: zm_aid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: zm_haid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: web_zak=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: cred=9D59CD54C5CCE605B2BA505FC7C544D0; Path=/; Secure; HttpOnly
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-RateLimit-Category: Resource-intensive
X-RateLimit-Limit: 60000
X-RateLimit-Remaining: 59971
Set-Cookie: _zm_ctaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: _zm_chtaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: _zm_ctaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: _zm_chtaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly

{"code":300,"message":"The next page token is invalid or expired."}

Additional context
I’m new to the Zoom REST API, so this could definitely be an issue on my part. Just trying to track down if I’m doing something wrong or if something else is going on. Thanks!

Hi @dbuss,

Thanks for reaching out about this, and happy to take a closer look.

This is interesting—it seems that you’re submitting your second request right after your initial request completes, right? This token should be valid for 15 minutes.

I’ve seen a similar issue to this as a result of language/framework your request is coming from. Do you run into this same issue if you test with a simple cURL command or try in Postman?

Let me know—thanks!
Will

Tried this a couple of different ways: via Postman, curl, Invoke-WebRequest and Invoke-RestMethod PowerShell cmdlets. Same behavior every time.

We are making the calls in quick succession via script, so the token shouldn’t expire between calls. We are able to successfully get this to working with other API endpoints (/users, for example) but this one specifically doesn’t work for us.

Hey @dbuss,

Thanks for confirming—we’re looking into this (ZOOM-247352).

-Will

Hey @dbuss,

Our team is still investigating this, but I wanted to see if you happen to have another, more recent example of this request where you’re getting the error, with timestamp (within the last 7 days if possible)? This will be helpful for checking our logs, if possible.

Thanks,
Will