I have been using API to update row status (around 900 rows everyday, one to twice a day) and have been using this API for more than 6 months
However, on march 23 and march 24. it show some problem saying too many request
this is one sample request.
but almost all the rows have this error
is there any problem with CODA API?
2 Likes
Weâve experiencing the same error, but founded this rate limiting in the API documentation
Hi @Korn_Tris, @nsbofficebt_nsbofficebt, @Orlando_Javier_Morales_Ontiveros - Last week we had to implement a tighter rate limit on doc content changes to deal with some abuse vectors that were compromising our infrastructure. As per that last screenshot, there is a new 3/10 second rate limit on doc content changes (rows, etc).
Are you able to batch your row changes into fewer upsertRows
calls? If so I believe that should help keep you within the limit.
2 Likes
We are also encountering the same issue, as of about a week ago. We also made major changes to our Coda document around the same time the 429 Too Many Requests errors appeared, however those document changes were Coda internal and its unclear why they would affect API related rate limits.
In any case, we have now adjusted our code to only make a write request (writing data POST request which updates several hundred rows in the Coda table) once per 10 seconds, and it still raised the 429 errors.
Even more severely, upon running a script whose sole function is to make a single write request, we still get {âstatusCodeâ: 429, âstatusMessageâ: âToo Many Requestsâ, âmessageâ: âToo Many Requestsâ} response (this happens even after not making any API requests for a period of time beforehand). We are stuck here, and would appreciate ideas on how to fix this.
1 Like
Hi @Alan_Edmonds - I apologize for the disruption that came about from this change. 1 request per 10 seconds should be under the limit, so Iâm not sure why you are still getting 429 errors. And getting 429 errors even after a single request is even more perplexing. Are you seeing that happen on all docs or just that one?
Rather than set an explicit delay for your requests, a more resilient strategy is to implement exponential backoff, where your code detect 429 errors and automatically retries the requests after a period of time. Itâs more complicated to implement, but allows it to adapt to changing rate limits.
Hi Eric, thank you for the reply. We have tried this on a fresh doc and get the same issue. To be clear, an exponential backoff almost certainly wonât work, because we ran the following test:
- Turn off all API connection to Coda
- Leave Coda alone for half an hour (so all API limts should be reset)
- Come back and make an API call to write one single row
When we run the script to write one single row, we get the following error:
{'statusCode': 429, 'statusMessage': 'Too Many Requests', 'message': 'Too Many Requests'}
It doesnât seem to matter how long we wait or how little data we write to Coda, we get this 429 code in all situations no matter what.
We would really appreciate any help resolving this issue, as it is completely blocking our Coda usage. Thank you very much.
@Eric_Koleda This may or may not be relevant to diagnosing the issue, but I wanted to add that this 429 status only happens upon write requests. Read requests work as expected.
Thanks for the information @Alan_Edmonds. At this point I think weâll need an engineer to look into your account. Please create a ticket with our support team so they can escalate to the appropriate team.
1 Like
@Eric_Koleda the engineering fix has successfully stopped the 429 errors! Thanks very much
1 Like
Hi we are having the same issue - we use Coda as a supplemental CRM to Airtable and sometimes need to update multiple rows at a time (for example if a group of memberships expire, we will change all of those rows on airtable to Status = Canceled, and that will need to flow for every row into Coda). What is the workaround here, when multiple rows need to be updated at once?
Hi @Amy_Schultz - If your columns has âkey columnsâ (a set of column that form a unique value for that row) then you can use the upsertRows
endpoint to update multiple rows at once.
I donât know how to do this, is someone available to help?
I changed the setting to have the zap auto-run when it fails, and that seems to have resolved it for now.
1 Like