VendorStacks
← All posts
GTM5 min read

Tech Stack API for Competitive Intelligence: Tracking Vendor Adoption Across Your Market

How to use tech stack lookup APIs to monitor competitor tooling, identify market trends, and build defensible competitive analysis from public vendor evidence.

Stax
VendorStacks research desk

Why Tech Stack Data Matters for Competitive Intelligence

Competitive intelligence teams traditionally track product launches, pricing changes, and hiring patterns. But a company's vendor choices reveal strategic priorities that press releases never mention: a shift to Snowflake signals data warehouse consolidation, new Stripe integration suggests payment flow changes, Anthropic adoption means AI feature development.

Tech stack APIs let you monitor these signals programmatically. Instead of manually checking competitor websites monthly, you can detect vendor changes as they happen and build longitudinal views of technology adoption across your market.

What a Tech Stack API Actually Returns

A tech stack lookup API analyzes a company's public web presence and returns structured vendor data. Here's a real request to VendorStacks:

curl -X GET "https://api.vendorstacks.com/v1/check?url=acme.com" \
  -H "Authorization: Bearer vr_live_YOUR_KEY"

The response includes:

{
  "found": true,
  "vendor_stack": {
    "cloud_infra": ["AWS", "Cloudflare"],
    "ai_ml": ["OpenAI"],
    "analytics_data": ["Google Analytics", "Snowflake"],
    "payments": ["Stripe"],
    "crm_sales": ["Salesforce"]
  },
  "vendor_confidence": {
    "AWS": "high",
    "OpenAI": "high",
    "Stripe": "medium"
  },
  "aws_evidence": "Found in page source: https://acme.com/careers",
  "openai_evidence": "Found in robots.txt: https://acme.com/robots.txt",
  "scanned_at": "2025-01-15T10:23:45Z",
  "credits_used": 1
}

Every vendor detection includes the exact source — a quoted row from the page where the evidence appeared. This matters for competitive analysis because you can differentiate between infrastructure choices (AWS in DNS records) and customer-facing features (Stripe checkout integration).

Building a Competitor Monitoring System

The simplest monitoring system tracks a fixed list of competitors weekly:

import requests
import json
from datetime import datetime

API_KEY = "vr_live_YOUR_KEY"
BASE_URL = "https://api.vendorstacks.com/v1"

competitors = [
    "competitor1.com",
    "competitor2.com",
    "competitor3.com"
]

def scan_competitor(domain):
    response = requests.get(
        f"{BASE_URL}/check",
        params={"url": domain},
        headers={"Authorization": f"Bearer {API_KEY}"}
    )
    return response.json()

def detect_changes(current_stack, previous_stack):
    changes = {
        "added": [],
        "removed": []
    }
    
    current_vendors = set()
    previous_vendors = set()
    
    for category, vendors in current_stack.get("vendor_stack", {}).items():
        current_vendors.update(vendors)
    
    for category, vendors in previous_stack.get("vendor_stack", {}).items():
        previous_vendors.update(vendors)
    
    changes["added"] = list(current_vendors - previous_vendors)
    changes["removed"] = list(previous_vendors - current_vendors)
    
    return changes

# Store results with timestamp
for domain in competitors:
    result = scan_competitor(domain)
    
    # Compare with previous week's data
    # (Load from your database/file storage)
    previous = load_previous_scan(domain)
    
    if previous:
        changes = detect_changes(result, previous)
        if changes["added"] or changes["removed"]:
            alert_team(domain, changes)
    
    save_scan(domain, result, datetime.now())

This costs 1 credit per competitor per scan. Weekly monitoring of 20 competitors costs 80 credits monthly (under $1 with the 1,100-credit pack).

Tracking Market-Wide Vendor Adoption

Reverse lookup lets you identify which companies in your market use specific vendors. If you're tracking AI adoption, query for companies using OpenAI or Anthropic:

curl -X GET "https://api.vendorstacks.com/v1/prospect?vendor=OpenAI" \
  -H "Authorization: Bearer vr_live_YOUR_KEY"

Response:

{
  "vendor": "OpenAI",
  "page": 1,
  "results": [
    {
      "domain": "company1.com",
      "evidence": "Found in robots.txt: https://company1.com/robots.txt",
      "confidence": "high",
      "scanned_at": "2025-01-14T15:30:00Z"
    },
    {
      "domain": "company2.com",
      "evidence": "Found in page source: https://company2.com/api-docs",
      "confidence": "high",
      "scanned_at": "2025-01-13T09:15:00Z"
    }
  ],
  "total_results": 210,
  "credits_used": 10
}

VendorStacks currently indexes 210 companies using OpenAI and 171 using Anthropic across a 1,000-company index. You're charged 1 credit per result returned (10 results per page), so fetching all OpenAI users costs 210 credits.

Combine this with temporal data to measure adoption velocity:

def measure_adoption_rate(vendor, time_window_days=30):
    """
    Track how many companies adopted a vendor in the last N days
    """
    response = requests.get(
        f"{BASE_URL}/prospect",
        params={"vendor": vendor},
        headers={"Authorization": f"Bearer {API_KEY}"}
    )
    
    data = response.json()
    recent_adoptions = []
    
    for result in data["results"]:
        scan_date = datetime.fromisoformat(result["scanned_at"].replace("Z", "+00:00"))
        days_ago = (datetime.now(timezone.utc) - scan_date).days
        
        if days_ago <= time_window_days:
            recent_adoptions.append(result["domain"])
    
    return {
        "vendor": vendor,
        "new_users_last_30d": len(recent_adoptions),
        "total_users": data["total_results"]
    }

This tells you whether a vendor is gaining or losing momentum in your market segment.

Real-World Analysis Patterns

1. Infrastructure Migration Tracking

Monitor competitors moving between cloud providers. In our index, AWS appears in 338 companies, Google Cloud in 168, and Azure in 141. If a competitor's stack shows both AWS and Google Cloud, they may be mid-migration. Disappearance of one provider confirms completion.

2. Payment Stack Changes

Stripe appears in 270 companies in our index. If a competitor adds or removes Stripe, they're changing payment infrastructure — often signaling expansion to new markets, pricing model changes, or checkout flow overhauls.

3. AI Feature Development

Track when competitors adopt OpenAI (210 companies), Anthropic (171 companies), or other AI vendors. New AI vendor detection often precedes public AI feature announcements by weeks.

4. Data Infrastructure Buildout

Snowflake appears in 122 indexed companies. Adding Snowflake suggests a company is consolidating data warehousing or preparing for advanced analytics. Combine this with observability tool adoption to understand infrastructure maturity.

Avoiding Common Analysis Mistakes

A "found": false response means no public evidence was located — not that the company uses nothing. Many vendors leave no public trace. Focus on what you can detect, not absence of evidence.

Evidence fields show where vendors were detected. A vendor found in /careers page HTML differs from one in checkout flow source code. The former might be recruiting for that skill; the latter confirms production usage.

Confidence levels matter. "high" confidence means deterministic detection (API keys in source, official integrations listed). "medium" means indirect signals. Filter for high-confidence detections when building competitive narratives.

Cost Structure for Ongoing Monitoring

VendorStacks charges 1 credit per successful lookup and 1 credit per reverse-lookup result. Failed scans and empty results cost 0 credits.

Example monthly costs:

  • 20 competitors, weekly scans: 80 credits (~$0.70)
  • Quarterly deep-dive on 50 market players: 50 credits (~$0.45)
  • Monthly tracking of 5 key vendors via reverse lookup: ~250 credits if each vendor has 50 users (~$2.30)

Total: ~330 credits/month, covered by the $10/1,100-credit pack.

Integration With Existing Workflows

Most competitive intelligence teams store findings in Airtable, Notion, or internal dashboards. Here's a minimal webhook integration that posts changes to Slack:

import requests

def notify_slack(domain, changes):
    webhook_url = "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
    
    message = f"**Tech Stack Change Detected: {domain}**\n"
    
    if changes["added"]:
        message += f"Added: {', '.join(changes['added'])}\n"
    if changes["removed"]:
        message += f"Removed: {', '.join(changes['removed'])}\n"
    
    requests.post(webhook_url, json={"text": message})

Run this weekly via cron or GitHub Actions to maintain continuous monitoring without manual checks.

What This Doesn't Replace

Tech stack APIs detect publicly visible vendor usage. They don't replace:

  • Product teardowns or feature analysis
  • Customer interviews or win/loss analysis
  • Financial data from earnings calls
  • Internal tool choices with no public footprint

Use tech stack data as one signal among many. It's most valuable when combined with traditional competitive intelligence methods.

Getting Started

Generate an API key:

curl -X POST "https://api.vendorstacks.com/v1/keys"

You'll receive 25 free credits. Check your balance anytime:

curl -X GET "https://api.vendorstacks.com/v1/balance" \
  -H "Authorization: Bearer vr_live_YOUR_KEY"

Start with manual queries against your top 5 competitors to understand what the API detects, then automate monitoring once you've validated the signal quality for your market.

About the author

Stax is the pangolin who fronts the VendorStacks research desk — a fitting mascot for a company that reads layered stacks for a living. Posts under this byline are written by the VendorStacks team.

VendorStacks is the subprocessor disclosure data API — structured vendor stacks with quoted evidence, 25 free credits to start.

Get an API key