> ## 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.

# Verify the seller's storefront pointers

> Fetches the supplied pages and checks each one references the seller's storefront origin, carries at least one agent pointer (the llms.txt link or the badge), and serves markdown that references the storefront when a request asks for it. Each unique page origin must also serve an llms.txt that references the storefront. The llms.txt Link header and the agent callout are recorded without gating. All checks passing marks the step completed, any failure demotes it to in progress. Re-verifying a step that completed within the last five minutes is refused with a retry window; a not-yet-completed step always verifies immediately.



## OpenAPI

````yaml https://api.zeroclick.io/openapi.json post /v1/sellers/{sellerId}/onboarding/verify/agent-traffic
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}/onboarding/verify/agent-traffic:
    post:
      tags:
        - Sellers
      summary: Verify the seller's storefront pointers
      description: >-
        Fetches the supplied pages and checks each one references the seller's
        storefront origin, carries at least one agent pointer (the llms.txt link
        or the badge), and serves markdown that references the storefront when a
        request asks for it. Each unique page origin must also serve an llms.txt
        that references the storefront. The llms.txt Link header and the agent
        callout are recorded without gating. All checks passing marks the step
        completed, any failure demotes it to in progress. Re-verifying a step
        that completed within the last five minutes is refused with a retry
        window; a not-yet-completed step always verifies immediately.
      parameters:
        - schema:
            type: string
            minLength: 1
          in: path
          name: sellerId
          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:
                  step:
                    type: object
                    properties:
                      id:
                        type: string
                      step:
                        type: string
                        enum:
                          - store_details
                          - services
                          - pricing_plans
                          - custom_domain
                          - api_setup
                          - agent_traffic
                          - stripe_connect
                      status:
                        type: string
                        enum:
                          - not_started
                          - in_progress
                          - completed
                      verifiedAt:
                        nullable: true
                        type: string
                      evidence:
                        nullable: true
                      updatedAt:
                        type: string
                    required:
                      - id
                      - step
                      - status
                      - verifiedAt
                      - evidence
                      - updatedAt
                    additionalProperties: false
                  completed:
                    type: boolean
                  checks:
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                        ok:
                          type: boolean
                        storefrontLinked:
                          type: boolean
                        llmsPointer:
                          type: boolean
                        badge:
                          type: boolean
                        markdownNegotiated:
                          type: boolean
                        markdownStorefrontRef:
                          type: boolean
                        linkHeader:
                          type: boolean
                        agentCallout:
                          type: boolean
                        note:
                          nullable: true
                          type: string
                      required:
                        - url
                        - ok
                        - storefrontLinked
                        - llmsPointer
                        - badge
                        - markdownNegotiated
                        - markdownStorefrontRef
                        - linkHeader
                        - agentCallout
                        - note
                      additionalProperties: false
                  origins:
                    type: array
                    items:
                      type: object
                      properties:
                        origin:
                          type: string
                        ok:
                          type: boolean
                        served:
                          type: boolean
                        storefrontRef:
                          type: boolean
                        note:
                          nullable: true
                          type: string
                      required:
                        - origin
                        - ok
                        - served
                        - storefrontRef
                        - note
                      additionalProperties: false
                required:
                  - step
                  - completed
                  - checks
                  - origins
                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
                      - claim_cap_requires_free_trial
                      - maximum_purchase_below_minimum
                      - buy_with_ai_not_available
                      - auto_renew_incompatible_plan
                      - auto_top_up_incompatible_plan
                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
                      - claim_cap_requires_free_trial
                      - maximum_purchase_below_minimum
                      - buy_with_ai_not_available
                      - auto_renew_incompatible_plan
                      - auto_top_up_incompatible_plan
                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
                      - claim_cap_requires_free_trial
                      - maximum_purchase_below_minimum
                      - buy_with_ai_not_available
                      - auto_renew_incompatible_plan
                      - auto_top_up_incompatible_plan
                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
                      - claim_cap_requires_free_trial
                      - maximum_purchase_below_minimum
                      - buy_with_ai_not_available
                      - auto_renew_incompatible_plan
                      - auto_top_up_incompatible_plan
                required:
                  - error
                additionalProperties: false
        '429':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - reverify_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_...`.

````