# Monitor Page (/api-reference/endpoint/webhook-monitor-page)

<!-- agent-signals: reading_time_min: 3 · est_tokens: 1996 · updated: 2026-07-30 -->
Related: [Search](/api-reference/endpoint/search.md), [Search Feedback](/api-reference/endpoint/search-feedback.md), [Scrape](/api-reference/endpoint/scrape.md), [Batch Scrape](/api-reference/endpoint/batch-scrape.md), [Get Batch Scrape Status](/api-reference/endpoint/batch-scrape-get.md), [Cancel Batch Scrape](/api-reference/endpoint/batch-scrape-delete.md)



`POST` webhook `monitorPage`

Monitor Page

## OpenAPI

```json
{
  "parameters": [
    {
      "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..."
      }
    }
  ],
  "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": {
                "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": {
                    "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"
                            }
                          }
                        }
                      }
                    }
                  },
                  "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"
                      }
                    }
                  }
                }
              }
            },
            "error": {
              "type": "string",
              "description": "Error message when the monitored page failed."
            },
            "metadata": {
              "type": "object",
              "description": "The custom metadata object you provided in the webhook configuration. Echoed back in every delivery.",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        },
        "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\n+++ current\n@@ -1,3 +1,3 @@\n # Latest posts\n-Welcome to our weekly update.\n+Welcome to our weekly update — now with daily releases!\n"
              }
            }
          ],
          "metadata": {}
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Return any `2xx` status code to acknowledge receipt."
    }
  }
}
```
