Create a monitor
Watch URLs on a schedule. Its first run is at nextRunAt.
/crawl/v1/monitorscurl --request POST \
--url 'https://factget.dev/crawl/v1/monitors' \
--header "Authorization: Bearer $FACTGET_CRAWL_KEY" \
--header 'Content-Type: application/json' \
--data '{
"name": "Company announcements",
"urls": [
"https://example.com"
],
"schedule": {
"cron": "0 9 * * *",
"timezone": "UTC"
},
"watches": [
{
"mode": "page"
}
]
}'Replace IDs and sample values with your own. Examples are not executed in your browser.
Request body
namestringrequiredscheduleobjectrequired``cron`` read in ``timezone`` (IANA); runs land within ``windowMinutes`` of each nominal time (0 = exactly on time, a plan feature).
Show nested properties
cronstringrequiredCron schedule, interpreted in the supplied timezone. Example: 0 9 * * * for daily at 09:00.
minLength: 1maxLength: 120timezonestring"UTC"minLength: 1maxLength: 64windowMinutesinteger15originstring | nulldraftIdstring | nullacceptProposalsstring[] | nullurlsstring[] | nullThe public source URLs for this job.
minItems: 1maxItems: 1000watchesobject[]The page, elements, list items, or intent to watch.
minItems: 1maxItems: 20Show item properties
idstring | nullnamestring | nullmodestring"page", "element"selectorstring | nullselectorTypestring | null"css", "xpath"conditionsobject[]Show item properties
typestringrequiredDeterministic conditions, checked before any LLM.
Allowed:"change_score_at_least", "text_contains", "text_not_contains", "number_changed", "number_rises", "number_falls", "number_change_pct_at_least", "number_crosses", "element_missing", "element_appeared", "status_changed"valuenumber | nulltextstring | nullregexbooleanfalsematchstring"any"Allowed: "any", "all"intentstring | nullgranularitiesstring[]scrapeOptionsobjectHow each page is fetched: the scrape options that shape what a run sees.
Show nested properties
onlyMainContentbooleanReturn the main page content, excluding common navigation and page furniture.
Default:trueincludeTagsstring[] | nullInclude the matching HTML elements in the result.
maxItems: 50excludeTagsstring[] | nullExclude the matching HTML elements from the result.
maxItems: 50waitForintegerAdditional time to wait for the page, in milliseconds.
Default:0minimum: 0maximum: 30000jsCodestring | nullstepsobject[] | nullShow item properties
typestring"click"selectorstring | nullxpathstring | nulllabelstring | nullalertsobjectShow nested properties
emailbooleantruewebhookobject | nullShow nested properties
urlstringrequiredThe public URL to read.
headersobjectmetadataobjecteventsstring[]deliverystring"instant", "hourly", "daily"noiseobjectParts of a page that change by themselves: ``patterns`` (regexes) are masked in the markdown before hashing and diffing; ``selectors`` (CSS) are left out of the page when it is scraped.
Show nested properties
patternsstring[]selectorsstring[]Responses
200Successful Response
The published schema does not define individual response fields for this endpoint. Inspect the returned JSON in your integration.
422Validation Error
detailobject[]Show item properties
locstring | integer[]requiredmsgstringrequiredtypestringrequiredinputobjectctxobjectThe API schema lists the responses above. Long-running operations can also return 202; see async jobs. For application errors, see errors & retries.