Jobs lifecycle

Initialize job
POST /catchAll/initialize
analyzes your query and returns LLM-generated suggestions for validators,
enrichments, and a date range. It does not create a job or start processing.
This endpoint is a preview — it shows you one example of what validators and
enrichments could look like for your query. Because the suggestions are
LLM-generated, they are not deterministic. If you call initialize and then
submit a job without passing any validators or enrichments, the system generates
them again from scratch and the results will differ from the initialize
response.
To use the initialize suggestions in your job, pass them explicitly in your
submit request. You can use them as-is, modify them, or write your own.
Create job
POST /catchAll/submit creates
the job and starts processing. Only query is required — all other parameters
are optional.
Get job status
GET /catchAll/status/{job_id}
returns the current processing stage. Poll every 30-60 seconds until status is
completed. Jobs typically take 10-15 minutes.
Jobs progress through these stages in order:
| Stage | Description |
|---|---|
submitted | Job queued, waiting to start |
analyzing | Generating search queries, validators, and enrichments |
fetching | Retrieving web pages |
clustering | Grouping related web pages into event clusters |
enriching | Validating clusters and extracting structured data |
completed | Processing finished, results ready |
failed | Processing failed |
You can pull partial results once the job reaches the
enriching stage
without waiting for completion. See Get job results below.Get job results
GET /catchAll/pull/{job_id}
retrieves structured records. During the enriching stage, progress_validated
tracks how many candidate clusters have been processed so far.
Continue job
To process more records after reviewing the initial results of a job submitted with alimit, use
POST /catchAll/continue. It
extends the limit without restarting the job — all analysis, validation, and
enrichment logic from the original job is preserved.
If you submit without a limit, the job processes all available data for the
scope and there is nothing to continue.
List user jobs
GET /catchAll/jobs/user
returns all jobs created with your API key, sorted by creation date, most recent
first. Supports pagination via page and page_size parameters.

