Developers /Monitoring API

Create a monitor

Watch URLs on a schedule. Its first run is at nextRunAt.

POST/crawl/v1/monitors
POST example
curl --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.

Authorization

Authorizationstring · header · required

Bearer Crawl API key with the required scope. Learn about authentication →

Request body

application/json
namestringrequired
minLength: 1maxLength: 120
scheduleobjectrequired

``cron`` read in ``timezone`` (IANA); runs land within ``windowMinutes`` of each nominal time (0 = exactly on time, a plan feature).

Show nested properties
cronstringrequired

Cron schedule, interpreted in the supplied timezone. Example: 0 9 * * * for daily at 09:00.

minLength: 1maxLength: 120
timezonestring
Default: "UTC"minLength: 1maxLength: 64
windowMinutesinteger
Default: 15
originstring | null
maxLength: 200
draftIdstring | null
acceptProposalsstring[] | null
minItems: 1maxItems: 5
urlsstring[] | null

The public source URLs for this job.

minItems: 1maxItems: 1000
watchesobject[]

The page, elements, list items, or intent to watch.

minItems: 1maxItems: 20
Show item properties
idstring | null
namestring | null
minLength: 1maxLength: 80
modestring
Allowed: "page", "element"
selectorstring | null
minLength: 1maxLength: 2000
selectorTypestring | null
Allowed: "css", "xpath"
conditionsobject[]
maxItems: 10
Show item properties
typestringrequired

Deterministic 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 | null
textstring | null
minLength: 1maxLength: 500
regexboolean
Default: false
matchstring
Default: "any"Allowed: "any", "all"
intentstring | null
minLength: 1maxLength: 1000
granularitiesstring[]
minItems: 1
scrapeOptionsobject

How each page is fetched: the scrape options that shape what a run sees.

Show nested properties
onlyMainContentboolean

Return the main page content, excluding common navigation and page furniture.

Default: true
includeTagsstring[] | null

Include the matching HTML elements in the result.

maxItems: 50
excludeTagsstring[] | null

Exclude the matching HTML elements from the result.

maxItems: 50
waitForinteger

Additional time to wait for the page, in milliseconds.

Default: 0minimum: 0maximum: 30000
jsCodestring | null
maxLength: 10000
stepsobject[] | null
maxItems: 10
Show item properties
typestring
Default: "click"
selectorstring | null
minLength: 1maxLength: 2000
xpathstring | null
minLength: 1maxLength: 2000
labelstring | null
maxLength: 200
alertsobject
Show nested properties
emailboolean
Default: true
webhookobject | null
Show nested properties
urlstringrequired

The public URL to read.

headersobject
metadataobject
eventsstring[]
minItems: 1
deliverystring
Allowed: "instant", "hourly", "daily"
noiseobject

Parts 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[]
maxItems: 20
selectorsstring[]
maxItems: 50

Responses

200Successful Response
application/json

The published schema does not define individual response fields for this endpoint. Inspect the returned JSON in your integration.

422Validation Error
application/json
detailobject[]
Show item properties
locstring | integer[]required
msgstringrequired
typestringrequired
inputobject
ctxobject

The API schema lists the responses above. Long-running operations can also return 202; see async jobs. For application errors, see errors & retries.