Poll the status of an errand handoff.
const url = 'https://native-api.sudomimus.com/errand/example/status';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://native-api.sudomimus.com/errand/example/statusLightweight polling endpoint for the errand handoff returned by a claim-gate 403: bearer-by-key, no other authentication, a pure single-row read with no side effects — unlike retrying direct-issue, which is the full credential round-trip. Poll every ~2 seconds while the user completes the browser side-trip, or skip polling and let the user signal completion in your own UI.
An accidental direct-issue retry will not split your polling state:
while the current ticket has at least 15 minutes left and the task
scope is unchanged, the retry returns the SAME errandKey; a fresh
ticket is minted only near expiry or after a scope change.
Unknown, malformed, and expired keys are deliberately
indistinguishable: all report EXPIRED, so the endpoint cannot be
used to probe key validity. COMPLETED means every task finished —
retry the direct-issue request once to obtain tokens.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The errand.errandKey value from the 403 body.
Responses
Section titled “ Responses ”Current errand status.
object
Example
{ "status": "PENDING"}default
Section titled “default ”Error response.
Error response body. The Native service emits { "reason": "<SymbolDescription>" }
for known failure modes. When the reason symbol’s description begins with
PRIVATE, the body is empty (zero bytes) and only the HTTP status carries
signal — both reason and the body itself are absent in that case.
object
Stable machine-readable reason code.
Example generated
{ "reason": "example"}