To set up PageCrawl.io in a Node.js app, create an API token in Settings > API > API Tokens, store it on your server, and send it as a bearer token in the Authorization header. The shortest documented path to start monitoring is POST https://pagecrawl.io/api/track-simple. You can then retrieve results by polling or receive events through webhooks.
Create and protect a PageCrawl API token
- In PageCrawl, open Settings > API > API Tokens and create a token.
- Copy it when it is displayed; the help article says it will not be shown again.
- Store it as a server-side environment variable or in a secret manager. Do not put it in browser JavaScript, a URL, source control, or logs.
- Send it in the request header as
Authorization: Bearer YOUR_API_TOKEN.
PageCrawl also says OAuth access tokens can be used. Its documentation mentions an api_token query parameter for quick browser tests, but identifies bearer headers as the supported form. See the API and webhooks guide and advanced integrations guide.
Create your first monitor with Node.js
The following example uses built-in fetch (available in Node.js 18 and later) and reads the token from the environment. PageCrawl’s quick-start route is POST /api/track-simple; a successful creation returns JSON containing the monitor name and ID. The example checks for any non-2xx response rather than assuming a particular status code.
const token = process.env.PAGECRAWL_API_TOKEN;
if (!token) throw new Error("Set PAGECRAWL_API_TOKEN before running this script");
const response = await fetch("https://pagecrawl.io/api/track-simple", {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://example.com/pricing",
tracking_mode: "fullpage",
}),
});
if (!response.ok) {
const details = await response.text();
throw new Error(`PageCrawl HTTP ${response.status}: ${details}`);
}
const page = await response.json();
console.log(`Monitoring: ${page.name} (${page.id})`);
Set the secret in your deployment platform’s environment configuration. For a local shell session, for example, use export PAGECRAWL_API_TOKEN='your-token' before starting Node. Avoid committing a real token in a .env file; add local secret files to your ignore rules.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11#1 Best Overall
Choose a tracking mode
Use the mode that matches what you need PageCrawl to detect. The guide describes these options, but says to confirm accepted values and request shapes in the current API reference, which is generated from its OpenAPI specification:
fullpage: all visible text; documented as the default.content_only: strips navigation, header, and footer content.reader: extracts reader-mode content.price: detects prices.specific_textandspecific_number: target a selector.feed: repeating listings.seo: title, meta, canonical, robots, and Open Graph data.
For a pricing page, the example uses fullpage because it tracks the page broadly. Select a narrower mode when changes outside the content you care about would create noise.
Choose polling, webhooks, or both
| Pattern | Use it when | Operational consideration |
|---|---|---|
| Polling | A dashboard or report can update periodically. | Keep request frequency and pagination within the account’s rate limit; honor Retry-After after HTTP 429. |
| Webhooks | Changes should trigger near-real-time automation. | Expose a receiver, verify the signature using the exact raw request body, and acknowledge promptly. |
| Hybrid | You need quick updates and recovery from missed events. | Use webhooks for fast delivery and a slower reconciliation poll to refresh stored state; polling adds requests. |
Polling results
PageCrawl’s Node.js example requests GET /api/pages?simple=1, follows the response’s links.next for pagination, and reads the latest captured data from latest.contents. For individual tracked elements, it maps values using stable element_id identifiers. Use the current API reference to confirm the response shape and pagination fields before building against them.
Rank #2
Polling is straightforward, but avoid fetching all pages on a tight interval. Estimate requests per refresh, including additional pages, and leave capacity for monitor creation and other API work.
Recommended Free Tools
Webhooks
Configure a webhook with your publicly reachable target URL and the event filters you need. A webhook receiver should validate authenticity, return a 2xx acknowledgment promptly, and hand longer work to a queue. PageCrawl says failed deliveries are retried with backoff; a 2xx response is treated as acknowledgment.
Verify PageCrawl webhook signatures in Node.js
PageCrawl’s Node.js example signs the timestamp, a period, and the exact raw request body with HMAC-SHA256. Verify X-PageCrawl-Signature and X-PageCrawl-Timestamp before trusting the parsed payload, and reject timestamps outside your allowed freshness window. Capture the raw bytes before JSON middleware parses the request: re-serializing a parsed object can change whitespace or key formatting and will not reliably match the signed bytes.
Rank #3
The exact secret configuration and webhook payload should follow PageCrawl’s current webhook documentation. In an Express app, arrange raw-body capture for the webhook route before generic JSON parsing, then use Node’s crypto module and crypto.timingSafeEqual to compare equal-length signature buffers. Do not compare HMAC values with ordinary string equality. See the implementation guidance in the advanced integrations guide and API and webhooks guide.
Rate limits, errors, and plan capacity
PageCrawl lists rate limits of 60 requests per minute for Free accounts and 300 requests per minute for paid accounts in its 2026 documentation. These are product limits, not performance benchmarks. On HTTP 429, wait for the duration specified by the Retry-After response header before retrying; use bounded retries rather than repeatedly sending requests immediately.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteThe developer guide says validation failures return HTTP 422 with field-level details, and a new monitor returns HTTP 201. Examples may differ, so treat the current API reference as authoritative if an endpoint’s observed response conflicts with an example. Log status codes and safe diagnostic details, but redact authorization values and other secrets.
Rank #4
The published Free plan lists up to 6 pages, 220 checks, and a 60-minute check frequency. PageCrawl says checks pause when plan limits are exceeded. API and webhook access are available on every plan, including Free; successful API setup does not guarantee continued checks after capacity is reached. Limits, frequency, and pricing can change, so confirm the live pricing page when planning a deployment.
The cited official materials do not establish India-specific GST or INR billing, nor whether every Indian-issued card is accepted. Check PageCrawl’s checkout and current billing terms for your account rather than assuming a particular tax treatment or payment outcome.
Common setup problems and fixes
- 401 or 403 response: Confirm the token is present, has not been revoked, and is sent as
Authorization: Bearer …. Check for accidental whitespace and make sure your deployed environment has the secret configured. - 422 response: Read the response’s field-level validation details. Check the URL, mode spelling, and request shape against the current API reference.
- 429 response: Honor
Retry-After, reduce polling frequency, and account for all pages traversed through pagination. - No updates appear in a polling client: Follow
links.nextuntil exhausted and inspectlatest.contents; use stableelement_idvalues when mapping tracked elements. - Webhook signature fails: Verify that raw request bytes were captured before JSON parsing, that the timestamp and separator are included as documented, and that both signatures use the same encoding and length before a timing-safe comparison.
- Webhook work is duplicated or delayed: Respond with 2xx only after signature validation, acknowledge quickly, and make downstream processing safe to retry because delivery failures may be retried with backoff.
- Monitoring stops despite successful API calls: Check page/check capacity and plan limits; PageCrawl says checks pause when those limits are exceeded.
Or skip the browser setup
If the task is capturing a website image or PDF rather than monitoring changes over time, ScreenshotNeo is a separate website screenshot API and MCP server for developers. A single GET returns a screenshot or PDF, for example:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for options. It accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; those cleanup steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.
Frequently Asked Questions
Can I use PageCrawl’s API on the Free plan?
Yes. PageCrawl says its REST API and webhooks are available on every plan, including Free.
Does this setup require an npm HTTP client?
No. The monitor-creation example uses Node.js built-in fetch.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




