Terms · policy pages
Public terms, privacy, and policy page change rows
This Actor extracts and monitors website terms of service, privacy policies, and legal pages to detect added clauses or removed text via SHA256 diffs. Live input is a targets[] list.
Not an authenticated customer portal, CPQ, or invoice scraper. Not the row-priced SaaS Pricing Tracker (taroyamada/saas-change-monitor-actor). Public web only; aggressive bot walls may block fetches.
from $3.00 / 1,000 Premium SaaS change row ($0.003 per delivered dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.
Open Website Terms & Policy Scraper on Apify
Website Terms & Policy Scraper, not a neighboring Actor
Use this page for this Actor’s job. Use SaaS Pricing Tracker for Public SaaS page change rows; Use Docs & Changelog Drift Scraper for API docs/changelog drift; Use Website Content Extractor for One-shot page-to-markdown.
| This Actor | SaaS Pricing Tracker | Docs & Changelog Drift Scraper | Website Content Extractor | |
|---|---|---|---|---|
| Intent | Website Terms & Policy Scraper | Public SaaS page change rows | API docs/changelog drift | One-shot page-to-markdown |
| Primary input | targets | targets | doc URLs | urls |
| What it reads | Public legal/policy HTML | Public pricing/terms HTML | Public docs HTML | Page HTML |
| Primary output | Premium SaaS change rows | SaaS change rows | Drift rows | Markdown/text |
| Not this job | Not an authenticated customer portal, CPQ, or invoice scraper. Not the row-priced SaaS Pricing Tracker (taroyamada/saas-change-monitor-actor). Public web only; aggressive bot walls may block fetches. | Not premium SHA256 legal diffs or battlecards. | Not legal-page SHA256 diffs. | Not recurring pricing/legal diffs or RAG audits. |
Store ID: taroyamada/saas-change-monitor-actor-premium. Respect source terms, robots.txt, and rate limits.
Use cases
- Watch public legal/policy URLs for clause adds/removes
- datasetMode=changes_only on a stable snapshotKey
- Webhook when a watched page hash drifts
How is Website Terms & Policy Scraper different from SaaS Pricing Tracker and Docs & Changelog Drift Scraper?
Website Terms & Policy Scraper (taroyamada/saas-change-monitor-actor-premium): This Actor extracts and monitors website terms of service, privacy policies, and legal pages to detect added clauses or removed text via SHA256 diffs. Live input is a targets[] list. Not an authenticated customer portal, CPQ, or invoice scraper. Not the row-priced SaaS Pricing Tracker (taroyamada/saas-change-monitor-actor). Public web only; aggressive bot walls may block fetches. SaaS Pricing Tracker is for Public SaaS page change rows (input targets; Public pricing/terms HTML; SaaS change rows). Not premium SHA256 legal diffs or battlecards. Docs & Changelog Drift Scraper is for API docs/changelog drift (input doc URLs; Public docs HTML; Drift rows). Not legal-page SHA256 diffs. Website Content Extractor is for One-shot page-to-markdown (input urls; Page HTML; Markdown/text). Not recurring pricing/legal diffs or RAG audits.
What input is required?
Live required fields: targets. Published exampleRunInput is shown below.
| Field | Type | Default | Notes |
|---|---|---|---|
targets |
any[] | [{"id": "notion-pricing", "name": "Notion Pricing", "kind": "price", "url": "https://www.notion.so/pricing", "includePatterns": ["price", "free", "business", "enterprise"], "excludePatterns": ["cookie", "login"]}] |
Monitored Targets. List of targets. Each item supports id, name, kind, url, includePatterns, excludePatterns, maxChars, fixtureHtml, fixturePath. Required. |
requestTimeoutSeconds |
integer | 30 |
Request Timeout (seconds). HTTP request timeout per target. minimum=5 maximum=120 |
userAgent |
string | empty |
Custom User-Agent. Optional user-agent header for target requests. |
maxChars |
integer | 25000 |
Global Max Chars per Page. Upper bound for extracted text length. minimum=1000 maximum=200000 |
delivery |
string enum | dataset |
Delivery Mode. Where to send run results. enum: dataset, webhook, email |
datasetMode |
string enum | changes_only |
Dataset Mode. Choose whether dataset/webhook sends all targets or only event items. enum: changes_only, all |
webhookUrl |
string | empty |
Webhook URL. Required when delivery is webhook. |
notifyOnNoChange |
boolean | false |
Notify Even If No Change. When false, webhook mode skips if no event items. |
snapshotKey |
string | saas-change-monitor-snapshots |
Snapshot Key. Key used for snapshot persistence. |
nowIso |
string | empty |
Now (ISO, optional). Optional fixed timestamp for deterministic tests. |
dryRun |
boolean | false |
Dry Run. Skip delivery side effects and snapshot save. |
Published Store example run input (omitted fields take schema defaults):
{
"targets": [
{
"id": "notion-pricing",
"name": "Notion Pricing",
"kind": "price",
"url": "https://www.notion.so/pricing",
"includePatterns": [
"price",
"free",
"business",
"enterprise"
],
"excludePatterns": [
"cookie",
"login"
]
}
],
"requestTimeoutSeconds": 30,
"maxChars": 25000,
"delivery": "dataset",
"datasetMode": "changes_only",
"notifyOnNoChange": false,
"snapshotKey": "saas-change-monitor-snapshots",
"dryRun": false
}
Run Website Terms & Policy Scraper on Apify
How do dataset, webhook, and dry-run delivery work?
delivery defaults to dataset on the live schema. Dataset output is the billable surface when rows are written. webhookUrl is used when delivery is webhook (and typically not during dryRun). dryRun true validates or samples without the usual dataset/webhook side effects described on the Store schema. datasetMode can limit emits to changes_only / changed_only / action_needed versus all. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.
What does a result contain?
README output fence is truncated or invalid JSON on Store. Illustration head: { "status": "ok", "data": [] } Treat README samples as illustrations, not a live coverage guarantee. There is no published output JSON schema on the Store page.
How is Website Terms & Policy Scraper priced?
Billing is pay per event. The live Store card is from $3.00 / 1,000 Premium SaaS change row ($0.003 per delivered dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE. Current PPE:
| Event | Price | Emitted when |
|---|---|---|
dataset-item (Premium SaaS change row) |
$0.003 | Charged only when a source-linked premium SaaS change row is delivered. |
The published README Cost block is stale versus the live Store pricing tab. README Cost still quotes actor-start $0.01. Live Store has no actor-start event. This page quotes live PPE only.
from $3.00 / 1,000 Premium SaaS change row ($0.003 per delivered dataset-item). No Actor Start. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.
See Website Terms & Policy Scraper pricing on Apify
Limits to keep in mind
- Public HTML only
- targets required
- maxChars caps extracted text
- Not a PDF-contract parser
- Respect source terms, robots.txt, and rate limits.
Open Website Terms & Policy Scraper on Apify
Related pages
- SaaS Pricing Tracker — Not premium SHA256 legal diffs or battlecards.
- Docs & Changelog Drift Scraper — Not legal-page SHA256 diffs.
- Website Content Extractor — Not recurring pricing/legal diffs or RAG audits.
- Tools