# Monitor Page

`webhook monitorPage`

## OpenAPI

````yaml api-reference/webhooks-openapi.json webhook monitorPage
openapi: 3.1.0
info:
  title: Firecrawl Webhooks
  version: v2
webhooks:
  monitorPage:
    post:
      summary: Monitor Page
      operationId: monitorPage
      tags:
        - Monitor
      parameters:
        - $ref: "#/components/parameters/FirecrawlSignature"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - success
                - type
                - id
                - webhookId
                - data
              properties:
                success:
                  type: boolean
                  description: "`true` when the page scrape completed without an error."
                type:
                  type: string
                  description: The event type.
                  const: monitor.page
                id:
                  type: string
                  format: uuid
                  description: The monitor check ID.
                webhookId:
                  type: string
                  format: uuid
                  description: Unique identifier for this webhook delivery.
                data:
                  type: array
                  items:
                    $ref: "#/components/schemas/MonitorPageData"
                error:
                  type: string
                  description: Error message when the monitored page failed.
                metadata:
                  $ref: "#/components/schemas/WebhookMetadata"
            example:
              success: true
              type: monitor.page
              id: 019df960-5f2a-75fb-a98b-bd2d32ca67d4
              webhookId: f1e2d3c4-0000-0000-0000-000000000000
              data:
                - monitorId: 019df960-06e7-7383-9d89-82c0113dc31a
                  checkId: 019df960-5f2a-75fb-a98b-bd2d32ca67d4
                  url: https://example.com/blog
                  status: changed
                  previousScrapeId: 019df94f-82c3-7e41-81f0-00c72b2d9c52
                  currentScrapeId: 019df960-73ee-7ac2-97a9-fb0e442c21f1
                  error: null
                  isMeaningful: true
                  judgment:
                    meaningful: true
                    confidence: high
                    reason: The page headline changed to announce a new release cadence.
                    meaningfulChanges:
                      - type: changed
                        before: Welcome to our weekly update.
                        after: Welcome to our weekly update — now with daily releases!
                        reason: The headline changed in a way that matches the monitor goal.
                  diff:
                    text: |
                      --- previous
                      +++ current
                      @@ -1,3 +1,3 @@
                       # Latest posts
                      -Welcome to our weekly update.
                      +Welcome to our weekly update — now with daily releases!
              metadata: {}
      responses:
        "200":
          description: Return any `2xx` status code to acknowledge receipt.
components:
  parameters:
    FirecrawlSignature:
      name: X-Firecrawl-Signature
      in: header
      required: false
      description: HMAC-SHA256 signature of the raw request body, formatted as
        `sha256=<hex>`. Present when an HMAC secret is configured in your
        [account settings](https://www.firecrawl.dev/app/settings?tab=advanced).
        See [Webhook Security](/webhooks/security) for verification details.
      schema:
        type: string
        example: sha256=abc123def456789...
  schemas:
    WebhookMetadata:
      type: object
      description: The custom metadata object you provided in the webhook
        configuration. Echoed back in every delivery.
      additionalProperties:
        type: string
    MonitorPageData:
      type: object
      required:
        - monitorId
        - checkId
        - url
        - status
      properties:
        monitorId:
          type: string
          format: uuid
          description: The monitor ID.
        checkId:
          type: string
          format: uuid
          description: The monitor check ID.
        url:
          type: string
          format: uri
          description: The page URL.
        status:
          type: string
          enum:
            - same
            - new
            - changed
            - error
          description: Page-level status for this scrape completion.
        previousScrapeId:
          type: string
          format: uuid
          nullable: true
        currentScrapeId:
          type: string
          format: uuid
          nullable: true
        error:
          type: string
          nullable: true
        isMeaningful:
          type: boolean
          nullable: true
          description: "`true` or `false` when meaningful-change judging ran on a changed
            page; otherwise `null`."
        judgment:
          $ref: "#/components/schemas/MonitorPageJudgment"
        diff:
          type: object
          nullable: true
          description: Inline diff for changed pages. May include `text`, `json`, or both
            depending on monitor change-tracking mode.
          properties:
            text:
              type: string
            json:
              type: object
    MonitorPageJudgment:
      type: object
      nullable: true
      properties:
        meaningful:
          type: boolean
        confidence:
          type: string
          enum:
            - high
            - medium
            - low
        reason:
          type: string
        meaningfulChanges:
          type: array
          description: Goal-relevant changes selected by the judge from the page diff.
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - added
                  - removed
                  - changed
              before:
                type: string
                nullable: true
              after:
                type: string
                nullable: true
              reason:
                type: string
````
