cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
7118
Views
9
Helpful
5
Replies

API rate limiting in 2023

flyingframes
Level 3
Level 3

Meraki APIs are set to 10 API calls every second but that equates to 864,000 API calls in a day per organization.

https://developer.cisco.com/meraki/api/rate-limit/

Other vendors stop short of one tenth of that e.g. 5000 per hour. Just confirming if the above are true & someone has experienced crossing the above limits!

1 Accepted Solution

Accepted Solutions

obrigg
Meraki Employee All-Star
Meraki Employee All-Star

That is true, the current API rate limit is 10 calls per second, resulting in 864,000 call per day.

It is possible to reach the rate limit, when several apps/scripts run at once.

View solution in original post

5 Replies 5

Raphael_L
Meraki Community All-Star
Meraki Community All-Star

I'm hiting the rate limit every single day. It just depends on the size of your Org , number of admins doing API calls and if you are using asyncio or not.

obrigg
Meraki Employee All-Star
Meraki Employee All-Star

That is true, the current API rate limit is 10 calls per second, resulting in 864,000 call per day.

It is possible to reach the rate limit, when several apps/scripts run at once.

Philip D'Ath
Meraki Community All-Star
Meraki Community All-Star

I frequently hit the rate limit. Especially in orgs with multiple integrations.

I use the Python SDK, and it's retry logic often works. I frequently have to reduce the number of concurrent outstanding API requests with:

	async with meraki.aio.AsyncDashboardAPI(
		output_log=False,
		print_console=False,		
#		maximum_retries=100,
		maximum_concurrent_requests=5
	) as dashboard:

In busier orgs this is not enough, and I have to also use a throttler.

import throttler

	async with meraki.aio.AsyncDashboardAPI(
		output_log=False,
		print_console=False,
		maximum_retries=100,
		wait_on_rate_limit=True
	) as dashboard:
		dashboard._session._concurrent_requests_semaphore = throttler.Throttler(rate_limit=4, period=1.0)
		await ...

Is there a specific error code that Meraki will give back? e.g. error 429 once rate limit is exceeded?