We’re running into an unexpected rate limit issue when executing a sequence of API requests, even though our usage should be within the documented limits. Below is the workflow we follow:
- GET /api/1.0/portfolios?workspace= – Retrieve all portfolios in our workspace.
- POST /api/1.0/projects//duplicate – Duplicate a project we use as a template.
- POST /api/1.0/portfolios//addItem – Add the newly duplicated project to a portfolio.
- GET /api/1.0/projects/ – Fetch details of the duplicated project.
- PUT /api/1.0/projects/ – Update some project details, mostly custom fields.
- (Wait 60s) – We introduced a delay here to ensure all tasks are properly duplicated before proceeding.
- GET /api/1.0/tasks?project= – Retrieve all tasks of the new project.
- POST /api/1.0/batch – Perform minor updates (PUT) on two selected tasks.
- (Optional) POST /api/1.0/batch – Duplicate specific tasks if needed.
- (Optional) POST /api/1.0/batch – Update the duplicated tasks if applicable.
Despite this approach, we are frequently getting the following rate limit error:
{
"errors": [
{
"message": "You have made too many requests recently. Please, be chill.",
"help": "For more information on API status codes and how to handle them, read the docs on errors: https://developers.asana.com/docs/errors"
}
],
"retry_after": 60
}
According to [the documentation](https://developers.asana.com/docs/rate-limits), we should not be exceeding the rate limits. However, it seems we are still hitting them.
• Is there an undocumented rate limit for specific operations (e.g., project duplication)?
• Does adding a project to a portfolio trigger background operations that count against our rate limits?
• Would using batch requests earlier in the workflow help optimize the request count?
We’d appreciate any insights into why we are encountering this issue and whether there are best practices to avoid it.
@John_Vu @Andrew-asana maybe you have some ideas?
1 Like
Is there an undocumented rate limit for specific operations (e.g., project duplication)?
No. I do not believe we rate limit for specific operations/endpoints
Does adding a project to a portfolio trigger background operations that count against our rate limits?
It shouldn’t as far as I know
Would using batch requests earlier in the workflow help optimize the request count?
Making batch requests still count towards our rate limits
@Uli.Kisslinger to help us investigate can you DM me with the user id / email address of the account you used to make these queries with?
1 Like
@Phil_Seeman @Uli.Kisslinger
You can disregard my last answer to:
Is there an undocumented rate limit for specific operations (e.g., project duplication)?
No. I do not believe we rate limit for specific operations/endpoints
I just learned that we do have a “hidden” limit over certain operations. For operations/endpoints like:
We have a limit of 5 duplications/instantiations per user. This means that if you have 5 duplications/instantiations jobs going on and then try to make an API request, you will hit our API request limit.
Scenario 1: You duplicated 5 projects in the Asana web app and the job is still going on → You will hit API rate limit when you try to make an API call
Scenario 2: You make 5 API calls to a duplication endpoint like Duplicate a project and the jobs for those project duplication are still running → You will hit API rate limit when you try to make an API call.
To clarify, if your duplication job completes you can start a new one so it’s not a strict function of time
Wow that’s very interesting, @John_Vu, thanks for this information!
This is the first I’ve heard of a UI operation affecting an API rate limit, had no idea that any UI operations could impact the API limits. Are these the only ones, or are there other areas where UI operations impact the API?
@Bastien_Siebman @lpb @Richard_Sather note this information.
2 Likes
@Phil_Seeman
Are these the only ones, or are there other areas where UI operations impact the API?
Yes. CSV imports and template instantiation
2 Likes
Thanks, @John_Vu. I think it would be good to dcument these and not keep them “hidden”. 
Especially since these are UI operations that impact the API limits, which is an unusual thing in my API experiences.
2 Likes
Thanks for the clarification, @John_Vu.
And thank you, @Phil_Seeman, for bringing John into the loop. I completely agree that this should be documented.
1 Like
Documenting them would be good, but at the same time you still need to code defensively and adapt to the rate limits anyway, so having those limits change shouldn’t play a role. Asana should be able to decrease those limits without us needing to adapt our code isn’t it?
Thanks, @Bastien_Siebman! I completely agree that defensive coding is essential for ensuring stability.
That said, I still believe having clear and comprehensive documentation of all rate limits—including those that aren’t explicitly stated—would be extremely helpful. Knowing the exact constraints upfront helps us avoid surprises.
1 Like
Thanks for the feedback @Phil_Seeman . I’ve went a head and updated our documentation to mention about jobs affecting the API limit.
4 Likes
Fantastic, thanks so much! 