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

# Preview lead list count API

> Estimate how many domains a filter set matches and what building it would cost, before you commit. Free.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="How accurate is the estimate?">
    It is a fast approximation designed to drive a live counter as someone adjusts filters, not an exact count. Billing always happens on the actual delivered row count, never on this number, so an overestimate never costs you anything.
  </Accordion>

  <Accordion title="Which filters affect the estimate?">
    Technology, keyword, country, industry and employee filters all move it. Among the website filters, `has_email` and `has_phone` apply coverage factors, while `languages` and `web_countries` are informational and do not move the estimate — they still filter the real build.
  </Accordion>

  <Accordion title="Is it cached?">
    Yes, for 5 minutes per unique filter set, so a user toggling back and forth does not re-run the estimate each time.
  </Accordion>

  <Accordion title="What is credit_cost telling me?">
    One credit per row we would deliver. Cap it by setting `list_size` when you [create the list](/docs/api-reference/lead-lists/create-lead-list-api) — that is the maximum you can be charged.
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml POST /v1/leads/preview-count
openapi: 3.1.0
info:
  title: TechnologyChecker API
  description: >-
    Discover technology stacks, track market trends, and enrich data with
    company intelligence.
  version: 1.0.0
  contact:
    name: TechnologyChecker Support
    email: support@technologychecker.io
    url: https://technologychecker.io
servers:
  - url: https://api.technologychecker.io
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Domain technologies
    description: Look up technologies detected on any domain
  - name: Technology data
    description: Search, look up, and get details on tracked technologies
  - name: Market intelligence
    description: Technology stats, trends, and market share
  - name: Company data
    description: Firmographic and company intelligence
  - name: Live detection
    description: Real-time technology detection with browser rendering
  - name: Signals
    description: >-
      Intent signals derived from technology state transitions: who adopted, who
      churned, who switched, and who has a gap in their stack.
  - name: Alerts
    description: >-
      Saved signal queries delivered to your webhook. Every signal you can
      query, you can subscribe to.
  - name: Audiences
    description: >-
      Saved groups of domains — uploaded lists or computed recipes — that you
      can profile, slice and monitor.
  - name: Lead lists
    description: >-
      Build and export targeted domain lists combining technology detection with
      company data.
paths:
  /v1/leads/preview-count:
    post:
      tags:
        - Lead lists
      summary: Preview lead list count API
      description: >-
        Estimate how many domains a filter set will match, and what building it
        would cost, before you commit. Free — use it as the live counter on a
        filter builder.


        The estimate is a fast approximation and results are cached for 5
        minutes per filter set. Billing always happens on the actual row count,
        never on this number.
      operationId: previewLeadListCount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeadListFilters'
            example:
              technologies:
                ids:
                  - 2
                  - 7
                logic: or
              keywords:
                include:
                  - shop
                exclude:
                  - health
              website_type: company_only
              countries:
                - United States
                - Germany
              industries:
                - Software Development
              employees:
                - 51-200
                - 201-500
      responses:
        '200':
          description: Estimated match count and credit cost
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      estimated_count:
                        type: integer
                        example: 518300
                      credit_cost:
                        type: integer
                        description: One credit per row delivered.
                        example: 518300
                      filters_applied:
                        type: object
                        additionalProperties:
                          type: integer
                        example:
                          technologies: 2
                          countries: 2
                          industries: 1
                          employees: 2
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    LeadListFilters:
      type: object
      description: >-
        The filter set that defines a lead list. Technology filters and company
        filters combine with AND.
      properties:
        technologies:
          type: object
          properties:
            ids:
              type: array
              items:
                type: integer
              example:
                - 2
                - 7
            logic:
              type: string
              enum:
                - or
                - and
                - and_not
              default: or
              description: >-
                `or` matches domains running any listed technology. `and`
                requires all of them. `and_not` requires the first and excludes
                the rest.
        keywords:
          type: object
          properties:
            include:
              type: array
              items:
                type: string
              example:
                - shop
            exclude:
              type: array
              items:
                type: string
              example:
                - health
        website_type:
          type: string
          example: company_only
        countries:
          type: array
          items:
            type: string
          example:
            - United States
            - Germany
        industries:
          type: array
          items:
            type: string
          example:
            - Software Development
        employees:
          type: array
          items:
            type: string
          example:
            - 51-200
            - 201-500
        has_email:
          type: boolean
          description: Only domains where the crawler found an email address.
        has_phone:
          type: boolean
          description: Only domains where the crawler found a phone number.
        languages:
          type: array
          items:
            type: string
          example:
            - en
        web_countries:
          type: array
          items:
            type: string
          description: >-
            ISO-2 codes or English names. Unresolvable values are rejected at
            create time.
          example:
            - USA
    ApiError:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              example: UNAUTHORIZED
            message:
              type: string
              example: Missing or invalid API key
  responses:
    BadRequest:
      description: Invalid or missing parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            success: false
            error:
              code: VALIDATION_ERROR
              message: >-
                Provide exactly one scope: technology_id, technology or
                category_id.
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    RateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key in format `tapi_live_[32-char]` (live) or `tapi_test_[32-char]`
        (test)

````