<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together in Network Platform API</title>
    <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428112#M4652</link>
    <description>&lt;P&gt;This is a very good series to start Meraki API programing. Thanks for the hard work.&lt;/P&gt;</description>
    <pubDate>Fri, 26 May 2023 21:02:25 GMT</pubDate>
    <dc:creator>jeffzhu0001</dc:creator>
    <dc:date>2023-05-26T21:02:25Z</dc:date>
    <item>
      <title>Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428110#M4650</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Welcome to Part 7 of this Getting Started series! We hope you have gotten plenty of time to practice the Python concepts and got a good grasp on how to incorporate those concepts into a script to automate your basic workflows. In this part, we will bring all the concepts we learned thus far together and write a script to solve a problem. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If you missed the earlier parts of our series, please make sure you go back &lt;/SPAN&gt;&lt;A href="https://community.meraki.com/t5/forums/filteredbylabelpage/board-id/api/label-name/python" target="_self"&gt;&lt;SPAN&gt;here&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt; first before diving in. Well, let's get started!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Consider the following scenario: You are an administrator that has access to multiple different dashboard organizations. Your manager has asked you to write a Python script to get a list of Wireless Access Points from one of those orgs called “DeLab” and display only their serial numbers and connectivity status (dormant, online, offline, or alerting). To make it more readable, the information must be displayed in a tabular format.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We have created the following flowchart to break down the different tasks involved for your reference. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="1.PNG" style="width: 999px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image.png"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/262938iF624745752846874/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Please stop here, give it some thought, and try to write a script on your own using all the concepts we have discussed in this series. &lt;/SPAN&gt;&lt;SPAN&gt;There is definitely more than one way to complete this task so there is no right or wrong answer here. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We have come up with a simple solution as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;import meraki&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;from prettytable import PrettyTable&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;API_KEY = '6bec40cf957de430a6f1f2baa056b99a4fac9ea0'&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;dashboard = meraki.DashboardAPI(API_KEY, suppress_logging=True)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;We start by importing a couple of libraries, namely &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;meraki&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; and &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;prettytable&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt;. The meraki library is used to make API calls to the dashboard. The prettytable library will help you create a table around the data. Please note prettytable needs to be installed using &lt;/SPAN&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;pip install prettytable&lt;/FONT&gt;.&lt;/STRONG&gt; &lt;SPAN&gt;We then set the API key so we can use it to make API calls throughout our script. Another thing to note is while setting up the API key using &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;meraki.DashboardAPI()&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; function, we have used &lt;/SPAN&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;suppress_logging=True &lt;/FONT&gt;&lt;/STRONG&gt;&lt;SPAN&gt;as one of its parameters. This is to omit all the API logs from appearing on the screen so we can only see a clean output i.e. the data we expect from this script.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;list_of_orgs = dashboard.organizations.getOrganizations()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;def get_orgID(list_of_orgs):&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    for org in list_of_orgs:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;        if org['name'] == 'DeLab':&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;            org_id = org['id']&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    return org_id&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;org_id = get_orgID(list_of_orgs)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;Based on the flow chart above, the first task is to get a list of all organizations and then get org ID for the DeLab organization. We can do that by making an API call to get all orgs and store it in the &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;list_of_orgs&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; variable which will be passed as an input to a function called &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;get_orgID()&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt;. We can then extract the org ID of DeLab org by simply running a for loop and if statement within. Remember, a function needs to be called in order for it to be executed so the last line of the code above does just that. Now the &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;org_id&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; variable will hold the org ID of the DeLab organization.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;def get_devices(org_id):&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    list_of_devices = dashboard.organizations.getOrganizationDevicesAvailabilities(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;        org_id, total_pages='all')&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    return list_of_devices&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;org_devices = get_devices(org_id)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;The next task is to get a list of devices in the DeLab organization. We can do that by defining another function called &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;get_devices()&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; and passing the &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;org_id&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; variable that we received from the previous function as its input so we only get the devices from only the DeLab organization.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="2.PNG" style="width: 767px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image.png"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/262941i07F5C0C8C5CA0BC1/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;You will need to use &lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-availabilities" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt; API endpoint to get all the information about the devices in a given org along with their status and other information. Check out the &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;Request Parameters&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; section for this endpoint to know what sort of information you will get as a response. We are using a variable called &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;list_of_devices&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; to hold that response and return it back to the caller which is what the final line is for. So ultimately the &lt;/SPAN&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;org_devices&lt;/FONT&gt; &lt;/STRONG&gt;&lt;SPAN&gt;variable has the list of all devices in the DeLab organization.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;table = PrettyTable()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;table.field_names = ['Serial', 'Status']&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;for device in org_devices:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    if device['productType'] == 'wireless':&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;        table.add_row([device['serial'], device['status']])&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;print(table)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;The next task is to filter only the Wireless APs from the rest and then display their status in a tabular format. Let's start by creating a table using PrettyTable and store it in a &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;table&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; variable. We then add the fields to it as columns, namely Serial and Status as per our requirement. We can use the for loop to iterate through all the devices and from the &lt;/SPAN&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Request Parameters&lt;/FONT&gt;&lt;/STRONG&gt;&lt;SPAN&gt; section on the API endpoint page &lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/meraki/api-v1/#!get-organization-devices-availabilities" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;SPAN&gt;here&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt; we can see the serial number and device type is referred to by the &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;serial&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; and &lt;/SPAN&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;productTypes&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN&gt; parameters respectively. So within the for loop, we can use the if statement to filter only the devices that have productType of wireless and then add both serial and status as a row to our existing table. Finally, we print the table and you will get the desired output.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The full code is as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;import meraki&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;from prettytable import PrettyTable&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;&lt;BR /&gt;API_KEY = '6bec40cf957de430a6f1f2baa056b99a4fac9ea0'&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;dashboard = meraki.DashboardAPI(API_KEY, suppress_logging=True)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;list_of_orgs = dashboard.organizations.getOrganizations()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;def get_orgID(list_of_orgs):&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    for org in list_of_orgs:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;        if org['name'] == 'DeLab':&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;            org_id = org['id']&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    return org_id&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;org_id = get_orgID(list_of_orgs)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;def get_devices(org_id):&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    list_of_devices = dashboard.organizations.getOrganizationDevicesAvailabilities(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;        org_id, total_pages='all')&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    return list_of_devices&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;org_devices = get_devices(org_id)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;table = PrettyTable()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;table.field_names = ['Serial', 'Status']&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;for device in org_devices:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;    if device['productType'] == 'wireless':&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;        table.add_row([device['serial'], device['status']])&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;SPAN&gt;print(table)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The output should be as follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="3.PNG" style="width: 235px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image.png"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/263011i1A794025F7CB04D2/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;That’s it for this post! I will leave it here to let you try it out yourself! Please try to come up with another creative solution for the same. Better yet, try to build something on top of it like add names of the APs to the table or count the total number of APs with status other than online for troubleshooting or anything you want for your own network. Most importantly, have fun building the scripts.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;This post marks the end of our series on Getting Started with the Meraki API. It is just the beginning of your own personal journey with APIs though! Thank you for following along. We hope you found the series to be an exciting, fun, and informative introduction to the world of writing scripts. Now you have the tools you need to continue the adventure on your own! You’ll find plenty of support and resources to help you in the &lt;/SPAN&gt;&lt;A href="https://community.meraki.com/t5/Developers-APIs/bd-p/api" target="_blank"&gt;&lt;SPAN&gt;API &amp;amp; Developers board&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt; should you get stuck. &lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 02 Feb 2023 21:55:41 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428110#M4650</guid>
      <dc:creator>DuttPatel1</dc:creator>
      <dc:date>2023-02-02T21:55:41Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428111#M4651</link>
      <description>&lt;P&gt;This is a nice little series, one thing I did as I got in to it was create an example script of ways to filter and search the responses.&lt;/P&gt;&lt;P&gt;Like, this will create a new list from the response  where the key "AP" = WAP1, that you may want to loop though and use to search a different response.&lt;/P&gt;&lt;P&gt;subtest = [r for r in ls_dict if (r["AP"] == "WAP1")]&lt;BR /&gt;and&lt;/P&gt;&lt;P&gt;This will just count for you how many entries there are based on a search. &lt;/P&gt;&lt;P&gt;number_off = len([r for r in ls_dict if (r["clientMac"] == "FFFFFFFF")])&lt;/P&gt;&lt;P&gt;How about one last leg of the journy to give some examples like this to help people getting in to Python / API / JSON to take the journy to the next level.  May be sourced from the community, not lengthy code but single line well described examples that carry out specific by common operations.   &lt;/P&gt;</description>
      <pubDate>Tue, 28 Feb 2023 00:07:34 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428111#M4651</guid>
      <dc:creator>DevilWAH1</dc:creator>
      <dc:date>2023-02-28T00:07:34Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428112#M4652</link>
      <description>&lt;P&gt;This is a very good series to start Meraki API programing. Thanks for the hard work.&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 21:02:25 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428112#M4652</guid>
      <dc:creator>jeffzhu0001</dc:creator>
      <dc:date>2023-05-26T21:02:25Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428113#M4653</link>
      <description>&lt;P&gt;&lt;A href="https://community.meraki.com/t5/user/viewprofilepage/user-id/91580"&gt;@jeffzhu0001&lt;/A&gt; We appreciate the feedback. We are glad to know that this series is still helping people in their API journey.&lt;/P&gt;</description>
      <pubDate>Tue, 30 May 2023 01:22:06 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428113#M4653</guid>
      <dc:creator>DuttPatel1</dc:creator>
      <dc:date>2023-05-30T01:22:06Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428114#M4654</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I am ( was)  using an Old API key that I created for my Admin User ID.&lt;BR /&gt;When I log into the DEV Dashboard instance I see 4 Organizations.&lt;BR /&gt;When I issue the Get Organization call - It returns only one ?&lt;BR /&gt;&lt;BR /&gt;Where to start troubleshooting ?&lt;BR /&gt;Thanks,&lt;BR /&gt;  Don&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2023 16:03:00 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428114#M4654</guid>
      <dc:creator>Don2001L</dc:creator>
      <dc:date>2023-06-06T16:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428115#M4655</link>
      <description>&lt;P&gt;Hey Don,&lt;/P&gt;&lt;P&gt;If you are using your own API key then that key will only give access to what you have permissions for. So in this case, you should only be able to see your organization using your key. This series is using a publicly available read-only API key from DevNet and hence if you use that key then you will see only the DevNet Sandbox infrastructure.&lt;/P&gt;&lt;P&gt;I hope this helps.&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2023 16:07:15 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428115#M4655</guid>
      <dc:creator>DuttPatel1</dc:creator>
      <dc:date>2023-06-06T16:07:15Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428116#M4656</link>
      <description>&lt;P&gt;Perhaps a Reason. -&lt;BR /&gt;I was just wondering - Does a Key only give you access to What Exists at the time it is created ?&lt;BR /&gt;The key I was using have some strange labeling :&lt;/P&gt;&lt;P&gt;Created before undefined NaN NaN NaN:NaN UTC&lt;BR /&gt;&lt;BR /&gt;I would imagine you Might not want someone to Automatically be given access to Everything created after the Key was issued ?&lt;BR /&gt;( Just a Wild supposition on my part )&lt;BR /&gt;&lt;BR /&gt;Creating a New key - gave me access to all the Orgs.&lt;BR /&gt;&lt;BR /&gt;Don&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2023 18:55:25 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428116#M4656</guid>
      <dc:creator>Don2001L</dc:creator>
      <dc:date>2023-06-06T18:55:25Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428117#M4657</link>
      <description>&lt;P&gt;Hey Don,&lt;/P&gt;&lt;P&gt;The API key inherits the same level of access as the user creating it and there is no way to change that. Please keep in mind, a key is tied to the user, not the dashboard org. The key should show you everything you have access to at the moment of making an API call. That same key can also be used to update/add configurations to the orgs or networks you have access to.&lt;/P&gt;&lt;P&gt;I am not sure about the strange labeling coz I will have to see you environment and what exactly you are doing. But I am glad, the new API key is showing you all you need to see. Save that API key securely and use it to make any API calls you need.&lt;/P&gt;&lt;P&gt;Happy learning!&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2023 19:53:19 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428117#M4657</guid>
      <dc:creator>DuttPatel1</dc:creator>
      <dc:date>2023-06-06T19:53:19Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428118#M4658</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;So a key will give you access to everything exists a the moment of creation and everything created in the Future ?&lt;BR /&gt;That did not quite seem to be the the case with the Relic I Revoked - but its All good now &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;/P&gt;&lt;P&gt;Don&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jun 2023 21:04:28 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428118#M4658</guid>
      <dc:creator>Don2001L</dc:creator>
      <dc:date>2023-06-06T21:04:28Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Started with Meraki API using Python Part 7: Bringing It All Together</title>
      <link>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428119#M4659</link>
      <description>&lt;P&gt;I have written some thing similar recently, except I have use a HTML interface to display my results&lt;/P&gt;</description>
      <pubDate>Sat, 17 Jun 2023 06:44:30 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-platform-api/getting-started-with-meraki-api-using-python-part-7-bringing-it/m-p/5428119#M4659</guid>
      <dc:creator>Martin-cantwell</dc:creator>
      <dc:date>2023-06-17T06:44:30Z</dc:date>
    </item>
  </channel>
</rss>

