It's Monday morning, and a new sync from Asana to Google Sheets™ has been running for 6 minutes. The sidebar still says it's working, and the sheet has filled 300 rows of a 2,000-task project.
Nothing is broken. You've met the Asana API limits. Asana caps how often any connected tool can ask it for data, and when a tool asks too often, Asana makes it wait.
This post covers the 5 limits, how to tell which one you hit, the jobs that hit them and what a well-built tool does, without the developer vocabulary. The figures come from Asana's rate limits page, dated 3 July 2026, read again on 5 November 2026.
The short answer
The main Asana API limit is about 150 requests a minute to a free Asana workspace and about 1,500 a minute to a paid one, per connected app. Searches have a separate, lower cap of 60 a minute, and a tool can't have more than 50 reads or 15 changes running at the same moment. Go over any of them and Asana replies "too many requests", along with how many seconds to wait.
So a big first sync on a free workspace takes longer. A good tool pauses for the time Asana names, then carries on. A careless one keeps asking, and every rejected ask still counts against it.

One request is one question
Think of a request as one question a tool asks Asana. "Give me the next 100 tasks in this project" is one. "Give me the subtasks of this task" is another. "Tell me who's in this team" is a third.
A sync is a long series of these questions. A project with 2,000 tasks needs at least 20 just to list the tasks, at 100 per answer. Then come the subtasks, the sections, the people and the custom field settings. The total climbs fast, and it climbs faster with subtasks.
Here's a rough tally for a mid-sized project on a free workspace. 2,000 tasks take 20 requests to list. If 400 of them have subtasks, that's 400 more. Add a handful for sections, people and fields. Call it 430 requests, which is about 3 minutes at 150 a minute. On a paid workspace the same tally fits inside 20 seconds. These are estimates, since every tool asks its questions a little differently.
The Asana API rate limits, number by number
| Limit | Free workspace | Paid workspace |
|---|---|---|
| Requests per minute | 150 | 1,500 |
| Search requests per minute | 60 | 60 |
| Reads running at the same moment | 50 | 50 |
| Changes running at the same moment | 15 | 15 |
| Export or duplication jobs at once, per person | 5 | 5 |
A few notes on reading that table.
The limit is per connection. Asana's documentation says limits are "allocated per authorization token." In plain terms, each app you sign into Asana with gets its own allowance. Your sync add-on and your Zapier account don't share one budget.
Free and paid means the Asana plan. Personal is the free plan. Starter, Advanced, Enterprise and Enterprise+ all get the paid figure. Our post on Asana free plan limitations covers what else changes between them.
There's a second, hidden limit. Asana also runs a cost-based limit for heavy questions, and it doesn't publish the number. Big searches and questions that ask for a lot of detail at once use it up quickest.
The 5-job cap includes the web app. A CSV import you start in Asana counts against the same 5 jobs as any tool doing exports or duplications for you.
Telling the 5 limits apart
All 5 limits send back the same reply. Asana's error says "You've made too many requests and hit a rate limit. Please retry after the given amount of time." It doesn't name the limit. Asana's own guide says you work it out from what the tool was doing at the time, so here's that table in plain terms.
| What you saw | The limit you hit |
|---|---|
| Errors after a lot of work in one minute | The per-minute cap, 150 or 1,500 |
| Errors only on searches or workspace-wide filters | The search cap, 60 a minute |
| Errors with little work done, but many requests fired at once | The at-once cap, 50 reads or 15 changes |
| Errors on single big requests, such as a whole project with every field | The hidden cost limit |
| Errors while duplicating, exporting or importing, even in the web app | The 5-job cap |
The wait Asana names is a clue too. Asana checks the per-minute count more often than once a minute, so the wait is often under 60 seconds. Asana tells tools to use the number it sends and never to wait a hard-coded minute.
Big syncs, subtasks and loops hit it first
The first sync of a big project on a free workspace. At 150 a minute, a job that needs 900 requests takes at least 6 minutes, however fast the tool is. On a paid workspace the same job fits inside 1 minute.
Subtasks. Asana hands subtasks over one parent task at a time. A project where 400 tasks have subtasks needs roughly 400 extra requests. Deep trees add more, and Asana's guide names subtasks nested many levels down as a pattern that drives up the hidden cost limit. That's why a sync with subtasks turned on is slower. Our post on Asana subtasks in Google Sheets covers that side.
Many projects in one go. Syncing 30 projects means 30 rounds of the same questions. The rounds are small, but they add up to the same per-minute budget.
Search-heavy tools. Anything that leans on Asana's search, such as a filter across a whole workspace, runs into the 60-a-minute search cap long before the main one.
Automation platforms looping over tasks. A Zapier or Make scenario that finds all tasks in a project, then updates a row for each, makes 1 or more requests per task. A 2,000-task loop on a free workspace will hit the limit. Asana's guide warns that low-code platforms may not wait the time Asana names by default, so add delays between steps and process fewer records per run. On Zapier, each successful action step in that loop also counts as a billed task.