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

# Web Monitors {Monitor Id}

> API-key-scoped scheduled public-page or site-search checks. Configuration calls cost 0 credits; each successful scheduled scrape costs 2 credits and each search costs 3. Failed or interrupted checks are refunded. Uses elapsed UTC cadence (15–10080 minutes); first check is due after one minute and may queue. Ten undeleted monitors per account. Read snapshots through /checks; webhook delivery, AI judging, natural-language schedules and cron expressions are not supported and return 422. Revoking or expiring the creating key stops new checks. Already running checks may finish after pause or deletion.

API-key-scoped scheduled public-page or site-search checks. Configuration calls cost 0 credits; each successful scheduled scrape costs 2 credits and each search costs 3. Failed or interrupted checks are refunded. Uses elapsed UTC cadence (15–10080 minutes); first check is due after one minute and may queue. Ten undeleted monitors per account. Read snapshots through /checks; webhook delivery, AI judging, natural-language schedules and cron expressions are not supported and return 422. Revoking or expiring the creating key stops new checks. Already running checks may finish after pause or deletion.

Snapshot history is retained for 1–30 days (default 7). Scrape snapshots retain at most 200,000 characters and compare a hash of the full source text. Search snapshots contain at most five results. `changed` is null on the first successful check and on failures; later successful checks compare with the last successful snapshot. Three consecutive source failures pause the monitor. Insufficient credits also pause it. Resume with PATCH after correcting the cause.

Monitors belong to the creating API key. Other keys, including those for the same user, cannot read or change them. DELETE stops future checks and preserves history until retention expiry. List pagination uses a key-bound cursor; changes during pagination can shift results. Check history returns the latest requested number of checks (up to 100).


## OpenAPI

````yaml PATCH /web/monitors/{monitor_id}
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /web/monitors/{monitor_id}:
    patch:
      tags:
        - Web
      summary: Web Monitors {Monitor Id}
      description: >-
        API-key-scoped scheduled public-page or site-search checks.
        Configuration calls cost 0 credits; each successful scheduled scrape
        costs 2 credits and each search costs 3. Failed or interrupted checks
        are refunded. Uses elapsed UTC cadence (15–10080 minutes); first check
        is due after one minute and may queue. Ten undeleted monitors per
        account. Read snapshots through /checks; webhook delivery, AI judging,
        natural-language schedules and cron expressions are not supported and
        return 422. Revoking or expiring the creating key stops new checks.
        Already running checks may finish after pause or deletion.
      operationId: patch_web_monitors_monitor_id
      parameters:
        - name: monitor_id
          in: path
          required: true
          example: wm_5d1p8s3k7
          schema:
            type: string
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                status:
                  type: string
                  enum:
                    - active
                    - paused
                cadence_minutes:
                  type: integer
                  minimum: 15
                  maximum: 10080
                  default: 1440
                schedule_text:
                  type: string
                  description: >-
                    Not supported by the current adapter; supplying this field
                    returns 422.
                schedule_cron:
                  type: string
                  description: >-
                    Not supported by the current adapter; supplying this field
                    returns 422.
                timezone:
                  type: string
                  enum:
                    - UTC
      responses:
        '200':
          description: >-
            Current monitor configuration or retained check history.
            Configuration calls are free; scheduled usage is recorded
            separately.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          id:
                            type: string
                          monitor_id:
                            type: string
                          name:
                            type: string
                          url:
                            type: string
                          provider:
                            type: string
                          schedule_kind:
                            type: string
                          delivery:
                            type: string
                          timezone:
                            type: string
                          mode:
                            type: string
                            enum:
                              - scrape
                              - search
                          status:
                            type: string
                            enum:
                              - active
                              - paused
                              - deleted
                          query:
                            type: string
                            nullable: true
                          pause_reason:
                            type: string
                            nullable: true
                          cadence_minutes:
                            type: integer
                          retention_days:
                            type: integer
                          credits_booked:
                            type: integer
                          credits_per_check:
                            type: integer
                          consecutive_failures:
                            type: integer
                          next_check_at:
                            type: string
                            format: date-time
                            nullable: false
                          last_check_at:
                            type: string
                            format: date-time
                            nullable: true
                          created_at:
                            type: string
                            format: date-time
                            nullable: false
                          updated_at:
                            type: string
                            format: date-time
                            nullable: false
                          _warnings:
                            type: array
                            items:
                              type: string
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

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