Supacrawler Docs

Watch

Monitor websites for changes and get notified when content updates are detected. Create watch jobs that automatically check for updates on your schedule.

Use cases

Perfect for competitor pricing monitoring, stock market news, and real estate monitoring.

Set up webhook notifications to integrate Watch with your existing alerting systems or trigger automated workflows when changes are detected.

Quick Example

curl -X POST https://api.supacrawler.com/api/v1/watch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing",
    "frequency": "daily",
    "notify_email": "[email protected]"
  }'
import requests

response = requests.post(
    "https://api.supacrawler.com/api/v1/watch",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "url": "https://example.com/pricing",
        "frequency": "daily",
        "notify_email": "[email protected]"
    }
)
print(f"Watch ID: {response.json()['watch_id']}")
const response = await fetch('https://api.supacrawler.com/api/v1/watch', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://example.com/pricing',
    frequency: 'daily',
    notify_email: '[email protected]'
  })
});

const result = await response.json();
console.log(`Watch ID: ${result.watch_id}`);
Watch Created
{
  "success": true,
  "watch_id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Watch job created successfully"
}

Create Watch Job

Endpoint

POST /v1/watch

Create a monitoring job for a specific URL. You'll be notified via email when content changes.

Parameters

Prop

Type

Request

curl -X POST https://api.supacrawler.com/api/v1/watch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://competitor.com/pricing",
    "frequency": "daily",
    "notify_email": "[email protected]",
    "notification_preference": "changes_only"
  }'
import requests

response = requests.post(
    "https://api.supacrawler.com/api/v1/watch",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "url": "https://competitor.com/pricing",
        "frequency": "daily",
        "notify_email": "[email protected]",
        "notification_preference": "changes_only"
    }
)
print(response.json())
const response = await fetch(
  'https://api.supacrawler.com/api/v1/watch',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url: 'https://competitor.com/pricing',
      frequency: 'daily',
      notify_email: '[email protected]',
      notification_preference: 'changes_only'
    })
  }
);

const result = await response.json();
console.log(result);

Response

{
  "success": true,
  "watch_id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Watch job created successfully"
}

Get Watch Status

Endpoint

GET /v1/watch/{watchId}

Get the status and history of a watch job.

Parameters

Prop

Type

Request

curl "https://api.supacrawler.com/api/v1/watch/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer YOUR_API_KEY"
import requests

watch_id = "550e8400-e29b-41d4-a716-446655440000"
response = requests.get(
    f"https://api.supacrawler.com/api/v1/watch/{watch_id}",
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)
print(response.json())
const watchId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(
  `https://api.supacrawler.com/api/v1/watch/${watchId}`,
  { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);

const result = await response.json();
console.log(result);

Response

{
  "success": true,
  "watch_id": "550e8400-e29b-41d4-a716-446655440000",
  "url": "https://example.com/pricing",
  "frequency": "daily",
  "active": true,
  "last_check": "2025-01-15T10:30:00Z",
  "changes_detected": 2
}

Response Model

Prop

Type

Was this page helpful?