Skip to main content

Job Endpoints

Execute scrapes and retrieve results via HTTP.

Create job

Create a new scrape job using a strategy.

Request body

Response (single URL)

Response (batch URLs)

When using urls, the response includes a batch_id for tracking:

Example

Execute job (synchronous)

Create a job and wait for completion. Returns results directly without polling.

Request body

Response

This endpoint blocks until the job completes (up to 1 hour timeout). Use the async POST /api/jobs endpoint for long-running scrapes or when you don’t need immediate results.

Example

Error handling

If the job fails, the response will include the error:

Get job

Get job status and results.

Response

Status values: pending, running, completed, failed

Example

List jobs

List jobs with optional filtering.

Query parameters

Response

Array of job objects (same format as Get job).

Example

Compare jobs

Compare two jobs to detect changes.

Request body

Response

Example

Compare manifest

Compare a manifest of known items against a job’s scrape results using fuzzy matching. Identifies items that were added, removed, or still present.

Request body

Response

Example

Use POST /api/strategies/{strategy_id}/compare-manifest instead if you want to automatically compare against the latest results without specifying a job ID. See Strategy Endpoints.

Get strategy history

Get timeline of all jobs for a strategy.

Response

Example

Polling for completion

Use POST /api/jobs/execute instead if you want synchronous behavior without polling.
Since jobs created with POST /api/jobs run asynchronously, poll the Get job endpoint until status is completed or failed:

Error responses

See REST API Errors for detailed error handling.

Next steps

Schedule Endpoints

Automate job execution

Python SDK

Use the Python SDK with built-in polling

Jobs Concept

Learn about job lifecycle

Need help?

Email me at mckinnon@meter.sh