# Asana API limits: every rate limit, in plain terms

Asana API limits: 150 requests a minute free, 1,500 paid, 60 for search, 50 reads and 15 writes at once, 5 jobs. How to tell which one you hit.

## Key takeaways

- Asana allows about 150 API requests a minute per connected app on a free workspace and about 1,500 on any paid plan.
- Searches have their own cap of 60 a minute, a tool can run at most 50 reads or 15 changes at once, and each person gets 5 export or duplication jobs at a time.
- Every limit returns the same too many requests error with a wait in seconds, and a tool should wait exactly that long.
- A batch request holds up to 10 actions, but each action still counts against the per-minute cap.
- A 2,000-task project with 400 parent tasks needs roughly 430 requests, about 3 minutes on a free workspace.

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.

![Screenshot of a Google Sheet of synced Asana tasks with the Asana to Sheets sidebar open beside it, listing a Website Relaunch project sync scheduled for 07:54 AM](/blog/images/asana-sheet-with-sidebar.png)

## 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](/blog/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](/blog/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.

## A well-built tool waits its turn

Asana's "too many requests" reply comes with a wait time in seconds. A good tool reads it, waits exactly that long, then tries again. It doesn't hammer, because rejected requests still count toward the limit. A tool that retries straight away keeps itself locked out longer.

A few other habits separate a careful tool from a noisy one:

- It asks for 100 items at a time, the most Asana returns per answer, so it needs fewer questions.
- It asks only for the details it will write to the sheet.
- It keeps a custom field's options in memory and stops asking for them on every task.
- It skips the subtask question for tasks that have no subtasks.
- It keeps about 10 requests going at once, well under the 50-read cap.
- It listens for change notices from Asana. Asking "did anything change?" on a timer mostly finds nothing and still spends the budget. Asana says this is often the biggest single saving for a sync tool.

One habit sounds like a saving and isn't. Asana's batch feature packs up to 10 actions into one request, but each action still counts against the per-minute cap. 10 actions in one batch cost the same as 10 separate requests.

You can't see any of this from the sidebar. You see the result. A slow first sync that finishes is a tool doing its job. A sync that stops at "too many requests" and gives up needs a better tool.

## Asana to Sheets on free and paid workspaces

Asana to Sheets waits and retries when Asana asks it to. On a free workspace, expect a first sync of a large project with subtasks to take minutes. Plan for that before you sit down to watch one.

Scheduled sync on our Pro plan runs every 3 hours. Google itself caps how often an add-on can run on a schedule at roughly once an hour, so faster scheduling isn't possible from inside Google Sheets. Live sync on our Business plan works differently. Asana sends a short notice when a task changes, and the add-on asks only about that task. That spends far fewer requests than reading a whole project again. We cover the schedule side in [how to update Google Sheets from Asana automatically](/blog/asana-to-google-sheets-automatically).

## Fixes for a sync that keeps hitting the limit

Your options, from cheapest to dearest:

1. Sync fewer projects per run, or split them across 2 spreadsheets that refresh at different times.
2. Use a filtered sync, by section or due window, so each run reads less.
3. Move the workspace to a paid Asana plan. Starter is $10.99 per user a month billed annually, and the per-minute allowance goes from 150 to 1,500.

The last one is the only one that changes the number. The rest change how much of it you spend.

## Frequently asked questions

### What are the Asana API limits?

About 150 requests a minute per connected app on free Asana workspaces and about 1,500 on paid ones. Search has its own cap of 60 a minute. At most 50 reads and 15 changes can run at once, and 5 export or duplication jobs per person. Asana also runs an unpublished cost-based limit for heavy requests.

### How long should a tool wait after "too many requests"?

Exactly the number of seconds Asana sends back with the error. It's often under a minute. Retrying sooner makes it worse, because rejected requests still count.

### Does the Asana batch API get around the rate limit?

No. A batch holds up to 10 actions, but each one counts against the per-minute cap. It cuts the number of connections. The count stays the same.

### Why does my Asana sync run so slowly?

Usually because of the per-minute limit. A free workspace allows 150 requests a minute, and subtasks need extra requests, one per parent task. A big first sync on a free workspace can take several minutes.

### What does "too many requests" mean in Asana?

The tool asked Asana more often than its limit allows in that minute. Asana tells it how many seconds to wait. A well-built tool waits and tries again on its own.

### Do Zapier and my sync add-on share the same limit?

No. Asana counts requests per connection, so each app you've signed into Asana with gets its own allowance. A slow Zapier run doesn't use up the add-on's minute.

### How long will a first sync take on a free workspace?

Count the requests, then divide by 150 for the floor in minutes. A 2,000-task project with 400 parent tasks needs roughly 430 requests, so about 3 minutes at best. Treat that as an estimate, because Asana's unpublished cost-based limit can add waits.

### Does upgrading Asana raise the rate limit?

Yes. All paid Asana plans get about 1,500 requests a minute, 10 times the free figure. The search cap stays at 60 a minute on every plan.

## Next step

If a first sync is crawling, check whether the workspace is on Asana's free plan before you change anything else. If it still crawls on a paid plan, send the project size through the [support page](/support).

_Asana is a trademark of Asana, Inc. Google Sheets and Google Workspace are trademarks of Google LLC. Asana to Sheets has no affiliation with either, and neither endorses it._
