---
title: "Look up the tech stack behind a domain"
method: GET
path: "/v1/tech-lookup/domains/lookup"
tags: ["TechLookup"]
---

# Look up the tech stack behind a domain

`GET /v1/tech-lookup/domains/lookup`

## Request

- Base URL: `https://api.stackscan.com/api`
- URL: `https://api.stackscan.com/api/v1/tech-lookup/domains/lookup`
- Auth: HTTP bearer and API key in header `X-Tenant-Id`

Given a domain, returns the technologies detected on that site (name,
category, and how many other sites run it), paginated. Deducts 1 Bulk
Lookup Credit only when the lookup finds data.

Note `category` here is a RESPONSE FIELD toggle. Pass `category=false`
to leave the field out. To filter to one category across many domains,
use `POST domains/batch`, whose `category` is a filter.

Returns up to 50 technologies per page by default, which is the full
stack for over 99.9% of domains. Raise it with `per_page` (max 500,
more than the busiest domain we track) or page through with `page`.
Always check `pagination.has_more` before assuming you have them all.

Rate limit: 500 requests per minute, counted per API token. Going over returns 429 with `error_code: rate_limited` and a `Retry-After` header in seconds. A 429 costs no credits. Traffic is also subject to a higher shared ceiling per network address, applied before authentication.

## Query parameters

- `domain` string, required
- `page` integer
- `per_page` integer
- `technologies_limit` integer
- `technology` string
- `technologies_list` boolean
- `category` boolean
- `sub_category` boolean
- `total_sites` boolean
- `fresh` boolean

## Response `200`

Domain technologies (success). No data: `{success: false, error: "No data available"}`. Deducts 1 Bulk Lookup Credit when success is true.

- object
  - `success` boolean, required
  - `domain` string, required
  - `last_updated` string, required
  - `premium_technologies` integer, required
  - `monthly_tech_spend_usd` number, required
  - `technologies` object[], required
    - `techapi_id` string, nullable, required
    - `name` string, required
    - `website` string, nullable, required
    - `slug` string, nullable, required
    - `parent_category` string, nullable, required
    - `child_category` string, nullable, required
    - `total_sites` integer, required
  - `pagination` object, required
    - `current_page` integer, required
    - `per_page` integer, required
    - `total` integer, required
    - `last_page` integer, required
    - `has_more` boolean, required

## Other responses

- `401`: Unauthenticated
- `402`: Insufficient Bulk Lookup Credits.
- `403`: Authorization error
- `422`: Validation error
- `429`: Rate limit exceeded. Costs no credits. Back off for the number of seconds in Retry-After.

---

[API](https://skmtc.dev/stackscan/apis/stackscan-api-reference.md) · [All operations](https://skmtc.dev/stackscan/apis/stackscan-api-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/stackscan/apis/stackscan-api-reference/revisions/66531cd65f3a?raw)
