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 ...