Data catalog · Web Scraping

How to detect the technology a website runs on

Send a website URL and get back the technologies detected on it — CMS, analytics, CDN, frameworks, payments — grouped into categories, plus GTM signals. Flat cost per call, billed on 2xx, with no subscription and no minimum lookup commitment.

Try this live — 25 free credits

Last updated September 22, 2026

Find out what a website is built on

`POST /web_tech_stack` takes a URL and returns the technologies it can detect on that site (CMS, analytics, CDN, frontend framework, payment processor), grouped into categories, plus a `gtmSignals` object. **[Get 25 free credits — no card](https://app.richapi.ai)**

What it does

Two fields. `url` is required. `cache` is a boolean that defaults to `false`, which means every call goes and looks at the site unless you ask it not to. That default is the right one for most uses and the wrong one for a few. A fresh fetch is what you want when the answer drives a decision — is this prospect on Shopify today, did they rip out Segment last month. Cached is what you want when you are running the same domains repeatedly inside a dashboard and nobody needs the last hour's truth. The response is three keys. `technologies` is the flat list of what was found. `categories` groups them, so you can ask "what analytics do they run" without string-matching names. `gtmSignals` is the interesting one for sales teams — the tags that say something about how a company goes to market rather than how its site is assembled.

What detection can and cannot see

Detection reads what the site exposes: scripts, headers, markup, the fingerprints technologies leave in the page they serve. Anything that leaves no trace on the public page is invisible to it, here and in every other tech-detection product. So expect a confident answer on a CMS, a tag manager, a CDN, a checkout. Expect nothing on the CRM, the data warehouse or the internal build system, because none of those touch the page a visitor gets. A site behind an aggressive bot wall, or one that renders everything from a single opaque bundle, will return a thinner result than the company's real stack. That is a detection ceiling, not a miss to be refunded — billing here is on 2xx either way.

What you are billed for, on every tech stack lookup call

This endpoint is **not** a multi-provider waterfall. Billing is on HTTP 2xx. A thin 2xx still bills. 4xx and 5xx bill nothing, on any endpoint. The miss-free rule on the email finder, phone finder and email verifier does not apply here.

How to look up a tech stack — step by step

**1. Get a key.** Sign up at [app.richapi.ai](https://app.richapi.ai). 25 free credits, no card. **2. POST the URL.** ```bash curl -X POST https://api.richapi.ai/api/v1/web_tech_stack \ -H "x-api-key: $RICHAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com"}' ``` **3. Or accept cached data when freshness does not matter.** ```bash curl -X POST https://api.richapi.ai/api/v1/web_tech_stack \ -H "x-api-key: $RICHAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com", "cache": true}' ``` **4. Read the three keys.** ```json { "technologies": [], "categories": {}, "gtmSignals": {} } ``` **5. Or ask an agent.** The [hosted MCP server](/integrations/claude) exposes `web_tech_stack` as a tool in Claude, Cursor, Windsurf and VS Code: ``` Check whether these 12 domains run Shopify, and flag any that also run a subscription billing tool. ```

Fields the tech stack lookup returns

| Field | Type | What it is | |---|---|---| | `technologies` | array | The detected stack. | | `categories` | object | Detections grouped by category (analytics, commerce, hosting and so on). | | `gtmSignals` | object | Go-to-market-relevant detections pulled out separately — the ones worth qualifying on. | The spec ships `categories` and `gtmSignals` as empty objects in its example, so their inner shape is not something the spec can settle. Build against `technologies` first. It is the array that is unambiguously present, and `gtmSignals` is the one to reach for once you know its shape, because it is the difference between "this site loads a tag manager" and "this account is worth a call."

What the tech stack lookup costs

Flat `1 credit` per call, billed on any 2xx. A site where five things are detected and a site where fifty are cost the same; the price is the lookup, not the size of the answer. No subscription, no annual commitment, no minimum lookup volume. The tech-lookup category is normally sold as a platform subscription where you commit up front for a year and then discover how many lookups you actually needed. Here a hundred domains costs a hundred lookups and nothing in the months you look nothing up. Credit rates are tiered by package on [the pricing page](/pricing). Because billing is on 2xx including a thin result, a list full of parked domains and dead URLs costs you real credits. Filter the obvious dead weight before the loop.

What people use the tech stack lookup for

**Routing inbound leads by what they already run.** A signup from a company on Shopify Plus goes to a different sequence than one on a custom stack. The lookup runs once at signup, on the domain from the email, and the answer sets the routing rule. **Agencies qualifying a pitch list.** If you sell Webflow builds, the only accounts worth pitching are the ones not on Webflow, and the ones on a CMS people migrate away from are the warmest of those. One pass over the list turns a flat spreadsheet into a ranked one, and you pay per domain checked rather than per year of access. **Competitive displacement lists for sales teams.** Detecting a competitor's tag on a prospect's site is the most actionable single fact in an outbound sequence. Run the check monthly on your target accounts and alert on the tag appearing or disappearing, because the disappearance is a better trigger than the presence.

Endpoints related to the tech stack lookup

- [Website email extractor API](/api/website-email-extractor) — pull addresses off the same site - [Company enrichment API](/api/company-enrichment) — the firmographics behind the domain - [B2B people search API](/api/people-search) — filter people by company domain - [Email verification API](/api/email-verifier) — check addresses before you send, zero-billed on a soft fail - [All endpoints](/api) — the full catalog - [Pricing](/pricing) — credit packages and tier rates

The tech stack lookup FAQ

**What am I charged for?** Any 2xx, at the flat per-call cost, whether the site returns fifty technologies or three. This is not a waterfall endpoint, so there is no zero-on-miss rule here. Errors bill nothing. **Why does the result miss something I know they use?** Detection sees what the public page exposes. Server-side tools, internal systems and anything loaded behind a login leave no fingerprint on the page, so they cannot be detected from outside. If the site also blocks automated fetches, the result thins out further. **Does `cache: true` cost less?** The flag exists to trade freshness for speed; do not assume it is a discount until that is confirmed. **What is in `gtmSignals`?** Signals about how the company sells rather than how the site is built — the marketing and revenue tooling visible on the page. **Can I check a specific page rather than a homepage?** Yes, `url` takes any page. A pricing page or a checkout page often exposes payment and billing tech that the homepage does not, so pointing at the right page changes the answer. **Can I call this from Claude or Cursor (MCP)?** Yes. The hosted MCP server exposes `web_tech_stack` as a tool with a copy-paste config and no install. **Do I need a credit card?** No. 25 free credits on signup, no card.

Try the tech stack lookup: 25 free credits, no card

Check your first domain in two minutes. **[Get 25 free credits](https://app.richapi.ai)**

Frequently asked.

What does how to detect the technology a website runs on return?
Send a website URL and get back the technologies detected on it — CMS, analytics, CDN, frameworks, payments — grouped into categories, plus GTM signals. Flat cost per call, billed on 2xx, with no subscription and no minimum lookup commitment.
How is this billed?
Every endpoint is billed from the same credit pool, at the published rate on /pricing — never a separate contract per endpoint.
Does this work over MCP as well as REST?
Yes — the same endpoint is reachable from an MCP client (Claude, ChatGPT, Cursor, Windsurf) using the same key and credit pool. See /mcp.

More Web Scraping endpoints

See it in a workflow

Try it with 25 free credits.