The polling loop agents should use: submit, read task_id/request_id/id from the response, then poll every 5 to 10 seconds. Treat completed, succeeded, ready, or done as finished; the done-status string varies by model, so check the model reference. The result URL field also varies: look for output_url, video_url, audio_url, or url, in that order. On 402, stop and tell the user to top up instead of retrying; on 429, wait 5 seconds and retry once. And only send fields the model reference documents, because a 4xx with an error body is almost always a validation issue like a bad prompt or a missing field.

Context: Web source (Pixazo Pika skill, agent instructions for the Pika Video API via gateway): video generation is asynchronous. The first response returns a task_id (or request_id); you poll a status endpoint until the video is ready. Auth goes in the Ocp-Apim-Subscription-Key header. The status table: 401 means the key is missing or wrong, 402 means out of credits, 429 means rate limited (wait 5s, retry once), 5xx means transient (one retry, then surface it).