techpeeker.com/docs/API Reference

API Reference

Enrich any domain with a full technology stack breakdown — CMS, e-commerce platform, analytics, frameworks, CDN, and more.

Overview

The TechPeeker API lets you programmatically detect the technology stack of any website. Pass a domain and get back a structured breakdown of every technology we can identify — from the CMS and e-commerce platform to analytics tools, JavaScript frameworks, CDNs, and hosting providers.

The API is REST-based, returns JSON, and uses standard HTTP status codes. All requests must be authenticated with a bearer token.

Fast

Typical response under 3 seconds with our cached enrichment layer.

Broad coverage

Detects 200+ technologies across 30+ categories.

Usage-based

Pay only for enrichments you use. No seat fees.

Authentication

All API requests require a bearer token in the Authorization header. You can get your API key from the API access page.

http
Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Keep your API key secret. Never expose it in client-side code or public repositories. Keys are prefixed tp_live_ for production and tp_test_ for sandbox.

Base URL

http
https://api.techpeeker.com/v1

All endpoints are versioned under /v1. We will maintain backwards compatibility within a version.

Rate Limits

Rate limits are enforced per API key. Exceeding the limit returns a 429 Too Many Requests response.

PlanRequests / minuteRequests / month
Business6050,000
EnterpriseCustomCustom

Rate limit headers are included on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

POST/enrich/domain

Full technology stack enrichment for a given domain.

Request Body

FieldTypeDescription
domainrequiredstringThe domain to enrich. Can include or omit the protocol — we normalise it.e.g. shopify.com
include_metadatabooleanReturn page metadata (title, description, language, favicon). Defaults to true.e.g. true
include_technologiesbooleanReturn the full list of detected technologies. Defaults to true.e.g. true
freshbooleanBypass the cache and force a live crawl. Counts as a fresh enrichment credit. Defaults to false.e.g. false
timeout_msintegerMax milliseconds to wait for the target site to respond. Min 1000, max 15000. Defaults to 10000.e.g. 8000

Response Schema

FieldTypeDescription
domainstringThe normalised domain that was enriched.
enriched_atstring (ISO 8601)Timestamp of when the enrichment was performed.
metadatanullableobjectPage metadata — title, description, language, favicon_url. Null if include_metadata was false.
technologiesarrayList of detected technology objects, each with name and category.
summaryobjectHigh-level summary: cms, ecommerce, analytics, frameworks, hosting, cdn, total_technologies.

Code Examples

bash
curl -X POST https://api.techpeeker.com/v1/enrich/domain \
  -H "Authorization: Bearer tp_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "shopify.com",
    "include_metadata": true,
    "include_technologies": true
  }'

Example Response

HTTP 200 OK

json
{
  "domain": "shopify.com",
  "enriched_at": "2026-04-23T10:15:00Z",
  "metadata": {
    "title": "Shopify - Start Your Business",
    "description": "Try Shopify free and start an ecommerce business.",
    "favicon_url": "https://shopify.com/favicon.ico",
    "language": "en"
  },
  "technologies": [
    {
      "name": "Shopify",
      "category": "Ecommerce"
    },
    {
      "name": "React",
      "category": "JavaScript Framework"
    },
    {
      "name": "Google Analytics",
      "category": "Analytics"
    }
  ],
  "summary": {
    "cms": null,
    "ecommerce": "Shopify",
    "analytics": ["Google Analytics"],
    "frameworks": ["React"],
    "hosting": "Shopify Cloud",
    "cdn": "Fastly",
    "total_technologies": 14
  }
}

Error Codes

Errors follow a consistent shape:

json
{
  "error": {
    "code": "invalid_domain",
    "message": "The domain provided is not a valid hostname.",
    "status": 422
  }
}
HTTP StatusError CodeDescription
400bad_requestThe request body is malformed or missing required fields.
401unauthorizedNo API key was provided, or the key is invalid.
403forbiddenYour plan does not include access to this endpoint.
422invalid_domainThe domain could not be parsed or resolved.
429rate_limitedYou have exceeded your rate limit. Retry after X-RateLimit-Reset.
504target_timeoutThe target domain did not respond within the allowed timeout.
500internal_errorAn unexpected error occurred on our side. These are rare and monitored.

Ready to start enriching?

Get your API key and start detecting technologies on any domain in minutes.