Competitor Read
What is this competitor running, and how do they present themselves? Tech stack, page metadata, and social preview in one call.
competitor-read What it runs
- Tech Stack Detection
Source: HTTP response analysis (headers, JavaScript libraries, meta tags)
- Metadata Extraction
Source: HTTP fetch + HTML parsing (meta tag extraction)
- Social Preview Image Check
Source: HTTP fetch (Open Graph meta tag extraction)
The answer returns every step’s result, so your agent can show or check each one.
Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
url | string | Yes | — |
How to call it
# Needs an API key. The whole check is charged once, at the listed price.
curl -X POST https://api.strale.io/v1/solutions/competitor-read/execute \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"inputs": {
"url": "https://example.com"
},
"max_price_cents": 20
}' # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i -X POST https://api.strale.io/x402/v2/solutions/competitor-read \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com"
}' The bundle’s published example input.
Limitations
Trustpilot, Glassdoor, LinkedIn, Google Search, Google Patents, Reddit and the major social platforms (Facebook, Instagram, X) are not supported and return a policy error before the page is read. Repeating the same request does not return content.
From step: Tech Stack Detection
Database covers 1,000+ technologies — niche or custom-built tools may not be identified
From step: Tech Stack Detection
What to do instead: Check the raw HTTP headers in the response for custom X-Powered-By or Server values that indicate unlisted technology
Detection based on HTTP headers, JavaScript libraries, and HTML signatures — technologies loaded conditionally or server-side only may not be detected
From step: Tech Stack Detection
What to do instead: Complement with dns-lookup and ssl-check results to infer infrastructure choices not visible in the HTML
Pages with more than 16 MiB of HTML are refused with a caller_input error naming the input field. The call is not charged, and the page is not retried through another fetch or rendering route.
From step: Tech Stack Detection
Extracts meta tags from the initial HTML response — dynamically injected meta tags via JavaScript are not captured
From step: Metadata Extraction
What to do instead: Inspect the page in a browser for meta tags added by JavaScript.
Pages with more than 16 MiB of HTML are refused with a caller_input error naming the input field. The call is not charged, and the page is not retried through another fetch or rendering route.
From step: Metadata Extraction
Checks Open Graph and Twitter Card meta tags — dynamically injected OG tags via JavaScript may not be captured
From step: Social Preview Image Check
What to do instead: Inspect the rendered page in a browser for Open Graph tags added by JavaScript.
Pages with more than 16 MiB of HTML are refused with a caller_input error naming the input field. The call is not charged, and the page is not retried through another fetch or rendering route.
From step: Social Preview Image Check