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

# Technology lookup (live) API

> Detect technologies on any website in real-time using multiple detection modes. Two modes available: browser (Puppeteer headless Chrome, 5-22s) and fetch (HTTP only, 1-3s). Costs 5 credits per request.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="What's the difference between browser and fetch modes?">
    `browser` mode uses Puppeteer (headless Chrome) for full browser rendering with JavaScript execution (5 to 22 seconds, maximum accuracy). It detects JS globals, DOM elements, XHR hosts, CSS rules, and inline scripts. `fetch` mode makes HTTP-only requests (1 to 3 seconds, best for static sites like WordPress). Both modes cost 5 credits.
  </Accordion>

  <Accordion title="When should I use live detection instead of the database lookup?">
    Use live detection when `GET /v1/domain/{domain}` returns a 404 (domain not in the pre-crawled database) or when you need real-time results for a specific URL. The database lookup is faster and cheaper at 1 credit, so always try it first and fall back to live detection only when needed.
  </Accordion>

  <Accordion title="What does the interact option do?">
    `interact` simulates user behavior in browser mode. Set it to `"basic"` to scroll the page and trigger lazy-loaded content, or `"full"` to also accept cookie consent banners (OneTrust, Cookiebot, Didomi, etc.) and fire DOM events. Many European sites block analytics scripts behind cookie consent, so `"full"` mode reveals technologies that wouldn't otherwise load. It adds roughly 5 to 10 seconds per request.
  </Accordion>

  <Accordion title="Can I use GET instead of POST?">
    Yes. You can use `GET /v1/technology-lookup-live?url=https://example.com` as a convenience alternative. Pass `mode` and `interact` as query parameters. The POST method is recommended when you need to send structured options.
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml POST /v1/technology-lookup-live
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
paths:
  /v1/technology-lookup-live:
    post:
      tags:
        - Live detection
      summary: Technology lookup (live) API
      description: >-
        Detect technologies on a website in real-time using multiple detection
        modes.


        **Costs 5 credits per request.**
      operationId: technologyLookupLive
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - url
              properties:
                url:
                  type: string
                  description: The URL to analyze
                  example: https://stripe.com
                options:
                  type: object
                  properties:
                    mode:
                      type: string
                      enum:
                        - browser
                        - fetch
                      default: browser
                      description: >-
                        Detection mode: `browser` (Puppeteer headless Chrome, JS
                        execution, 5–22s, maximum accuracy) or `fetch` (HTTP
                        only, 1–3s, best for static sites)
                    interact:
                      oneOf:
                        - type: boolean
                        - type: string
                          enum:
                            - basic
                            - full
                      default: false
                      description: >-
                        Simulate user behavior (browser mode only). `false` — no
                        interaction, just load and scan. `true` or `"basic"` —
                        scroll the page to trigger lazy-loaded content. `"full"`
                        — scroll + accept cookie consent banners + fire DOM
                        events. Adds ~5–10s per request.
      responses:
        '200':
          description: Live detection results
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      url:
                        type: string
                        description: The final URL after any redirects
                        example: https://stripe.com/de
                      originalUrl:
                        type: string
                        description: The URL that was originally requested
                        example: https://stripe.com
                      mode:
                        type: string
                        description: The detection mode that was used
                        example: browser
                      technologies:
                        type: array
                        items:
                          $ref: '#/components/schemas/LiveTechnology'
                      stats:
                        $ref: '#/components/schemas/DetectionStats'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    LiveTechnology:
      type: object
      properties:
        id:
          type: integer
          example: 1115
        slug:
          type: string
          example: amazon-s3
        name:
          type: string
          example: Amazon S3
        description:
          type: string
          example: >-
            Amazon S3 or Amazon Simple Storage Service is a service offered by
            Amazon Web Services (AWS) that provides object storage through a web
            service interface.
        confidence:
          type: integer
          example: 100
        version:
          type: string
          nullable: true
          example: null
        icon:
          type: string
          description: Technology icon filename
          example: AmazonS3.svg
        website:
          type: string
          description: Technology official website
          example: https://aws.amazon.com/s3/
        cpe:
          type: string
          nullable: true
        categories:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                example: 705
              slug:
                type: string
                example: cdn
              name:
                type: string
                example: CDN
              groups:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      example: 7
                    name:
                      type: string
                      example: Infrastructure
                    slug:
                      type: string
                      example: infrastructure-hosting
    DetectionStats:
      type: object
      properties:
        htmlLength:
          type: integer
          example: 594693
        scriptsCount:
          type: integer
          example: 0
        scriptSrcCount:
          type: integer
          example: 63
        cookiesCount:
          type: integer
          example: 0
        headersCount:
          type: integer
          example: 19
        metaCount:
          type: integer
          example: 18
        dnsRecordTypes:
          type: integer
          example: 4
        dnsTxtCount:
          type: integer
          example: 31
        jsGlobalsFound:
          type: integer
          example: 0
        domMatchesFound:
          type: integer
          example: 0
        xhrHostsFound:
          type: integer
          example: 0
        textLength:
          type: integer
          example: 0
        cssLength:
          type: integer
          example: 0
    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)

````