Skip to main content
Question

POST "/v2/webhooks" does not respond - timeout

  • May 27, 2026
  • 4 replies
  • 100 views

Silvio Jäger

We use the v2 API to set up webhooks, and it worked fine until about a week ago.
Now, setting up new webhooks through the API runs into a timeout.

Example request:

{
"event_type": "FILE_UPDATE",
"team_id": "111111111111",
"passcode": "PASSCODE",
"endpoint": "https://my-webhook-target-url"
}

The request times out with no response from the endpoint.
Is this a known issue?

Thanks, Silvio

4 replies

Jaycee Lewis
Figmate

Hey ​@Silvio Jäger 👋 Thanks for the detailed report. I'm able to reproduce this on my end and want to confirm we're seeing the same thing.

Running this from my machine against a team I own:

curl -i -X POST https://api.figma.com/v2/webhooks \ -H "X-Figma-Token: <my PAT with webhooks:write>" \ -H "Content-Type: application/json" \ -d '{ "event_type": "PING", "team_id": "<my team_id>", "endpoint": "https://webhook.site/<test endpoint>", "passcode": "test123" }'

  • Hangs for ~30s, then returns HTTP 504 Gateway Timeout from CloudFront 
  • No webhook is created
  • a follow-up GET to /v2/teams/{team_id}/webhooks returns an empty array
  • a GET on the same v2 path with the same token returns 200 in ~200ms

Seems like the token, scope, and team access are all fine. 

To make sure I’m chasing the same challenge, could you confirm a couple of things?

  • Does a GET to https://api.figma.com/v2/teams/{your_team_id}/webhooks return 200 for you with the same token you're using for the POST?
  • If you swap event_type to PING (or vice versa, if you've only tried FILE_UPDATE), does the behavior change at all?
  • Do you have a CloudFront request ID or x-figma-rest-api-request-id from any of your timed-out attempts?
  • Including -i in your curl will surface those in the response headers 

Thanks for the additional details! — Jaycee


Silvio Jäger
  • Author
  • New Member
  • May 28, 2026

Hey Jaycee
Thanks for the fast response!

Yes thats exactly what i get on my end as well. 
GET and DELETE endpoints work fine. Responses in around 300ms.

To your additional things:
- Yes GET returns 200. My PAT has webhook:read and webhook:write access.
- Just swapped to PING now → unfortunately same result
- Yes. Here is one:

Generated by cloudfront (CloudFront) HTTP3 Server
Request ID: M34diuCqaNY2oYdkkLm4u7b6TBMcW66gmAzz4ohH72a3b49NFhMEXA&#x3D;&#x3D;


Thanks, Silvio


Simon Forster

Hey, I’m having the exact same issue since yesterday. Here’s the another request ID if needed.

Request ID: KnSrQ5XnEvRmdRFWnfyXHhdlFDpQyOaeSZ9Kw17ojYJiemBakMUJAg&#x3D;&#x3D;

 


Jaycee Lewis
Figmate

Thanks ​@Simon Forster and ​@Silvio Jäger 🙌 I took this to my internal resources and will follow up if I have an update for us. — Jaycee