# Meeting Reports

**URL:** <https://devforum.zoom.us/t/meeting-reports/37340>\
**Category:** API and Webhooks\
**Created:** [December 1, 2020, 5:09pm UTC](https://devforum.zoom.us/t/meeting-reports/37340 "2020-12-01T17:09:08Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![dt227883](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/dt227883/32/19531_2.png) [@dt227883](https://devforum.zoom.us/u/dt227883)\
**Post date:** [December 1, 2020, 5:09pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/1 "2020-12-01T17:09:08Z")

</div>

What is the difference between the API calls “v2 /metrics/meetings” and “v2/report/users/{user\_id}/meetings”

A meeting that is appearing for a particular user on “v2/report/users/{user\_id}/meetings” is not appearing on “v2 /metrics/meetings” on the same time frame.

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [December 2, 2020, 8:44pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/2 "2020-12-02T20:44:57Z")

</div>

Hey @dt227883,

Thank you for reaching out. The Metrics API endpoint is meant to get near real-time information about a meeting where the information returned is also slightly different information and requires a Business Plan. Conversely, the Report API endpoint is intended to return historical meetings and just requires a Pro Plan.

I hope that helps to answer your question. If you have any further issues please let us know.

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![dt227883](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/dt227883/32/19531_2.png) [@dt227883](https://devforum.zoom.us/u/dt227883)\
**Post date:** [December 2, 2020, 9:57pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/3 "2020-12-02T21:57:13Z")

</div>

Hi Max,

Thanks for your answer.

I have a project where I have to produce a reports of meetings with over 95 participants over a period of 6 months.

Which API you think will be the best suited for this purpose?

Kind Regards,

–  
Deiby Quezada

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [December 3, 2020, 9:31pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/4 "2020-12-03T21:31:30Z")

</div>

Hey @dt227883,

Since our [GET Meeting Reports](https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportmeetings) endpoint (`/reports/user/userId/meetings`) returns a participant count in the API response, and allows you to query the past 6 months of data, I’d recommend that endpoint.

Hope this helps,  
Will

---

<div class="post-metadata">

**Author:** ![dt227883](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/dt227883/32/19531_2.png) [@dt227883](https://devforum.zoom.us/u/dt227883)\
**Post date:** [December 4, 2020, 3:10pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/5 "2020-12-04T15:10:13Z")

</div>

Hi Will,

The problem with that API on our environment is that it checks every user and we have 12,074 (8,545 licensed users, to be more exact).

I am using “v2/metrics/meetings”, which only give me info on the individual meetings, but I am running into a problem because after a some calls the “next\_page\_token” token start yielding errors.

Here is a sample of my python code:

```
def list_meetings(self, date_from, date_to):
        """
        List total live or past meetings that occurred during...
        ...a specified period of time. The month should fall...
        ...within the last six months.
        https://marketplace.zoom.us/docs/api-reference/zoom-api/dashboards/dashboardmeetings
        """
        
        get_url = f"{self.base_url}v2/metrics/meetings"
        
        # Query Parameters
        params = {"from": date_from, "to": date_to, "page_size": 250, "type": "past"}
        # 1st API call
        response = requests.get(url=get_url, params=params, headers=self.headers, proxies=self.proxies)
        
        total_meetings = response.json()["total_records"]
        token = response.json()["next_page_token"]
        records = response.json()["meetings"]
        page_size =response.json()["page_size"]        

        print(token)                
        
        while len(token) > 0:
            try:
                # Query Parameters
                params = {"from": date_from, "to": date_to, "page_size": 250, "type": "past", "next_page_token": token}
            
                # 2nd API call
                time.sleep(1)
                response = requests.get(url=get_url, params=params, headers=self.headers, proxies=self.proxies)                
            
                token = response.json()["next_page_token"]
                print(token)
            
                # Add Records to json
                records += response.json()["meetings"]
            
            except KeyError as err:
                print(err, token)
                time.sleep(2)
        
        return records
```

---

<div class="post-metadata">

**Author:** ![will.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/will.zoom/32/14417_2.png) [@will.zoom](https://devforum.zoom.us/u/will.zoom)\
**Post date:** [December 7, 2020, 4:53pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/6 "2020-12-07T16:53:37Z")

</div>

Hey @dt227883,

Thanks for clarifying—In reference to:

> I am using “v2/metrics/meetings”, which only give me info on the individual meetings, but I am running into a problem because after a some calls the “next\_page\_token” token start yielding errors.

Can you share an example of the error you’re running into and the corresponding request? I’m happy to take a closer look.

Best,  
Will

---

<div class="post-metadata">

**Author:** ![dt227883](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/dt227883/32/19531_2.png) [@dt227883](https://devforum.zoom.us/u/dt227883)\
**Post date:** [December 7, 2020, 5:20pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/7 "2020-12-07T17:20:54Z")

</div>

Hey Will,

When I run the script above after an undermine number of executions it seems that the “next\_page\_token” starts yielding an error:

```
NZ7Vra6KftH86AgF5sXCo0aXaU18oQ9GN619
jb2Qp1RnMQCHjk9lcipb6Zyr7DpV0R7JIz20
OLg9UvciPECK0W0x1NRVgcHNISb3pzDDLg21
wPbt2HaGMxDpRBfDTocIdLsyI5934z57sT22
'next_page_token' wPbt2HaGMxDpRBfDTocIdLsyI5934z57sT22
'next_page_token' wPbt2HaGMxDpRBfDTocIdLsyI5934z57sT22
'next_page_token' wPbt2HaGMxDpRBfDTocIdLsyI5934z57sT22
'next_page_token' wPbt2HaGMxDpRBfDTocIdLsyI5934z57sT22
'next_page_token' wPbt2HaGMxDpRBfDTocIdLsyI5934z57sT22
yz7rHHKv48j3KwSEhbxNLaAt9U1VR0g7fa23
x4yjFdZDx5r6s1FXqijeXqdptPf3qmIN7t24
brd7ZexwOfUI58rohFhNOHr2MGhuB2xTnF25
```

---

<div class="post-metadata">

**Author:** ![dt227883](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/dt227883/32/19531_2.png) [@dt227883](https://devforum.zoom.us/u/dt227883)\
**Post date:** [December 22, 2020, 3:10pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/8 "2020-12-22T15:10:42Z")

</div>

Hi @will.zoom and @MaxM

Any suggestion on the code I sent?

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [December 23, 2020, 9:06pm UTC](https://devforum.zoom.us/t/meeting-reports/37340/9 "2020-12-23T21:06:30Z")

</div>

Hey @dt227883,

Thank you for the update. I’m not sure how we missed your response but thank you for pinging us to bring it to our attention. Just to clarify, when I’m seeing `'next_page_token' wPbt2HaGMxDpRBfDTocIdLsyI5934z57sT22` in that block of text, that’s coming from the caught KeyError exception here:

```python
except KeyError as err:
   print(err, token)
   time.sleep(2)

```

If that’s the case, I would log the requests that are causing that KeyError to make sure that the keys you expect are there. It’s possible that there isn’t another page to those meetings which causes the KeyError when you attempt to fetch the Next Page Token.

I hope that helps! Keep me posted.

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [January 23, 2021, 7:06am UTC](https://devforum.zoom.us/t/meeting-reports/37340/10 "2021-01-23T07:06:30Z")

</div>

Closed on January 23, 2021, 7:06am UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
