Skip to main content

Bulk Import

The import endpoint allows you to add multiple URLs for monitoring in a single request. This is ideal for initial setup or bulk migrations.

Import Watches

endpoint
/api/v1/import
Import a list of URLs with optional shared configuration.

Request Body

The request body should be plain text with one URL per line:

Query Parameters

Special Parameters

string
Tag name to apply to all imported watches
string
Comma-separated tag UUIDs to apply to imported watches
string
Proxy configuration key to use for all imported watches
boolean
default:true
Skip URLs that already exist in the system

Configuration Parameters

You can pass any watch configuration field as a query parameter. All parameters from the Watch schema are supported:
string
Processor mode: text_json_diff or restock_diff
string
Fetcher: system, html_requests, html_webdriver, extra_browser_*
boolean
Import watches in paused state
string
Comma-separated notification URLs or JSON array format
string
JSON object with check interval: {"hours":1,"minutes":30}
string
Comma-separated CSS/XPath selectors or JSON array

Type Conversion

Query parameters are automatically converted to the correct type:

Examples

Response

Small imports (< 20 URLs): Returns 200 OK with array of created UUIDs
Large imports (≥ 20 URLs): Returns 202 Accepted for background processing
Imports with 20 or more URLs are processed in the background to avoid blocking the API. You’ll receive a 202 status immediately.

Advanced Import Scenarios

Import with JSON Configuration

For complex configurations, use JSON objects in query parameters:

Import from File

Import with Multiple Tags

Import Product Monitors

For e-commerce/product monitoring with the restock_diff processor:

Deduplication

By default, the import endpoint skips URLs that already exist (dedupe=true).

Disable Deduplication

Disabling deduplication allows importing the same URL multiple times, which can be useful for monitoring the same URL with different configurations.

Validation

All URLs are validated before import:
  • Must use http://, https://, or ftp:// protocol
  • Must be a valid URL format
  • Must not be empty or whitespace-only

Invalid URLs

Error Response:

Configuration Options

You can pass any of these watch configuration options as query parameters:
  • processor - Change detection processor
  • fetch_backend - Content fetcher
  • paused - Import in paused state
  • notification_muted - Mute notifications
  • method - HTTP method (GET, POST, etc.)
  • notification_urls - Notification endpoints
  • notification_title - Custom notification title
  • notification_body - Custom notification body
  • notification_format - Format (text, html, etc.)
  • notification_screenshot - Include screenshots
  • include_filters - CSS/XPath to extract
  • subtractive_selectors - CSS/XPath to remove
  • ignore_text - Text patterns to ignore
  • trigger_text - Required trigger patterns
  • text_should_not_be_present - Alert if found
  • time_between_check - Check interval
  • headers - Custom HTTP headers
  • body - HTTP request body
  • proxy - Proxy configuration
  • browser_steps - Browser automation steps
  • webdriver_delay - Browser wait time

Best Practices

Use Tags

Always assign imported watches to tags for easier management:

Start Paused

Import in paused state to review before activating:

Batch Size

For very large imports (100+ URLs), split into smaller batches to monitor progress.

Validate URLs

Clean and validate your URL list before import to avoid errors mid-import.

Import from CSV

If you have URLs in CSV format, extract the URL column first: