> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spidra.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a Monitor Check

> One check of a monitor with everything that changed: new, changed and removed items, and page text changes.

Returns one check with its changes, per source. Get check IDs from [List Monitor Checks](https://docs.spidra.io/api-reference/monitors/list-checks.md).

```bash theme={null}
curl "https://api.spidra.io/api/monitors/d6761e12-b011-4633-a593-fa6be2ef466c/checks/45da0eb4-7969-4beb-861d-107ce34178e1" \
  -H "Authorization: Bearer $SPIDRA_API_KEY"
```

A check of a page whose text changed (`alertOn: "page"`):

```json theme={null}
{
  "status": "success",
  "check": {
    "id": "45da0eb4-7969-4beb-861d-107ce34178e1",
    "trigger": "manual",
    "status": "completed",
    "startedAt": "2026-10-24T18:51:26.000Z",
    "finishedAt": "2026-10-24T18:51:33.000Z",
    "creditsUsed": 1,
    "hasChanges": true,
    "summary": "1 page changed",
    "notified": false,
    "judgment": null,
    "error": null,
    "sources": [
      {
        "sourceId": "ae22524a61ad",
        "label": "httpbin.org",
        "baseline": false,
        "added": [],
        "removed": [],
        "changed": [],
        "pages": [
          {
            "url": "https://httpbin.org/uuid",
            "added": ["\"uuid\": \"1d984f94-ab9f-4ceb-b87b-c8eb49296cc6\""],
            "removed": ["\"uuid\": \"2cd9cc3c-4f93-4da9-bf79-7dd362324291\""]
          }
        ],
        "rowCount": 1
      }
    ]
  }
}
```

`notified` is `false` here because the monitor had no alert channel switched on.

## Reading the changes

Each source in `sources` has:

* `added`: new items (rows whose key wasn't there last time), each with all its fields.
* `removed`: items that are gone.
* `changed`: items whose fields changed, as `{ "key": "...", "item": { ... }, "fields": [{ "field": "price", "previous": 30, "current": 25 }] }`.
* `pages`: for page watching, the lines added to and removed from each page's text.
* `rows`: with `alertOn: "every"`, the rows of this run (up to 200).
* `baseline: true` on a source's first check, which only records the starting point.
* `error`: why a source couldn't be read this time.

`judgment` is set when the monitor has a `goal`: `{ "meaningful": true, "reason": "..." }`. When `meaningful` is `false`, no alert went out.


## OpenAPI

````yaml GET /monitors/{monitorId}/checks/{checkId}
openapi: 3.1.0
info:
  title: Spidra API
  version: 1.0.0
  description: >-
    Public API endpoints for web scraping via Spidra. Authenticate with
    `Authorization: Bearer YOUR_API_KEY`.
servers:
  - url: https://api.spidra.io/api
security:
  - BearerAuth: []
  - ApiKeyAuth: []
paths:
  /monitors/{monitorId}/checks/{checkId}:
    get:
      tags:
        - Monitors
      summary: Get a Monitor Check
      description: One check with everything that changed, per source.
      parameters:
        - name: monitorId
          in: path
          required: true
          schema:
            type: string
          description: The monitor's ID.
        - name: checkId
          in: path
          required: true
          schema:
            type: string
          description: The check's ID.
      responses:
        '200':
          description: The check.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  check:
                    allOf:
                      - $ref: '#/components/schemas/MonitorCheck'
                      - type: object
                        properties:
                          sources:
                            type: array
                            items:
                              $ref: '#/components/schemas/MonitorSourceChanges'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No check with this ID on this monitor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    MonitorCheck:
      type: object
      properties:
        id:
          type: string
        trigger:
          type: string
          enum:
            - schedule
            - manual
        status:
          type: string
          enum:
            - running
            - completed
            - partial
            - failed
            - skipped
          description: '`skipped`: out of credits, or the previous check was still running.'
        startedAt:
          type:
            - string
            - 'null'
          format: date-time
        finishedAt:
          type:
            - string
            - 'null'
          format: date-time
        creditsUsed:
          type:
            - number
            - 'null'
        hasChanges:
          type: boolean
        summary:
          type:
            - string
            - 'null'
        notified:
          type: boolean
          description: Whether an alert went out.
        judgment:
          type:
            - object
            - 'null'
          properties:
            meaningful:
              type: boolean
            reason:
              type: string
          description: 'With a `goal`: whether the changes matched it, and why.'
        error:
          type:
            - string
            - 'null'
    MonitorSourceChanges:
      type: object
      properties:
        sourceId:
          type: string
        label:
          type: string
        baseline:
          type: boolean
          description: >-
            true on a source's first check, which only records the starting
            point.
        added:
          type: array
          items:
            type: object
            additionalProperties: true
          description: New items.
        removed:
          type: array
          items:
            type: object
            additionalProperties: true
          description: Items no longer there.
        changed:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              item:
                type: object
                additionalProperties: true
              fields:
                type: array
                items:
                  type: object
                  properties:
                    field:
                      type: string
                    previous: {}
                    current: {}
        pages:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              added:
                type: array
                items:
                  type: string
              removed:
                type: array
                items:
                  type: string
          description: Lines added to and removed from each page's text.
        rows:
          type: array
          items:
            type: object
            additionalProperties: true
          description: 'alertOn every: the run''s rows (up to 200).'
        rowCount:
          type: integer
        error:
          type: string
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          enum:
            - error
        message:
          type: string
      required:
        - status
        - message
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.