Before we introduced webhooks, polling was the only way to find out when the translation of your file finished.
You kept calling GET /manifest which was wasteful for both your systems and ours, because you kept having to send a request and we kept having to answer them, even when nothing changed between those calls.
So we introduced webhooks, which now cover all three scenarios listed below in different ways.
1) Monitor file you uploaded to your bucket
This has been supported the longest. In this case you just have to provide a workflow id of your choice when subscribing to extraction.finished or extraction.updated events then use the same workflow id when you kick off the translation:
https://aps.autodesk.com/en/docs/webhooks/v1/tutorials/create-a-hook-model-derivative/
2) Monitor file you uploaded to ACC
In this case as well you just have to provide a workflow id of your choice when subscribing to extraction.finished or extraction.updated, but then have to provide the same workflow id when you upload the file to ACC:
https://aps.autodesk.com/blog/webhook-now-supports-translation-progress-bim360-or-acc-files
3) Monitor file someone else uploaded to ACC
In this case you did not upload the file (might have been uploaded via the ACC UI or a different app), did not kick off the translation, but still want to get notified.
Here we can subscribe to a different webhook event called dm.version.modified, which will be fired for multiple reasons, some of which are related to translation progress.
However, you can filter those messages to focus on translation related events:
https://aps.autodesk.com/blog/multiple-notifications-webhook-event