BFL polling_url on api.bfl.ai vs Sume status_url
BFL says to always poll the polling_url it returns. Sume's job envelope carries status_url and result_url for the same reason: follow them, do not build URLs.

On BFL's global endpoint api.bfl.ai and its EU and US regional endpoints, you must poll the polling_url returned in the first response rather than a URL you assemble. Sume works the same way in spirit: the job envelope carries status_url, result_url, events_url and cancel_url, and you continue with GET status_url.
Sources: BFL's integration guide and Sume's Jobs and results, read 2026-10-01.
What does BFL require?
The guide says that with the primary global endpoint or the regional endpoints you "must" use the polling_url returned in the initial request response. Its example submits a request, reads polling_url from the JSON, and polls that address with your key in an x-key header.
What does Sume return instead?
Every Sume submit mode returns the job id in its first response. The envelope carries status_url, result_url, events_url, cancel_url and, for a bounded wait, a sync object. When a sync wait ends before a terminal state, the docs say you "must" continue with GET status_url, honoring next_poll_after_seconds when present and backing off otherwise.
Do not submit a new paid job for the same intent. A retry of the submit itself is fine with the same Idempotency-Key; see idempotency keys.
How do the two compare?
| Point | BFL | Sume |
|---|---|---|
| Field to poll | polling_url | status_url |
| Result address | Same polling response carries the output | GET result_url once result_ready is true |
| Pacing hint | Example sleeps 0.5 s between polls | next_poll_after_seconds when present |
| Stop condition | Terminal status in the response | terminal is true |
What should my client do?
Store the URL fields from the first response next to the job id and poll them as given. If you lose them, GET /v1/jobs/{id}/status is the documented status path for a Sume job id. Once terminal is true and sume_status is completed, fetch the result; for failed or canceled, read the error off the job record.
Sources
Related posts
More in Developers
- Boost dull video colors by API: the vibrance filter intensity
Sume's video filter allowlists vibrance, with intensity from -2 to 2 and a default of 0. A small positive value lifts muted color; a negative one mutes it.
- C2PA 2.3 editing history: what trim and filter return in Sume
Content Credentials 2.3 shows clearer edit history such as resizing, markup and redactions. Sume trim and filter return a new MP4; inspect never makes one.
- California SB 1000: no user threshold, new verification tool
SB 1000 recasts the California AI Transparency Act: no user threshold, a disclosure verification tool, no manifest option. What Sume's docs list.
- Caption animation speed in and out: Sume motion overrides
Tune burned-in caption animation with design.motion: enter_seconds, exit_seconds, emphasis_in_seconds and emphasis_out_seconds, set per caption request.
Written by Sume