B2B Intelligence

Tech Stack

/extract/json

Schema for detected technology stack data for a company.

Download the schemab2b-intel/tech-stack.json

tech-stack.schema

// names marked ? are optional

company_name:string// Name of the company. Commonly found in: company profile, page title, site domain lookup.
company_domain:string// Website domain of the company. Commonly found in: site URL, analyzed domain.
detected_at:string// Timestamp when the tech stack was detected. Commonly found in: detection timestamp, scraper system timestamp.
frontend?:object[]// Frontend frameworks and libraries detected. Commonly found in: page source JavaScript, Wappalyzer frontend category, BuiltWith JS frameworks.
name:string// Name of the technology. Commonly found in: tech detection output, BuiltWith data, Wappalyzer result.
category?:string// Category or sub-category of the technology. Commonly found in: tech detection category, BuiltWith category label.
confidence?:number// Confidence score (0-1) for this detection. Commonly found in: Wappalyzer confidence score, detection engine output.
backend?:object[]// Backend languages and frameworks detected. Commonly found in: HTTP response headers, Wappalyzer backend category, job postings tech mentions.
name:string// Name of the technology. Commonly found in: tech detection output, BuiltWith data, Wappalyzer result.
category?:string// Category or sub-category of the technology. Commonly found in: tech detection category, BuiltWith category label.
confidence?:number// Confidence score (0-1) for this detection. Commonly found in: Wappalyzer confidence score, detection engine output.
infrastructure?:object[]// Infrastructure and cloud providers detected. Commonly found in: DNS records, HTTP headers, BuiltWith hosting category.
name:string// Name of the technology. Commonly found in: tech detection output, BuiltWith data, Wappalyzer result.
category?:string// Category or sub-category of the technology. Commonly found in: tech detection category, BuiltWith category label.
confidence?:number// Confidence score (0-1) for this detection. Commonly found in: Wappalyzer confidence score, detection engine output.
databases?:object[]// Databases detected in use. Commonly found in: job postings, BuiltWith databases category, engineering blog mentions.
name:string// Name of the technology. Commonly found in: tech detection output, BuiltWith data, Wappalyzer result.
category?:string// Category or sub-category of the technology. Commonly found in: tech detection category, BuiltWith category label.
confidence?:number// Confidence score (0-1) for this detection. Commonly found in: Wappalyzer confidence score, detection engine output.
payments?:string[]// Payment processors detected. Commonly found in: checkout page scripts, BuiltWith payment category, page source scan.
analytics?:string[]// Analytics tools detected. Commonly found in: page source scripts, BuiltWith analytics category, Wappalyzer analytics.
crm?:string[]// CRM tools detected. Commonly found in: page source, BuiltWith CRM category, tracking scripts.
marketing_automation?:string[]// Marketing automation tools detected. Commonly found in: page scripts, BuiltWith email marketing category, tracking pixels.
customer_support?:string[]// Customer support tools detected (e.g., chat widgets). Commonly found in: chat widget scripts, BuiltWith support category, page source scan.
cdn?:string[]// Content delivery networks detected. Commonly found in: DNS records, HTTP response headers, asset URLs.
ci_cd?:string[]// CI/CD tools detected or mentioned. Commonly found in: engineering blog, job postings, GitHub workflows.
monitoring?:string[]// Monitoring and observability tools detected. Commonly found in: page source scripts, job postings, engineering blog.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Tech Stack document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Tech Stack

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
tech-stack.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/b2b-intel/tech-stack.json
import Tabstack from '@tabstack/sdk'
import schema from './tech-stack.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://example.com/pricing',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.