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

# Refresh audience crawl API

> Dispatch a one-off re-crawl of an audience's members so their technology data refreshes now. 1 credit per dispatched domain; fresh domains are skipped free.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="What exactly am I paying for?">
    Only domains actually dispatched to the crawler, at 1 credit each. Members scanned within the last 7 days are skipped as already fresh and cost nothing. Members beyond tonight's fleet budget are deferred to a later night and also cost nothing. The response breaks all four numbers out.
  </Accordion>

  <Accordion title="When should I use this?">
    When [the technology report's](/docs/api-reference/audiences/audience-technologies-api) `freshness` block shows the data is older than your decision needs. It is the on-demand counterpart to setting a `crawl_cadence`, which schedules the same thing repeatedly.
  </Accordion>

  <Accordion title="Why did I get REFRESH_PENDING?">
    The audience was dispatched within the last 24 hours and those crawls are still landing. Wait for them to arrive rather than paying twice for the same domains.
  </Accordion>

  <Accordion title="Is this available on the free plan?">
    No. Crawl dispatch requires a paid plan, since it consumes real crawler capacity.
  </Accordion>

  <Accordion title="How long until the data updates?">
    Dispatch is asynchronous — the endpoint returns as soon as the crawl requests are queued. Results land as the crawler works through them. Check [the crawl history](/docs/api-reference/audiences/audience-crawl-history-api) and the report's freshness block to see progress.
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml POST /v1/segments/{id}/crawl
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/segments/{id}/crawl:
    post:
      tags:
        - Audiences
      summary: Refresh audience crawl API
      description: >-
        Dispatch a one-off re-crawl of the audience's members so their
        technology data refreshes now instead of waiting for the rolling corpus
        crawl.


        Members scanned within the last 7 days are skipped as already fresh and
        are **not charged**. Everything else is dispatched at **1 credit per
        domain**. Members beyond the nightly fleet budget are deferred to a
        later night and are also not charged.


        Paid plans only. An audience dispatched within the last 24 hours returns
        `REFRESH_PENDING` — those crawls are still landing.
      operationId: refreshAudienceCrawl
      parameters:
        - name: id
          in: path
          required: true
          description: The audience id.
          schema:
            type: string
            example: seg_8f3a2c1b
      responses:
        '200':
          description: Dispatch summary
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      resolved:
                        type: integer
                        description: Members considered.
                        example: 5914
                      dispatched:
                        type: integer
                        description: Domains sent to the crawler and charged.
                        example: 812
                      skipped_fresh:
                        type: integer
                        description: Scanned within 7 days, not charged.
                        example: 5102
                      deferred:
                        type: integer
                        description: Beyond tonight's fleet budget, not charged.
                        example: 0
                      credits_charged:
                        type: integer
                        example: 812
                      request_ids:
                        type: array
                        items:
                          type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          $ref: '#/components/responses/QueryTimeout'
components:
  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'
    PaymentRequired:
      description: Not enough credits, or the plan does not include this feature
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            success: false
            error:
              code: INSUFFICIENT_CREDITS
              message: Insufficient credits for this request.
              details:
                required: 1
                available: 0
    Forbidden:
      description: The plan does not allow this action, or a plan limit was reached
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            success: false
            error:
              code: PLAN_LIMIT
              message: >-
                Your plan allows up to 2 saved audiences. Delete one to create
                another.
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    RateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    QueryTimeout:
      description: >-
        The query exceeded the 30-second server-side limit. Narrow the query and
        retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            success: false
            error:
              code: SEGMENT_QUERY_TIMEOUT
              message: The segment query exceeded the 30s server-side limit.
              details:
                suggestion: >-
                  Narrow the segment — add an employees band, industry, or city
                  — and try again.
  schemas:
    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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key in format `tapi_live_[32-char]` (live) or `tapi_test_[32-char]`
        (test)

````