cURL
# Basic import
curl -X POST "https://api.sitespy.app/api/v1/import" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: text/plain" \
-d $'https://example.com\nhttps://example.org\nhttps://example.net'
# Import with processor and fetch backend
curl -X POST "https://api.sitespy.app/api/v1/import?processor=restock_diff&fetch_backend=html_webdriver" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: text/plain" \
-d $'https://example.com\nhttps://example.org'
# Import with multiple settings
curl -X POST "https://api.sitespy.app/api/v1/import?processor=restock_diff&paused=true&tag=production" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: text/plain" \
-d $'https://example.com'import requests
headers = {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'text/plain'
}
# Basic import
urls = 'https://example.com\nhttps://example.org\nhttps://example.net'
response = requests.post('https://api.sitespy.app/api/v1/import',
headers=headers, data=urls)
print(response.json())
# Import with configuration
params = {
'processor': 'restock_diff',
'fetch_backend': 'html_webdriver',
'paused': 'false',
'tag': 'production'
}
response = requests.post('https://api.sitespy.app/api/v1/import',
headers=headers, params=params, data=urls)
print(response.json())
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'text/plain'},
body: 'https://example.com\nhttps://example.org\nhttps://example.net\n'
};
fetch('https://api.sitespy.app/api/v1/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));[
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]Import
Import watch URLs with configuration
Import a list of URLs to monitor with optional watch configuration. Accepts line-separated URLs in request body.
Configuration via Query Parameters:
You can pass ANY watch configuration field as query parameters to apply settings to all imported watches. All parameters from the Watch schema are supported (processor, fetch_backend, notification_urls, etc.).
Special Parameters:
tag/tag_uuids- Assign tags to imported watchesproxy- Use specific proxy for imported watchesdedupe- Skip duplicate URLs (default: true)
Type Conversion:
- Booleans:
true,false,1,0,yes,no - Arrays: Comma-separated or JSON format (
[item1,item2]) - Objects: JSON format (
{"key":"value"}) - Numbers: Parsed as int or float
POST
/
import
cURL
# Basic import
curl -X POST "https://api.sitespy.app/api/v1/import" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: text/plain" \
-d $'https://example.com\nhttps://example.org\nhttps://example.net'
# Import with processor and fetch backend
curl -X POST "https://api.sitespy.app/api/v1/import?processor=restock_diff&fetch_backend=html_webdriver" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: text/plain" \
-d $'https://example.com\nhttps://example.org'
# Import with multiple settings
curl -X POST "https://api.sitespy.app/api/v1/import?processor=restock_diff&paused=true&tag=production" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: text/plain" \
-d $'https://example.com'import requests
headers = {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'text/plain'
}
# Basic import
urls = 'https://example.com\nhttps://example.org\nhttps://example.net'
response = requests.post('https://api.sitespy.app/api/v1/import',
headers=headers, data=urls)
print(response.json())
# Import with configuration
params = {
'processor': 'restock_diff',
'fetch_backend': 'html_webdriver',
'paused': 'false',
'tag': 'production'
}
response = requests.post('https://api.sitespy.app/api/v1/import',
headers=headers, params=params, data=urls)
print(response.json())
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'text/plain'},
body: 'https://example.com\nhttps://example.org\nhttps://example.net\n'
};
fetch('https://api.sitespy.app/api/v1/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));[
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]Authorizations
API key for authentication. You can find your API key in the Site Spy dashboard under Settings → API.
Query Parameters
Tag UUID(s) to apply to imported watches (comma-separated for multiple)
Tag name to apply to imported watches
Proxy key to use for imported watches
Skip duplicate URLs (default true)
Body
text/plain
The body is of type string.
Response
URLs imported successfully

