# Crawl Page

> Webhook event sent for each page scraped during a crawl job.

`webhook crawlPage`

For payload examples, configuration, and retry behavior, see [Webhook Event Types](/webhooks/events#crawlpage) and [Webhook Overview](/webhooks/overview).

## OpenAPI

````yaml api-reference/webhooks-openapi.json webhook crawlPage
openapi: 3.1.0
info:
  title: Firecrawl Webhooks
  version: v2
webhooks:
  crawlPage:
    post:
      summary: Crawl Page
      operationId: crawlPage
      tags:
        - Crawl
      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` if the page was scraped successfully, `false` otherwise."
                type:
                  type: string
                  description: The event type.
                  const: crawl.page
                id:
                  type: string
                  format: uuid
                  description: The crawl job ID.
                webhookId:
                  type: string
                  format: uuid
                  description: Unique identifier for this webhook delivery.
                data:
                  type: array
                  description: Array containing the scraped page document. Same shape as the
                    `data` field in the `GET /scrape` response.
                  items:
                    $ref: "#/components/schemas/ScrapeDocument"
                error:
                  type: string
                  description: Error message if the page failed to scrape.
                metadata:
                  $ref: "#/components/schemas/WebhookMetadata"
            example:
              success: true
              type: crawl.page
              id: 550e8400-e29b-41d4-a716-446655440000
              webhookId: a1b2c3d4-0002-0000-0000-000000000000
              data:
                - markdown: |-
                    # Example Page

                    This is the page content.
                  metadata:
                    title: Example Page
                    description: An example page.
                    sourceURL: https://example.com/page
                    statusCode: 200
              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
    ScrapeDocument:
      type: object
      description: A scraped page document. Same shape as the `data` object in scrape
        responses.
      properties:
        markdown:
          type: string
          description: The page content converted to Markdown.
        html:
          type: string
          description: Cleaned HTML content of the page.
        rawHtml:
          type: string
          description: Original HTML before any processing.
        links:
          type: array
          items:
            type: string
          description: Outbound links discovered on the page.
        screenshot:
          type: string
          description: Base64-encoded screenshot, if the `screenshot` format was requested.
        metadata:
          type: object
          description: Page metadata.
          properties:
            title:
              type: string
              description: The page `<title>`.
            description:
              type: string
              description: The meta description.
            sourceURL:
              type: string
              description: The URL that was scraped.
            statusCode:
              type: integer
              description: HTTP status code of the response.
````
