Skip to main content
A job is the core unit of work in CatchAll. You submit a query, CatchAll processes it asynchronously, and you retrieve structured JSON records when the job completes.

Jobs lifecycle

Job lifecycle diagram showing three flows: Basic (initialize optional → submit → get status → pull results), Continue (continue → get status → pull results, extends a job submitted with limit), and Audit (list user jobs, returns all jobs for your API key).

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.
curl -X POST "https://catchall.newscatcherapi.com/catchAll/initialize" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Series B funding rounds for SaaS startups",
    "context": "Focus on funding amount and company name"
  }'

Create job

POST /catchAll/submit creates the job and starts processing. Only query is required — all other parameters are optional.
curl -X POST "https://catchall.newscatcherapi.com/catchAll/submit" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Series B funding rounds for SaaS startups",
    "context": "Focus on funding amount and company name",
    "start_date": "2026-02-18T00:00:00Z",
    "end_date": "2026-02-23T00:00:00Z",
    "limit": 10
  }'
Use limit: 10 for quick testing. If the results look good, use Continue job to process more records without restarting.

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:
StageDescription
submittedJob queued, waiting to start
analyzingGenerating search queries, validators, and enrichments
fetchingRetrieving web pages
clusteringGrouping related web pages into event clusters
enrichingValidating clusters and extracting structured data
completedProcessing finished, results ready
failedProcessing failed
curl "https://catchall.newscatcherapi.com/catchAll/status/5f0c9087-85cb-4917-b3c7-e5a5eff73a0c" \
  -H "x-api-key: YOUR_API_KEY"
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.
curl "https://catchall.newscatcherapi.com/catchAll/pull/5f0c9087-85cb-4917-b3c7-e5a5eff73a0c" \
  -H "x-api-key: YOUR_API_KEY"

Continue job

To process more records after reviewing the initial results of a job submitted with a limit, 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.
curl -X POST "https://catchall.newscatcherapi.com/catchAll/continue" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "job_id": "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c",
    "new_limit": 100
  }'
new_limit must be greater than the limit set in the original job.

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.
curl "https://catchall.newscatcherapi.com/catchAll/jobs/user" \
  -H "x-api-key: YOUR_API_KEY"

See also