API Documentation
Integrate SiteIntelica into your workflow. Analyze websites, scrape data, crawl sites, and access global internet trends programmatically.
Authentication
All authenticated endpoints accept two methods:
- Session cookie — automatically set when you log in through the web UI
- Bearer token — use your API key for programmatic access
Find your API key on the Settings page. You can regenerate it at any time.
curl -X POST https://siteintelica.com/api/analyze \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}' Rate Limits
Limits are enforced per user account. Exceeding them returns 429 Too Many Requests.
| Plan | Scans/Day | API Requests/Hour |
|---|---|---|
| Free | 5 | 10 |
| Pro | 100 | 200 |
| Business | 1,000 | 1,000 |
| Anonymous (no account) | 3 | — |
Rate limit headers are included in responses:
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0 Error Handling
All endpoints return JSON error responses with an error field:
{"error": "Daily scan limit reached. Upgrade for more.", "plan": "free", "limit": 5} | Status | Meaning |
|---|---|
400 | Bad request — missing or invalid parameters |
401 | Unauthorized — invalid API key or not logged in |
403 | Forbidden — feature requires a higher plan tier |
429 | Rate limit exceeded |
500 | Server error |
503 | Service unavailable (e.g., Cloudflare Radar not configured) |
Base URL
All endpoints are relative to your SiteIntelica instance:
https://siteintelica.com/api/... All request bodies use Content-Type: application/json unless noted otherwise.
/api/analyze Auth Optional Full website analysis — tech stack detection, security audit, SEO, DNS, SSL, performance, and more. Features are gated by plan tier.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Full URL including http:// or https:// |
force | boolean | No | Bypass 5-minute scan cache |
curl -X POST https://siteintelica.com/api/analyze \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://github.com", "force": true}' Response (truncated)
{
"plan": "pro",
"technologies": [{"name": "React", "categories": ["JavaScript frameworks"], "confidence": 100}],
"seo": {"title": "GitHub", "description": "...", "score": 85},
"security": {"grade": "A", "headers": {...}},
"network": {"A": ["140.82.121.4"], "AAAA": [...]},
"performance": {"score": 92, ...},
"radarDeepScan": {"verdicts": {"phishing": false, "malware": false}, ...}
} /api/bulk-analyze Auth Required Pro+ Batch scan multiple URLs from an uploaded CSV or TXT file. Each URL gets full tech stack analysis.
Request
Send as multipart/form-data with a file field containing a CSV/TXT with one URL per line.
curl -X POST https://siteintelica.com/api/bulk-analyze \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@urls.csv" List Jobs
GET /api/bulk-analyze returns your recent bulk scan jobs with status and results.
/api/scrape Auth Required Smart scraper — extracts structured data from any URL: title, meta tags, headings, links, images, emails, phones, social profiles, JSON-LD, Open Graph, and custom CSS selectors.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL to scrape (auto-prefixed with https:// if missing) |
selectors | object | No | Key-value map of CSS selectors to extract, e.g. {"price": ".price-tag"} |
curl -X POST https://siteintelica.com/api/scrape \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/products",
"selectors": {
"prices": ".product-price",
"titles": "h2.product-name"
}
}' Response (truncated)
{
"url": "https://example.com/products",
"statusCode": 200,
"title": "Products — Example Store",
"description": "Browse our catalog...",
"links": [{"href": "/product/1", "text": "Widget A", "isExternal": false}],
"emails": ["info@example.com"],
"customSelectors": {
"prices": ["$29.99", "$49.99"],
"titles": ["Widget A", "Widget B"]
},
"fetchedAt": "2026-04-13T10:30:00Z"
} /api/crawl Auth Required Site crawler — follows internal links up to 30 pages, building a page map with SEO health data per page (title, word count, load time, issues).
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to crawl (e.g. example.com) |
maxPages | number | No | Max pages to crawl (default: 20, max: 30) |
curl -X POST https://siteintelica.com/api/crawl \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com", "maxPages": 15}' Response (truncated)
{
"domain": "example.com",
"pagesFound": 42,
"pagesCrawled": 15,
"pages": [
{"url": "https://example.com/", "statusCode": 200, "title": "Example", "wordCount": 340, "loadTimeMs": 230, "issues": []},
{"url": "https://example.com/about", "statusCode": 200, "title": "About Us", "wordCount": 520, "loadTimeMs": 180, "issues": ["Missing meta description"]}
],
"summary": {"avgWordCount": 430, "avgLoadTimeMs": 205, "totalIssues": 3, "healthPercent": 87}
} /api/contacts Auth Required Contact finder — deep multi-page scan of /contact, /about, /team, /imprint pages to extract emails, phones, social profiles, and key people.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to scan (e.g. example.com) |
curl -X POST https://siteintelica.com/api/contacts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}' Response (truncated)
{
"domain": "example.com",
"emails": [
{"address": "info@example.com", "source": "/contact", "type": "general"},
{"address": "sales@example.com", "source": "/about", "type": "sales"}
],
"phones": [{"number": "+1-555-0100", "source": "/contact"}],
"socialProfiles": {"twitter": ["@example"], "linkedin": ["company/example"]},
"people": [{"name": "Jane Doe", "role": "CEO", "linkedin": "in/janedoe"}],
"pagesScanned": 6,
"confidence": "high"
} /api/content-watch Auth Required Content change tracker — monitor specific CSS selectors on any page for text changes. Supports add, remove, check, and snapshot actions.
Actions
| Action | Extra Fields | Description |
|---|---|---|
add | url, selector, optional label | Add a new content watch |
remove | watchId | Remove a watch |
check | — | Check all watches for changes |
snapshots | watchId | Get snapshot history for a watch |
# Add a content watch
curl -X POST https://siteintelica.com/api/content-watch \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "add",
"url": "https://example.com/pricing",
"selector": ".price-amount",
"label": "Pricing page amount"
}'
# Check all watches for changes
curl -X POST https://siteintelica.com/api/content-watch \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action": "check"}' /api/content-watch Auth Required List all active content watches for your account.
curl https://siteintelica.com/api/content-watch \
-H "Authorization: Bearer YOUR_API_KEY" /api/traffic?domain=example.com Auth Required Multi-source traffic estimation — combines Tranco, Cloudflare Radar, Wayback Machine, CDN detection, and ad network presence into a composite estimate.
Query Parameters
| Param | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to analyze |
/api/similar?domain=example.com Auth Required Find domains with similar tech stacks using Jaccard similarity scoring. Requires a prior scan of the domain.
Query Parameters
| Param | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to find similar sites for |
/api/leads Auth Required Search scanned domains by technology — find sites using specific stacks (e.g. "WordPress + WooCommerce but not Cloudflare").
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
include | string[] | Yes | Technologies that must be present |
exclude | string[] | No | Technologies that must be absent |
limit | number | No | Max results (default: 100, max: 500) |
curl -X POST https://siteintelica.com/api/leads \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"include": ["WordPress", "WooCommerce"], "exclude": ["Cloudflare"], "limit": 50}' Technology Stats
GET /api/leads returns the most popular technologies across all scanned domains.
/api/history/:domain Public Returns the scan timeline for a domain with tech stack diffs between scans.
curl https://siteintelica.com/api/history/github.com /api/radar/trends Public Internet-wide HTTP traffic breakdowns from Cloudflare Radar. Returns all dimensions or a specific one.
Query Parameters
| Param | Type | Required | Description |
|---|---|---|---|
dimension | string | No | One of: deviceType, browser, os, botClass, httpVersion, tlsVersion, ipVersion. Omit for all. |
# Get all trends
curl https://siteintelica.com/api/radar/trends
# Get browser share only
curl https://siteintelica.com/api/radar/trends?dimension=browser Response (single dimension)
{
"dimension": "browser",
"data": [
{"label": "Chrome", "percentage": 65.2},
{"label": "Safari", "percentage": 18.7},
{"label": "Firefox", "percentage": 3.1}
],
"timestamp": "2026-04-13T00:00:00Z"
} /api/radar/top-domains Public Global top domains by DNS query volume from Cloudflare Radar.
Query Parameters
| Param | Type | Required | Description |
|---|---|---|---|
limit | number | No | Number of domains (default: 100, max: 100) |
curl https://siteintelica.com/api/radar/top-domains?limit=10 /api/monitor Auth Required Manage your domain watchlist. Add or remove domains to monitor for tech stack changes, security regressions, and downtime.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
action | string | No | Set to "remove" to remove; otherwise adds |
url | string | For add | Full URL including protocol |
domain | string | For remove | Domain to stop monitoring |
label | string | No | Custom label for the watched domain |
interval | string | No | hourly, daily, or weekly |
GET /api/monitor returns your monitored domains with latest scan data.
/api/uptime Auth Required Run an HTTP health check on a domain — returns status code, response latency, and SSL certificate expiry.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to check |
GET /api/uptime?domain=example.com&days=30 returns historical uptime data.
/api/ai/summary Auth Required AI-generated executive summary and SWOT analysis from the latest scan data. Powered by Google Gemini with local fallback.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to summarize (must have a prior scan) |
/api/ai/seo-audit Auth Required AI-powered comprehensive SEO audit report from scan data.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to audit |
/api/ai/email Auth Required Generate a tech-aware B2B cold email draft based on scan intelligence.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Target domain |
/api/ai/upgrades Auth Required AI-generated tech stack upgrade recommendations and risk analysis.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to analyze |
/api/ai/competitor-gap Auth Required AI comparison of two scanned domains — identifies competitive gaps in tech, security, SEO, and performance.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
domainA | string | Yes | First domain |
domainB | string | Yes | Second domain |
/api/export Auth Required Export your scan data as JSON or CSV.
Query Parameters
| Param | Type | Required | Description |
|---|---|---|---|
format | string | No | json (default) or csv |
type | string | No | scans (default) or history |
domain | string | For history | Domain to export history for |
# Export all scans as CSV
curl https://siteintelica.com/api/export?format=csv \
-H "Authorization: Bearer YOUR_API_KEY" \
-o scans.csv
# Export history for a specific domain
curl "https://siteintelica.com/api/export?type=history&domain=github.com&format=json" \
-H "Authorization: Bearer YOUR_API_KEY" /api/badge/:domain/:metric Public Embeddable SVG badges for README files. Returns a shields.io-style badge.
Path Parameters
| Param | Description |
|---|---|
domain | Domain name |
metric | One of: security, performance, seo, tech-count |

 /api/user/usage Auth Required Returns your API usage stats — request counts by day/week/month and per-endpoint breakdown.
/api/user/webhook Auth Required Set or clear your webhook URL. SiteIntelica will POST events (monitoring changes, security alerts) to this URL.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
webhookUrl | string | No | Full URL (http/https). Send empty to clear. |
/api/user/settings Auth Required Account management actions.
Actions
| Action | Extra Fields | Description |
|---|---|---|
update_email | email | Change your email address |
change_password | currentPassword, newPassword | Change your password |
regenerate_api_key | — | Generate a new API key (invalidates old one) |
delete_account | confirmEmail | Permanently delete your account |