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

# Website Technologies

> Find the technologies used by a website. Rate limit: 10 requests per second per workspace.

Find the technologies used by one website, such as its CMS, analytics tools, or JavaScript frameworks. Authenticate with your Airscale workspace API key and send exactly one `domain` field containing a bare hostname or HTTP(S) URL.

The domain is normalized to lowercase without a leading `www.` or trailing dot. Paths and queries are ignored. IP addresses, localhost, URL credentials, non-default ports, and non-HTTP(S) schemes are rejected. The JSON body must fit within **16 KiB**; additional fields are not accepted.

## Usage and credits

You need at least **0.5 credits** before a lookup can start. A response with one or more technology names costs **0.5 credits**. An empty result returns `technologies: []` and `credits_consumed: 0`.

Read `domain` for the normalized hostname and `technologies` for the list of names. Duplicate names are removed without regard to case. An empty list means no technologies were found for that lookup; it does not prove the website uses no technologies.

## Rate limits and retries

The limit is **10 requests per second per workspace**, measured in fixed UTC-second windows. Lookup capacity is also shared across workspaces, so actual throughput can be lower. A workspace rate limit returns `429`; unavailable lookup capacity returns `503`.

Allow more than **60 seconds** for a request: the lookup itself can take up to 60 seconds, with additional time for authentication and billing. A failed or timed-out lookup returns `502`. Authentication or billing services can also return `503`.

Use bounded backoff for temporary errors. This endpoint does not support caller idempotency keys. Retrying can run and charge another lookup, including when the original response was lost. A client timeout does not confirm that no credits were charged.

## Next step

Check your [credit balance](/api-reference/credit-count) or review [rate limits](/api-reference/rate-limits) before scheduling more lookups.


## OpenAPI

````yaml openapi.json POST /v1/technologies
openapi: 3.1.0
info:
  title: Airscale Public API
  version: '2026-09-11'
  description: Search, enrich, and resolve public business data with Airscale.
  x-airscale-source-repository: ViceScale/airscale-code
  x-airscale-source-sha: 1de19e1b70a052a4b8d9c2075021a7e5e7a94d51
servers:
  - url: https://api.airscale.io
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Search and discovery
    description: Search people, companies, and the web.
  - name: Contact data
    description: Find professional and personal contact data.
  - name: Profiles and reverse lookup
    description: Extract profiles or resolve a person from known contact data.
  - name: Post engagement
    description: Retrieve and enrich people who liked or commented on LinkedIn posts.
  - name: LinkedIn content
    description: >-
      Search LinkedIn posts, read profile and company feeds, and retrieve
      profile comments and comment reactions.
  - name: Account
    description: Inspect workspace account state.
  - name: Miscellaneous
    description: >-
      Find website technologies and check WhatsApp availability, Meta ads, and
      email deliverability.
paths:
  /v1/technologies:
    post:
      tags:
        - Miscellaneous
      summary: Find website technologies
      description: >-
        Find technology names for one website. A balance of at least 0.5 credits
        is required before lookup. A nonempty result costs 0.5 credits; an empty
        result costs zero. Duplicate names are removed without regard to case.
        No caller idempotency key is supported; retrying can run and charge
        another lookup, including when the original response was lost.
      operationId: findWebsiteTechnologies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  minLength: 1
                  pattern: \S
                  description: >-
                    Bare website hostname or HTTP(S) URL. Whitespace is trimmed;
                    the hostname is lowercased and leading www. and a trailing
                    dot are removed. Paths and queries are ignored. IP literals,
                    localhost, credentials, non-default ports, non-HTTP(S)
                    schemes, and invalid domain labels are rejected. Send
                    exactly one domain field. Maximum JSON body size: 16 KiB.
              required:
                - domain
              additionalProperties: false
            examples:
              request:
                value:
                  domain: example.com
      responses:
        '200':
          description: Normalized domain, technology names, and credit cost.
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      domain:
                        type: string
                      technologies:
                        type: array
                        minItems: 1
                        items:
                          type: string
                          minLength: 1
                      credits_consumed:
                        type: number
                        const: 0.5
                    required:
                      - domain
                      - technologies
                      - credits_consumed
                    additionalProperties: false
                  - type: object
                    properties:
                      domain:
                        type: string
                      technologies:
                        type: array
                        maxItems: 0
                        items:
                          type: string
                      credits_consumed:
                        type: number
                        const: 0
                    required:
                      - domain
                      - technologies
                      - credits_consumed
                    additionalProperties: false
              examples:
                found:
                  value:
                    domain: example.com
                    technologies:
                      - React
                      - Vite
                    credits_consumed: 0.5
                noTechnologies:
                  value:
                    domain: example.com
                    technologies: []
                    credits_consumed: 0
        '400':
          description: Invalid JSON, domain, or additional body fields.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            Insufficient credits. At least 0.5 credits are required before
            lookup.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '413':
          description: JSON body exceeds 16 KiB.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '429':
          description: 'Workspace rate limit exceeded: 10 requests per fixed UTC second.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '502':
          description: >-
            The technology lookup failed or exceeded its 60-second lookup
            timeout. Allow additional client time for authentication and
            billing.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '503':
          description: >-
            Lookup capacity, authentication, or billing is unavailable. Retry
            with bounded backoff. A retry is a new lookup and can incur another
            charge.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
components:
  responses:
    Unauthorized:
      description: The Bearer token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      additionalProperties: true
      properties:
        error:
          type: string
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        Use an Airscale workspace API key. Never expose the key in client-side
        code.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.