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

# Run a discovery validation check

> Fetches the supplied pages server-side and persists a pass/fail verdict per URL for the named check, returning the fresh result. Re-running a currently passing check within five minutes is refused with a retry window; a failing check re-validates immediately - except the launch blogpost check, which keeps its retry window after every run and accepts exactly one URL.



## OpenAPI

````yaml https://api.zeroclick.io/openapi.json post /v1/sellers/{sellerId}/discovery/checks/{check}/validate
openapi: 3.0.0
info:
  title: ZeroClick API
  description: >-
    REST API for managing ZeroClick sellers, services, pricing, usage, and
    analytics. Authenticate with an API key from the ZeroClick dashboard.
  version: 1.0.0
servers:
  - url: https://api.zeroclick.io
security:
  - bearerAuth: []
tags:
  - name: API keys
  - name: Sellers
  - name: Services
  - name: Meters
  - name: Plans
  - name: Plan meter prices
  - name: Usage
  - name: Analytics
  - name: Agentify
  - name: Stripe Connect
  - name: Sandbox
  - name: Organizations
  - name: Users
paths:
  /v1/sellers/{sellerId}/discovery/checks/{check}/validate:
    post:
      tags:
        - Sellers
      summary: Run a discovery validation check
      description: >-
        Fetches the supplied pages server-side and persists a pass/fail verdict
        per URL for the named check, returning the fresh result. Re-running a
        currently passing check within five minutes is refused with a retry
        window; a failing check re-validates immediately - except the launch
        blogpost check, which keeps its retry window after every run and accepts
        exactly one URL.
      parameters:
        - schema:
            type: string
            minLength: 1
          in: path
          name: sellerId
          required: true
        - schema:
            type: string
            enum:
              - markdown_negotiation
              - markdown_storefront
              - html_links
              - html_storefront
              - curl_markdown
              - launch_blogpost
              - buy_with_ai_button
          in: path
          name: check
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                urls:
                  minItems: 1
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    format: uri
              required:
                - urls
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  check:
                    type: object
                    properties:
                      id:
                        type: string
                      check:
                        type: string
                        enum:
                          - markdown_negotiation
                          - markdown_storefront
                          - html_links
                          - html_storefront
                          - curl_markdown
                          - launch_blogpost
                          - buy_with_ai_button
                      status:
                        type: string
                        enum:
                          - passing
                          - failing
                      lastCheckedAt:
                        nullable: true
                        type: string
                      evidence:
                        anyOf:
                          - type: object
                            properties:
                              version:
                                type: number
                              checkedAt:
                                type: string
                              urls:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                    ok:
                                      type: boolean
                                    widgetScript:
                                      type: boolean
                                    note:
                                      nullable: true
                                      type: string
                                  required:
                                    - url
                                    - ok
                                    - note
                                  additionalProperties: false
                            required:
                              - version
                              - checkedAt
                              - urls
                            additionalProperties: false
                          - type: object
                            properties:
                              version:
                                type: number
                              checkedAt:
                                type: string
                              url:
                                type: string
                              isBlogPost:
                                type: boolean
                              referencesAgentStorefront:
                                type: boolean
                              includesStorefrontUrl:
                                type: boolean
                              model:
                                nullable: true
                                type: string
                              note:
                                nullable: true
                                type: string
                            required:
                              - version
                              - checkedAt
                              - url
                              - isBlogPost
                              - referencesAgentStorefront
                              - includesStorefrontUrl
                              - model
                              - note
                            additionalProperties: false
                    required:
                      - id
                      - check
                      - status
                      - lastCheckedAt
                      - evidence
                    additionalProperties: false
                required:
                  - check
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - duplicate_free_trial
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                      - free_trial_price_not_zero
                      - free_trial_interval_not_none
                      - included_credit_units_incomplete
                      - included_credit_units_without_credit
                      - buy_with_ai_not_available
                required:
                  - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - duplicate_free_trial
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                      - free_trial_price_not_zero
                      - free_trial_interval_not_none
                      - included_credit_units_incomplete
                      - included_credit_units_without_credit
                      - buy_with_ai_not_available
                required:
                  - error
                additionalProperties: false
        '409':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - duplicate_free_trial
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                      - free_trial_price_not_zero
                      - free_trial_interval_not_none
                      - included_credit_units_incomplete
                      - included_credit_units_without_credit
                      - buy_with_ai_not_available
                required:
                  - error
                additionalProperties: false
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - organization_required
                      - organization_permission_required
                      - seller_not_found
                      - service_not_found
                      - meter_not_found
                      - plan_not_found
                      - plan_meter_price_not_found
                      - duplicate_slug
                      - duplicate_key
                      - duplicate_plan_meter_price
                      - duplicate_free_trial
                      - signing_secret_not_found
                      - insufficient_scope
                      - payg_price_not_whole_cents
                      - custom_domain_skip_unavailable
                      - active_stateful_accounts_exist
                      - free_trial_price_not_zero
                      - free_trial_interval_not_none
                      - included_credit_units_incomplete
                      - included_credit_units_without_credit
                      - buy_with_ai_not_available
                required:
                  - error
                additionalProperties: false
        '429':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - validate_cooldown
                  retryAfterSeconds:
                    type: number
                required:
                  - error
                  - retryAfterSeconds
                additionalProperties: false
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key created in the ZeroClick dashboard under Settings → API keys.
        Keys start with `zc_`. Send them as `Authorization: Bearer zc_...`.

````