Polling
CallGET /api/open/v1/jobs/{jobId} at a regular interval and inspect the job.status field in the response:
Job status reference
| Status | Terminal? | Description |
|---|---|---|
provisioning | No | Project runtime is starting up |
awaiting_uploads | No | Job created; waiting for file uploads |
uploading | No | Files are being received |
preflighting | No | Validating files and checking credits |
blocked_insufficient_credits | No | Processing paused; add credits to resume |
processing | No | Active processing underway |
completed | Yes | All files processed successfully |
completed_with_errors | Yes | Processing finished with non-fatal errors |
failed | Yes | Processing failed; check errors in the result |
cancelled | Yes | Job was cancelled by request |
expired | Yes | Job expired before processing completed |
Poll no faster than every 5 seconds. A recommended interval is every 10–30 seconds to stay well within rate limits.
Polling loop example
Webhooks
Register a webhook URL at job creation time to receive push notifications instead of polling:POST request to your URL whenever the job status changes. Use the webhookSigningSecret returned at job creation time to verify that each request originated from Plangrep before processing it.
Handling blocked jobs
If a job entersblocked_insufficient_credits, processing is paused until you add credits to your account. Once credits are available, resume the job:
preflighting and then processing after a successful resume.
Cancelling a job
To cancel a job that is still in progress, send a cancellation request:status set to "cancelled".
Cancellation may not be immediate if processing is already underway. Poll the job status to confirm the transition to
"cancelled".