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

# List alerts API

> List every alert on your API key with status, last fire time, failure count and your plan's alert limit. Free — alert management never consumes credits.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Do alerts cost credits?">
    No. Creating, listing, editing and firing alerts is free — alerts are a plan entitlement capped by count rather than metered per call. The only alert-related charge is crawl cadence on a domains-scope alert, which costs 1 credit per dispatched domain crawl.
  </Accordion>

  <Accordion title="How many alerts can I have?">
    The `limit` field in the response tells you. Free plans get 1, Pro 5, Scale 15 and Enterprise 50. The cap counts every saved alert regardless of status, so pausing one does not free a slot — delete it instead.
  </Accordion>

  <Accordion title="What does consecutive_failures mean?">
    How many deliveries in a row your endpoint has rejected or timed out on. At 10 consecutive failures the alert flips to `disabled` and stops sweeping. Patch it back to `active` to re-enable it; the resumed sweep reaches back at most 7 days.
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml GET /v1/alerts
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/alerts:
    get:
      tags:
        - Alerts
      summary: List alerts API
      description: >-
        List every alert owned by the calling API key, with its status, last
        fire time, consecutive failure count and your plan's alert limit. Free —
        alert management never consumes credits.
      operationId: listAlerts
      responses:
        '200':
          description: Your alerts and the plan limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      alerts:
                        type: array
                        items:
                          $ref: '#/components/schemas/Alert'
                      count:
                        type: integer
                        example: 3
                      limit:
                        type: integer
                        description: Maximum alerts on your plan.
                        example: 5
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    Alert:
      type: object
      properties:
        id:
          type: string
          example: alrt_9f2c4a1e
        name:
          type: string
          example: Who leaves Shopify (US, 51-200)
        signal_types:
          type: array
          items:
            type: string
            enum:
              - churn
              - adoption
              - switch
          example:
            - switch
        scope:
          type: object
          description: The saved scope. Immutable after creation.
          properties:
            kind:
              type: string
              enum:
                - technology
                - category
                - domains
                - segment
              example: technology
            technology_id:
              type: integer
              nullable: true
              example: 2184
            technology_name:
              type: string
              nullable: true
              example: Shopify
            category_id:
              type: integer
              nullable: true
            domains:
              type: array
              nullable: true
              items:
                type: string
            segment_id:
              type: string
              nullable: true
        direction:
          type: string
          nullable: true
          enum:
            - from
            - to
            - null
        missing_category_id:
          type: integer
          nullable: true
          description: Set turns an adoption alert into a whitespace-entrant alert.
        filters:
          $ref: '#/components/schemas/AlertFilters'
        webhook_url:
          type: string
          format: uri
          example: https://example.com/hooks/tc
        status:
          type: string
          enum:
            - active
            - paused
            - disabled
          example: active
        delivery_frequency:
          type: string
          enum:
            - hourly
            - daily
          default: daily
          example: daily
        crawl_cadence:
          type: string
          nullable: true
          enum:
            - daily
            - weekly
            - monthly
            - null
          example: monthly
        last_fired_at:
          type: string
          nullable: true
          example: '2026-06-10 17:39:39'
        consecutive_failures:
          type: integer
          example: 0
        created_at:
          type: string
          example: '2026-06-10T16:39:39.000Z'
        updated_at:
          type: string
          example: '2026-06-10T16:39:39.000Z'
    AlertFilters:
      type: object
      description: >-
        Row-level filters applied to every sweep. Firmographic keys use the same
        vocabulary as the Signals API.
      properties:
        min_confidence:
          type: number
          format: float
          default: 0.5
          description: Detection-rate floor.
          example: 0.5
        churn_reliability:
          type: array
          items:
            type: string
            enum:
              - high
              - medium
              - low
          description: >-
            Churn alerts only. Defaults to `["high","medium"]` — low-reliability
            technologies flap and produce false-churn spam. Unclassified
            technologies count as medium.
          example:
            - high
            - medium
        min_confidence_label:
          type: string
          enum:
            - high
            - medium
            - low
          description: >-
            Per-event confidence floor, off by default. Unlike
            `churn_reliability` this gates the combined score and applies to
            adoption too, so it is how a watchlist suppresses single-scan noise.
            Note that a churn with fewer than 2 detections is floored to `low`,
            so any value above `low` drops single-scan churns.
          example: medium
        country:
          type: string
          example: united states
        city:
          type: string
        state:
          type: string
        industry:
          type: string
        industry_code:
          type: integer
        employees:
          type: string
          example: 51-200
        company_type:
          type: string
        founded_min:
          type: integer
        founded_max:
          type: integer
        company:
          type: boolean
          description: Attach company cards without filtering.
        has_email:
          type: boolean
        has_phone:
          type: boolean
        social:
          type: string
        language:
          type: string
        web_country:
          type: string
    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:
    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)

````