General-purpose web-intelligence utilities via the Crawlora API — scrape any URL to clean markdown/HTML, extract schema-conforming JSON from a page, fingerprint a site's tech stack, geocode addresses, compare cost of living between cities/countries (Numbeo), look up a company's import/export trade records (ImportYeti), check a domain's traffic (SimilarWeb), or resolve a brand's identity from its domain. Use for one-off utility lookups that don't fit a specific platform skill.
Integrations
website-monitoring
Try itCreates and manages website-change monitors via the Crawlora API — watch a page for a content change or a sitemap for added/removed URLs, and get a signed webhook the moment something changes. No polling loop or diffing pipeline to run yourself. Use when the user wants to track a competitor's pricing page, watch for new pages on a site, get notified when content changes, or otherwise avoid re-checking a URL by hand.
What it does
Creates and manages website-change monitors via the Crawlora API — watch a page for a content change or a sitemap for added/removed URLs, and get a signed webhook the moment something changes. No polling loop or diffing pipeline to run yourself. Use when the user wants to track a competitor's pricing page, watch for new pages on a site, get notified when content changes, or otherwise avoid re-checking a URL by hand.
The skill document
Website change monitoring
Create, list, update, and delete monitors that watch a URL (exact content diff) or a sitemap (added/removed URL tracking) on a schedule, with signed webhook delivery on change — all as normalized JSON from the Crawlora API, with no polling loop or diffing logic of your own to write.
When to use this skill
- "Watch this page and tell me when it changes." / "Track this competitor's pricing page."
- "Alert me when new pages get added to this site" (sitemap mode).
- "List my active monitors." / "Pause/update/delete this monitor."
- "Show me this monitor's recent check history" — did it run, did it find a change, did the webhook deliver.
- Anything that would otherwise mean writing your own cron job + diffing + notification pipeline for "let me know when X changes."
Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
export CRAWLORA_API_KEY=sk_your_key_here- All requests:
x-api-key: $CRAWLORA_API_KEYagainsthttps://api.crawlora.net/api/v1. Missing/invalid key →401.
How it works
- Create —
POST /monitorswithurl,cadence_minutes(5 to 10080, i.e. 5 minutes to 7 days), and optionallytarget_type(page, the default — exact SHA-256 content-fingerprint diff — orsitemap, which tracks a sitemap's `` entries for additions and removals, with optionalsitemap.include_patterns/exclude_patternsglob filters andsitemap.max_urls). Addnotification.webhook_url(must behttpsand resolve to a public address) and an optionalnotification.webhook_secretto get a signed delivery on change.notification.eventsopts intochange.detected(default — fires only when a check finds a difference) and/orrun.completed(fires on every completed run, a heartbeat for a "last checked" UI). - List / get —
GET /monitorslists the caller's own monitors (newest first, capped at 100, free to call);GET /monitors/{id}fetches one. - Update —
PATCH /monitors/{id}partially updates a monitor (free to call). Changingtarget_typeorsitemapresets the stored diff baseline (fingerprint, snapshot, or URL set), so the next check starts fresh rather than comparing against the old target's state. - Delete —
DELETE /monitors/{id}removes a monitor. - Check history —
GET /monitors/{id}/checkslists the monitor's most recent check runs (newest first, capped at 50), including per-run webhook delivery status — use this to debug "why didn't I get notified." - Verify webhook deliveries — every delivery carries an
X-Crawlora-Signature: t=,v1=header, an HMAC-SHA256 digest of"{t}.{rawBody}"keyed by yourwebhook_secret. Recompute it and reject stale timestamps to guard against replay.
Full endpoint list, methods, and params: reference/endpoints.md.
Calling the API
# Create a page monitor with a webhook:
scripts/crawlora.sh -X POST /monitors '{
"url": "https://example.com/pricing",
"cadence_minutes": 60,
"name": "Pricing page",
"notification": {"webhook_url": "https://example.com/webhooks/crawlora"}
}' | jq '.'
# Create a sitemap monitor (new/removed pages):
scripts/crawlora.sh -X POST /monitors '{
"url": "https://example.com/sitemap.xml",
"target_type": "sitemap",
"cadence_minutes": 1440
}' | jq '.'
# List monitors:
scripts/crawlora.sh /monitors | jq '.'
# Check one monitor's recent runs:
scripts/crawlora.sh /monitors/mon_abc123/checks | jq '.'
# Pause a monitor:
scripts/crawlora.sh -X PATCH /monitors/mon_abc123 '{"enabled": false}' | jq '.'
Raw curl fallback:
curl -fsS -H "x-api-key: $CRAWLORA_API_KEY" -H "Content-Type: application/json" \
-X POST -d '{"url":"https://example.com/pricing","cadence_minutes":60}' \
"https://api.crawlora.net/api/v1/monitors" | jq '.'
Endpoint reference
See reference/endpoints.md for every Monitors
endpoint this skill uses (method, path, params, description).
Examples
- Competitor pricing watch:
POST /monitorson a competitor's pricing page withnotification.events: ["change.detected"], then poll/monitors/{id}/checks(or just wait for the webhook) to see when it actually changes. - New-page discovery:
target_type: "sitemap"on a site's sitemap URL to get notified when a new product/blog page goes live, without crawling the whole site yourself. - "Is my monitor actually working?" —
GET /monitors/{id}/checksshows whether recent runs completed, found a change, and whether the webhook delivered — the fastest way to debug a monitor that "should have fired."
Notes & limits
- Credits / pay-on-success: management calls (create, list, get, update, delete) are free; only checks are billed. Free tier 2,000 credits/mo. Key at https://crawlora.net.
- Security: key lives in
CRAWLORA_API_KEYonly — never hardcode, query-param, or commit it. Always verify the webhook signature before trusting a delivery's payload. - Public data only — a monitor watches a publicly-reachable URL; it can't authenticate into a page behind a login.
cadence_minutesrange is 5 to 10080 (5 minutes to 7 days) — pick the cadence that matches how often the target actually changes; a tighter cadence than needed just burns checks faster.- Every request scopes to the caller's own API key — there's no cross-account listing or lookup.
Related skills
Fetches structured public web data via the Crawlora REST API — search engines, e-commerce, social, finance, maps, app stores, media, and reviews — returning clean JSON instead of HTML. Use whenever the user needs real data from a public website (prices, listings, reviews, transcripts, SERPs, trends, financials, places) and would otherwise have to scrape or parse HTML.
竞品/站点变更监控技能。定期抓取目标页面,与历史快照 diff,发现价格/文案/上新/结构变化并告警。复用 web-fetch 抓取能力,内置快照比对脚本。适用于电商竞品监控、行业资讯追踪、合规变更巡查。
Continuously monitor topics across web search, RSS/Atom feeds, and GitHub releases, alerting only when relevant.
Continuously monitor Reddit for new posts and comments mentioning a topic, brand, or competitor, deduped across polls. Use when the user wants ongoing Reddit monitoring, brand or competitor tracking, or alerts on new mentions across subreddits.
Monitor and track unauthorized content republication across the web. Generates cease-and-desist letters, manages canonical tags, and maintains attribution records. Use when the user needs content protection, copyright enforcement, or citation management.