Tech-stackdetectie
Bekijk de API-documentatie voor Tech-stackdetectie, aanvraagparameters, responsvelden, codevoorbeelden en foutafhandeling voor DomScan-integraties.
Tech-stackdetectie
Ontdek wat een openbare website aandrijft met snelle HTTP-inspectie, JavaScript-rendering in een sandbox en begrensde analyse van pagina’s van dezelfde oorsprong. Gebruik synchrone bulkscans of persistente asynchrone taken voor grotere doellijsten.
Queryparameters
| Parameter | Type | Beschrijving |
|---|---|---|
| url optioneel | string | Volledige openbare HTTP(S)-URL om te analyseren. Als zowel URL als domain zijn opgegeven, heeft URL voorrang. |
| domain optioneel | string | Openbaar domein of openbare HTTP(S)-URL om te analyseren. Geef URL of domain op. |
| mode optioneel |
string
Toegestane waarden
fastrendereddeep
Standaard
fast
|
Scanmodus: fast kost 3 credits, rendered kost 6 credits en deep kost 9 credits. |
| max_pages optioneel |
integer
Standaard
3
|
Maximumaantal pagina's van dezelfde oorsprong dat in de modus deep wordt geanalyseerd, van 1 tot 5. De standaardwaarde is 3. |
| skip_cache optioneel |
string
Toegestane waarden
1
|
Instellen op 1 om de cache over te slaan en een verse scan af te dwingen. Dit is alleen van toepassing op de fast modus, omdat rendered en deep resultaten nooit in de cache worden opgeslagen. |
Technologiecategorieën
| Categorie | Voorbeelden |
|---|---|
cdn | Cloudflare, Fastly, Akamai, CloudFront |
cms | WordPress, Drupal, Shopify, Squarespace |
analytics | Google Analytics, Mixpanel, Segment |
framework | React, Vue.js, Angular, Next.js |
server | nginx, Apache, IIS, LiteSpeed |
hosting | AWS, Google Cloud, Azure, Vercel |
platform | GitHub, Medium, Substack, GitBook |
Voorbeeldverzoek
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/tech?url=https%3A%2F%2Fwordpress.example%2F" -H "x-api-key: YOUR_API_KEY"
const domscanFetch = (url, options = {}) =>
fetch(url, {
...options,
headers: { ...options.headers, "X-API-Key": "your-api-key" },
});
const response = await domscanFetch(
"https://domscan.net/v1/tech?url=https%3A%2F%2Fwordpress.example%2F",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
);
const data = await response.json();
for (const tech of data.technologies) {
console.log(`${tech.id}: ${tech.confidence_score}/100`);
}
import requests
domscan = requests.Session()
domscan.headers.update({"X-API-Key": "your-api-key"})
response = domscan.get(
"https://domscan.net/v1/tech",
params={"url": "https://wordpress.example/"},
headers={"x-api-key": "YOUR_API_KEY"}
)
data = response.json()
for tech in data['technologies']:
print(f"{tech['id']}: {tech['confidence_score']}/100")
Voorbeeldantwoord
{
"url": "https://wordpress.example/",
"technologies": [
{
"id": "wordpress",
"name": "WordPress",
"category": "cms",
"version": "6.8.2",
"version_kind": "product",
"confidence": "high",
"confidence_score": 98,
"evidence": "Meta: generator",
"evidence_details": [
{
"source": "meta",
"key": "generator",
"matched": "WordPress 6.8.2"
}
],
"source_count": 1,
"caveats": [
"generator_can_be_removed_or_spoofed",
"asset_paths_can_be_rewritten"
],
"reference": {
"website": "https://wordpress.org/",
"source_url": "https://developer.wordpress.org/reference/functions/get_the_generator/",
"source_owner": "WordPress.org",
"source_kind": "official_docs",
"access": "public",
"access_method": "target_response_inspection",
"cost": "none",
"terms_status": "public_source_reviewed_factual_signature",
"expected_freshness": "reverify_on_source_or_signature_change",
"maintenance_risk": "medium",
"runtime_rate_limits": "not_applicable_no_source_request",
"fallback_behavior": "unmatched_or_unavailable_signal_is_not_detected",
"last_verified": "2026-07-15"
}
}
],
"detection_summary": {
"detected_count": 1,
"category_count": 1,
"categories": [
"cms"
],
"high_confidence_count": 1,
"medium_confidence_count": 0,
"low_confidence_count": 0,
"versioned_count": 1,
"evidence_sources": {
"header": 0,
"html": 0,
"asset_url": 0,
"network_url": 0,
"javascript": 0,
"meta": 1,
"cookie": 0,
"url": 0
},
"catalog_size": 522,
"catalog_category_count": 87,
"summary_field_count": 1
},
"summary": {
"cms": "WordPress"
},
"meta": {
"title": "Example WordPress site",
"description": "A reserved example response for the technology detection contract.",
"canonical_url": "https://wordpress.example/",
"language": "en",
"favicon": "https://wordpress.example/favicon.ico",
"open_graph": {
"title": null,
"description": null,
"image": null,
"url": null,
"type": null,
"site_name": null,
"locale": null
},
"twitter_card": {
"card": null,
"site": null,
"creator": null,
"title": null,
"description": null,
"image": null
},
"author": null,
"generator": "WordPress 6.8.2",
"theme_color": null,
"manifest_url": null,
"robots": "index, follow"
},
"headers": {
"content-type": "text/html; charset=UTF-8"
},
"ssl": {
"enabled": true
},
"analysis": {
"status": "complete",
"requested_url": "https://wordpress.example/",
"final_url": "https://wordpress.example/",
"response_status": 200,
"redirect_count": 0,
"relay_used": false,
"signals_checked": [
"url",
"header",
"cookie",
"html",
"asset_url",
"meta"
],
"signals_unavailable": [],
"html_characters_analyzed": 412,
"html_bytes_analyzed": 412,
"html_byte_limit": 1000000,
"html_truncated": false,
"response_body_truncated": false,
"mode": "fast",
"rendered": false,
"javascript_executed": false,
"pages_requested": 1,
"pages_analyzed": 1,
"page_limit": 1,
"network_requests_observed": 0,
"page_limit_reached": false,
"resource_limit_reached": false,
"redirected_to_different_host": false,
"no_detection_reason": null,
"recommended_mode": null,
"pages": [
{
"url": "https://wordpress.example/",
"status": 200,
"html_truncated": false,
"network_requests_observed": 0
}
]
},
"total_time_ms": 128,
"checked_at": "2026-07-15T10:30:00Z",
"_meta": {
"served_by": "pop=MAD country=ES",
"analysis_status": "ok",
"response_status": 200,
"cache_status": "miss",
"stale": false
}
}
Antwoordvelden
| Veld | Type |
|---|---|
url |
string |
technologies[] |
object[] |
technologies[] |
object |
technologies[].id |
string |
technologies[].name |
string |
technologies[].category |
string |
technologies[].version |
string |
technologies[].version_kind |
string |
technologies[].confidence |
string |
technologies[].confidence_score |
integer |
technologies[].evidence |
string |
technologies[].evidence_details[] |
object[] |
technologies[].evidence_details[] |
object |
technologies[].evidence_details[].source |
string |
technologies[].evidence_details[].key |
string |
technologies[].evidence_details[].matched |
string |
technologies[].evidence_details[].page_url |
string |
technologies[].source_count |
integer |
technologies[].caveats[] |
string[] |
technologies[].reference |
object |
technologies[].reference.website |
string |
technologies[].reference.source_url |
string |
technologies[].reference.source_owner |
string |
technologies[].reference.source_kind |
string |
technologies[].reference.access |
string |
technologies[].reference.access_method |
string |
technologies[].reference.cost |
string |
technologies[].reference.terms_status |
string |
technologies[].reference.expected_freshness |
string |
technologies[].reference.maintenance_risk |
string |
technologies[].reference.runtime_rate_limits |
string |
technologies[].reference.fallback_behavior |
string |
technologies[].reference.last_verified |
string |
detection_summary |
object |
detection_summary.detected_count |
integer |
detection_summary.category_count |
integer |
detection_summary.categories[] |
string[] |
detection_summary.high_confidence_count |
integer |
detection_summary.medium_confidence_count |
integer |
detection_summary.low_confidence_count |
integer |
detection_summary.versioned_count |
integer |
detection_summary.evidence_sources |
object |
detection_summary.evidence_sources.header |
integer |
detection_summary.evidence_sources.html |
integer |
detection_summary.evidence_sources.asset_url |
integer |
detection_summary.evidence_sources.network_url |
integer |
detection_summary.evidence_sources.javascript |
integer |
detection_summary.evidence_sources.meta |
integer |
detection_summary.evidence_sources.cookie |
integer |
detection_summary.evidence_sources.url |
integer |
detection_summary.catalog_size |
integer |
detection_summary.catalog_category_count |
integer |
detection_summary.summary_field_count |
integer |
summary |
object |
summary.cdn |
string |
summary.server |
string |
summary.framework |
string |
summary.cms |
string |
summary.hosting |
string |
summary.platform |
string |
summary.analytics[] |
string[] |
headers |
object |
meta |
object |
ssl |
object |
ssl.enabled |
boolean |
analysis |
object |
analysis.status |
string |
analysis.requested_url |
string |
analysis.final_url |
string |
analysis.response_status |
integer |
analysis.redirect_count |
integer |
analysis.relay_used |
boolean |
analysis.signals_checked[] |
string[] |
analysis.signals_unavailable[] |
string[] |
analysis.html_characters_analyzed |
integer |
analysis.html_bytes_analyzed |
integer |
analysis.html_byte_limit |
integer |
analysis.html_truncated |
boolean |
analysis.response_body_truncated |
boolean |
analysis.mode |
string |
analysis.rendered |
boolean |
analysis.javascript_executed |
boolean |
analysis.pages_requested |
integer |
analysis.pages_analyzed |
integer |
analysis.page_limit |
integer |
analysis.network_requests_observed |
integer |
analysis.page_limit_reached |
boolean |
analysis.resource_limit_reached |
boolean |
analysis.redirected_to_different_host |
boolean |
analysis.no_detection_reason |
string | null |
analysis.recommended_mode |
string | null |
analysis.pages[] |
object[] |
analysis.pages[] |
object |
analysis.pages[].url |
string |
analysis.pages[].status |
integer |
analysis.pages[].html_truncated |
boolean |
analysis.pages[].network_requests_observed |
integer |
total_time_ms |
integer |
checked_at |
string |
_meta |
object |
_meta.served_by |
string |
_meta.analysis_status |
string |
_meta.response_status |
integer |
_meta.cache_status |
string |
_meta.stale |
boolean |
_meta.cached_at |
string |
Snelle bulkdetectie
POST /v1/tech/bulk voert maximaal 10 snelle scans uit in de opgegeven volgorde. Geldige doelen kosten elk 3 credits, ongeldige doelen kosten niets en fouten bij externe diensten worden per item terugbetaald.
curl -H "X-API-Key: your-api-key" -X POST "https://domscan.net/v1/tech/bulk" -H "x-api-key: YOUR_API_KEY" -H "content-type: application/json" -d '{"targets":["example.com",{"url":"https://shop.example.com/","reference":"shop"}]}'
Asynchrone scantaken
POST /v1/tech/jobs accepteert maximaal 100 doelen in de modus fast, rendered of deep. Taken ondersteunen idempotente aanmaak, statuscontrole die is beperkt tot de eigenaar, ondertekende resultaatpaginering, annulering en restituties per item. Volledige resultaten verlopen na 48 uur.
curl -H "X-API-Key: your-api-key" -X POST "https://domscan.net/v1/tech/jobs" -H "x-api-key: YOUR_API_KEY" -H "Idempotency-Key: scan-batch-2026-07-15" -H "content-type: application/json" -d '{"mode":"deep","max_pages":3,"targets":["example.com","shop.example.com"]}'
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/tech/jobs?limit=25" -H "x-api-key: YOUR_API_KEY"
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/tech/jobs/tsj_JOB_ID" -H "x-api-key: YOUR_API_KEY"
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/tech/jobs/tsj_JOB_ID/results?limit=25" -H "x-api-key: YOUR_API_KEY"
# next page, using next_cursor from the previous response
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/tech/jobs/tsj_JOB_ID/results?limit=25&cursor=NEXT_CURSOR" -H "x-api-key: YOUR_API_KEY"
curl -H "X-API-Key: your-api-key" -X DELETE "https://domscan.net/v1/tech/jobs/tsj_JOB_ID" -H "x-api-key: YOUR_API_KEY"
Queryparameters
| Parameter | Type | vereist |
|---|---|---|
| domain | string | vereist |
Antwoordvelden
| Veld | Type |
|---|---|
domain |
string |
hosting |
object |
hosting.provider |
string |
hosting.provider_id |
string |
hosting.confidence |
number |
hosting.region |
string |
hosting.detection_method |
string |
cdn |
object |
cdn.detected |
boolean |
cdn.provider |
string |
cdn.provider_id |
string |
cdn.confidence |
number |
cdn.detection_method |
string |
cdn.features[] |
string[] |
waf |
object |
waf.detected |
boolean |
waf.provider |
string |
waf.provider_id |
string |
waf.confidence |
number |
waf.detection_method |
string |
dns_provider |
object |
dns_provider.provider |
string |
dns_provider.provider_id |
string |
dns_provider.nameservers[] |
string[] |
dns_provider.confidence |
number |
dns_providers[] |
object[] |
dns_providers[] |
object |
dns_providers[].provider_id |
string |
dns_providers[].provider |
string |
email_provider |
object |
email_provider.provider |
string |
email_provider.provider_id |
string |
email_provider.mx_records[] |
string[] |
email_provider.confidence |
number |
ssh |
object |
ssh.host |
string |
ssh.port |
integer |
ssh.reachable |
boolean |
ssh.banner |
string | null |
ssh.algorithms[] |
string[] |
ssh.weak_algorithms[] |
string[] |
ssh.keys[] |
object[] |
ssh.keys[] |
object |
ssh.keys[].host |
string |
ssh.keys[].algorithm |
string |
ssh.keys[].key_size |
integer | null |
ssh.keys[].fingerprint_sha256 |
string | null |
ssh.keys[].weak |
boolean |
ssh.keys[].weak_reasons[] |
string[] |
ssh.error |
string | null |
ssh.checked_at |
string |
provider_summary |
object |
provider_summary.cache_status |
string |
provider_summary.provider_count |
integer |
provider_summary.detected_surfaces[] |
string[] |
provider_summary.confidence |
string |
provider_summary.confidence_score |
integer |
provider_summary.hosting_provider |
string | null |
provider_summary.cdn_provider |
string | null |
provider_summary.waf_provider |
string | null |
provider_summary.dns_provider_count |
integer |
provider_summary.email_provider |
string | null |
provider_summary.ssh_exposed |
boolean | null |
provider_summary.evidence[] |
object[] |
provider_summary.evidence[] |
object |
provider_summary.evidence[].surface |
string |
provider_summary.evidence[].provider |
string |
provider_summary.evidence[].confidence |
number | null |
provider_summary.evidence[].method |
string | null |
ip_info |
object |
ip_info.ipv4[] |
string[] |
ip_info.ipv6[] |
string[] |
checked_at |
string |
check_duration_ms |
integer |
Voorbeeldverzoek
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/hosting?domain=example.com"
Voorbeeldantwoord
{
"domain": "github.com",
"hosting": {
"provider": "Microsoft Azure",
"provider_id": "azure",
"confidence": 0.86,
"detection_method": "ip_range"
},
"cdn": {
"detected": true,
"provider": "Fastly",
"provider_id": "fastly",
"confidence": 0.94,
"detection_method": "headers"
},
"waf": {
"detected": false,
"confidence": 0.2,
"detection_method": "headers"
},
"dns_provider": {
"provider": "AWS Route 53",
"provider_id": "route53",
"nameservers": [
"ns-1283.awsdns-32.org",
"ns-1707.awsdns-21.co.uk"
],
"confidence": 0.9
},
"email_provider": {
"provider": "Google Workspace",
"provider_id": "google_workspace",
"mx_records": [
"aspmx.l.google.com"
],
"confidence": 0.95
},
"ssh": {
"host": "github.com",
"port": 22,
"reachable": true,
"banner": "SSH-2.0-babeld",
"algorithms": [
"ssh-ed25519",
"ecdsa-sha2-nistp256"
],
"weak_algorithms": [],
"keys": [
{
"host": "github.com",
"algorithm": "ssh-ed25519",
"key_size": 256,
"fingerprint_sha256": "SHA256:+DiY3wvvV6TuJJhbpZisF/Ym7N3QKXNoZk6sJ2x2d2s",
"weak": false,
"weak_reasons": []
}
],
"error": null,
"checked_at": "2026-04-18T21:00:00Z"
},
"provider_summary": {
"cache_status": "miss",
"provider_count": 4,
"detected_surfaces": [
"hosting",
"cdn",
"dns",
"email",
"ssh"
],
"confidence": "high",
"confidence_score": 92,
"hosting_provider": "Microsoft Azure",
"cdn_provider": "Fastly",
"waf_provider": null,
"dns_provider_count": 1,
"email_provider": "Google Workspace",
"ssh_exposed": true,
"evidence": [
{
"surface": "hosting",
"provider": "Microsoft Azure",
"confidence": 0.86,
"method": "ip_range"
},
{
"surface": "cdn",
"provider": "Fastly",
"confidence": 0.94,
"method": "headers"
},
{
"surface": "dns",
"provider": "AWS Route 53",
"confidence": 0.9,
"method": "ns"
},
{
"surface": "email",
"provider": "Google Workspace",
"confidence": 0.95,
"method": "mx"
},
{
"surface": "ssh",
"provider": "public-ssh",
"confidence": 90,
"method": "edge-relay"
}
]
},
"ip_info": {
"ipv4": [
"140.82.121.4"
],
"ipv6": []
},
"checked_at": "2026-04-18T21:00:00Z",
"check_duration_ms": 156
}
Lichaamsparameters
| Parameter | Type | vereist |
|---|---|---|
| domains | string[] | vereist |
Antwoordvelden
| Veld | Type |
|---|---|
results[] |
unknown[] |
meta |
object |
meta.total |
integer |
meta.succeeded |
integer |
meta.failed |
integer |
meta.max_items |
integer |
meta.credits_per_item |
integer |
meta.duration_ms |
integer |
Voorbeeldverzoek
curl -X POST "https://domscan.net/v1/hosting/bulk" \
-H "Content-Type: application/json" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-d '{
"domains": [
"example.com",
"cloudflare.com"
]
}'
Voorbeeldantwoord
{
"results": [
{
"input": "example",
"data": {}
}
],
"meta": {
"total": 1,
"succeeded": 1,
"failed": 1,
"max_items": 10,
"credits_per_item": 1,
"duration_ms": 1
}
}
Queryparameters
| Parameter | Type | vereist |
|---|---|---|
| domain | string | vereist |
Antwoordvelden
| Veld | Type |
|---|---|
domain |
string |
is_parked |
boolean |
is_for_sale |
boolean |
parking_provider |
string | null |
aftermarket_listings[] |
object[] |
aftermarket_listings[] |
object |
aftermarket_listings[].platform |
string |
aftermarket_listings[].detected_via |
string |
signals[] |
object[] |
signals[] |
object |
signals[].type |
string |
signals[].detail |
string |
signals[].provider |
string |
confidence |
number |
checked_at |
string |
check_duration_ms |
integer |
Voorbeeldverzoek
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/parking?domain=example.com"
Voorbeeldantwoord
{
"domain": "example.com",
"is_parked": false,
"is_for_sale": false,
"parking_provider": "example",
"aftermarket_listings": [
{
"platform": "example",
"detected_via": "dns"
}
],
"signals": [
{
"type": "domain",
"detail": "example",
"provider": "example"
}
],
"confidence": 0.85,
"checked_at": "2026-08-27T12:00:00Z",
"check_duration_ms": 1
}
Queryparameters
| Parameter | Type | vereist |
|---|---|---|
| url | string | optioneel |
| domain | string | optioneel |
| skip_cache |
string
Toegestane waarden
1
|
optioneel |
Antwoordvelden
| Veld | Type |
|---|---|
requested_url |
string |
final_url |
string |
checked_at |
string |
outcome |
string |
fetch_state |
string |
http_status |
integer | null |
summary |
object |
summary.coverage |
string |
summary.detected_signals |
integer |
summary.total_signals |
integer |
summary.score |
integer | null |
summary.rating |
string |
summary.confidence |
integer |
summary.passed_checks |
integer |
summary.warning_checks |
integer |
summary.failed_checks |
integer |
summary.unknown_checks |
integer |
summary.not_applicable_checks |
integer |
signals |
object |
signals.webmcp |
object |
signals.webmcp.status |
string |
signals.webmcp.validation |
string |
signals.webmcp.method |
string |
signals.webmcp.checked_url |
string | null |
signals.webmcp.http_status |
integer | null |
signals.webmcp.evidence[] |
string[] |
signals.webmcp.caveats[] |
string[] |
signals.remote_mcp |
object |
signals.remote_mcp.status |
string |
signals.remote_mcp.validation |
string |
signals.remote_mcp.method |
string |
signals.remote_mcp.checked_url |
string | null |
signals.remote_mcp.http_status |
integer | null |
signals.remote_mcp.evidence[] |
string[] |
signals.remote_mcp.caveats[] |
string[] |
signals.openapi |
object |
signals.openapi.status |
string |
signals.openapi.validation |
string |
signals.openapi.method |
string |
signals.openapi.checked_url |
string | null |
signals.openapi.http_status |
integer | null |
signals.openapi.evidence[] |
string[] |
signals.openapi.caveats[] |
string[] |
signals.llms_txt |
object |
signals.llms_txt.status |
string |
signals.llms_txt.validation |
string |
signals.llms_txt.method |
string |
signals.llms_txt.checked_url |
string | null |
signals.llms_txt.http_status |
integer | null |
signals.llms_txt.evidence[] |
string[] |
signals.llms_txt.caveats[] |
string[] |
signals.api_catalog |
object |
signals.api_catalog.status |
string |
signals.api_catalog.validation |
string |
signals.api_catalog.method |
string |
signals.api_catalog.checked_url |
string | null |
signals.api_catalog.http_status |
integer | null |
signals.api_catalog.evidence[] |
string[] |
signals.api_catalog.caveats[] |
string[] |
signals.mcp_server_card |
object |
signals.mcp_server_card.status |
string |
signals.mcp_server_card.validation |
string |
signals.mcp_server_card.method |
string |
signals.mcp_server_card.checked_url |
string | null |
signals.mcp_server_card.http_status |
integer | null |
signals.mcp_server_card.evidence[] |
string[] |
signals.mcp_server_card.caveats[] |
string[] |
signals.agent_skills |
object |
signals.agent_skills.status |
string |
signals.agent_skills.validation |
string |
signals.agent_skills.method |
string |
signals.agent_skills.checked_url |
string | null |
signals.agent_skills.http_status |
integer | null |
signals.agent_skills.evidence[] |
string[] |
signals.agent_skills.caveats[] |
string[] |
signals.oauth |
object |
signals.oauth.status |
string |
signals.oauth.validation |
string |
signals.oauth.method |
string |
signals.oauth.checked_url |
string | null |
signals.oauth.http_status |
integer | null |
signals.oauth.evidence[] |
string[] |
signals.oauth.caveats[] |
string[] |
signals.markdown |
object |
signals.markdown.status |
string |
signals.markdown.validation |
string |
signals.markdown.method |
string |
signals.markdown.checked_url |
string | null |
signals.markdown.http_status |
integer | null |
signals.markdown.evidence[] |
string[] |
signals.markdown.caveats[] |
string[] |
signals.web_bot_auth |
object |
signals.web_bot_auth.status |
string |
signals.web_bot_auth.validation |
string |
signals.web_bot_auth.method |
string |
signals.web_bot_auth.checked_url |
string | null |
signals.web_bot_auth.http_status |
integer | null |
signals.web_bot_auth.evidence[] |
string[] |
signals.web_bot_auth.caveats[] |
string[] |
signals.sitemap_markdown |
object |
signals.sitemap_markdown.status |
string |
signals.sitemap_markdown.validation |
string |
signals.sitemap_markdown.method |
string |
signals.sitemap_markdown.checked_url |
string | null |
signals.sitemap_markdown.http_status |
integer | null |
signals.sitemap_markdown.evidence[] |
string[] |
signals.sitemap_markdown.caveats[] |
string[] |
signals.agent_guide |
object |
signals.agent_guide.status |
string |
signals.agent_guide.validation |
string |
signals.agent_guide.method |
string |
signals.agent_guide.checked_url |
string | null |
signals.agent_guide.http_status |
integer | null |
signals.agent_guide.evidence[] |
string[] |
signals.agent_guide.caveats[] |
string[] |
foundations |
object |
dimensions |
object |
dimensions.discoverability |
object |
dimensions.discoverability.score |
integer | null |
dimensions.discoverability.confidence |
integer |
dimensions.discoverability.passed |
integer |
dimensions.discoverability.warned |
integer |
dimensions.discoverability.failed |
integer |
dimensions.discoverability.unknown |
integer |
dimensions.discoverability.not_applicable |
integer |
dimensions.discoverability.checks[] |
string[] |
dimensions.content |
object |
dimensions.content.score |
integer | null |
dimensions.content.confidence |
integer |
dimensions.content.passed |
integer |
dimensions.content.warned |
integer |
dimensions.content.failed |
integer |
dimensions.content.unknown |
integer |
dimensions.content.not_applicable |
integer |
dimensions.content.checks[] |
string[] |
dimensions.access_policy |
object |
dimensions.access_policy.score |
integer | null |
dimensions.access_policy.confidence |
integer |
dimensions.access_policy.passed |
integer |
dimensions.access_policy.warned |
integer |
dimensions.access_policy.failed |
integer |
dimensions.access_policy.unknown |
integer |
dimensions.access_policy.not_applicable |
integer |
dimensions.access_policy.checks[] |
string[] |
dimensions.capabilities |
object |
dimensions.capabilities.score |
integer | null |
dimensions.capabilities.confidence |
integer |
dimensions.capabilities.passed |
integer |
dimensions.capabilities.warned |
integer |
dimensions.capabilities.failed |
integer |
dimensions.capabilities.unknown |
integer |
dimensions.capabilities.not_applicable |
integer |
dimensions.capabilities.checks[] |
string[] |
checks |
object |
recommendations[] |
object[] |
recommendations[] |
object |
recommendations[].code |
string |
recommendations[].severity |
string |
meta |
object |
meta.cached |
boolean |
meta.fetch_path |
string |
meta.duration_ms |
integer |
meta.probe_count |
integer |
meta.body_truncated |
boolean |
meta.source_version |
string |
meta.last_verified |
string |
meta.rubric_version |
string |
meta.max_probes |
integer |
Voorbeeldverzoek
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/agent-readiness?url=https%3A%2F%2Fexample.com&domain=example.com&skip_cache=1"
Voorbeeldantwoord
{
"requested_url": "https://example.com",
"final_url": "https://example.com",
"checked_at": "2026-08-27T12:00:00Z",
"outcome": "complete",
"fetch_state": "ok",
"http_status": 1,
"summary": {
"coverage": "broad",
"detected_signals": 1,
"total_signals": 12,
"score": 85,
"rating": "excellent",
"confidence": 85,
"passed_checks": 1,
"warning_checks": 1,
"failed_checks": 1,
"unknown_checks": 1,
"not_applicable_checks": 1
},
"signals": {
"webmcp": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"remote_mcp": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"openapi": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"llms_txt": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"api_catalog": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"mcp_server_card": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"agent_skills": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"oauth": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"markdown": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"web_bot_auth": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"sitemap_markdown": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
},
"agent_guide": {
"status": "detected",
"validation": "confirmed",
"method": "rdap",
"checked_url": "https://example.com",
"http_status": 1,
"evidence": [
"example"
],
"caveats": [
"example"
]
}
},
"foundations": {},
"dimensions": {
"discoverability": {
"score": 85,
"confidence": 85,
"passed": 1,
"warned": 1,
"failed": 1,
"unknown": 1,
"not_applicable": 1,
"checks": [
"example"
]
},
"content": {
"score": 85,
"confidence": 85,
"passed": 1,
"warned": 1,
"failed": 1,
"unknown": 1,
"not_applicable": 1,
"checks": [
"example"
]
},
"access_policy": {
"score": 85,
"confidence": 85,
"passed": 1,
"warned": 1,
"failed": 1,
"unknown": 1,
"not_applicable": 1,
"checks": [
"example"
]
},
"capabilities": {
"score": 85,
"confidence": 85,
"passed": 1,
"warned": 1,
"failed": 1,
"unknown": 1,
"not_applicable": 1,
"checks": [
"example"
]
}
},
"checks": {},
"recommendations": [
{
"code": "example",
"severity": "high"
}
],
"meta": {
"cached": false,
"fetch_path": "primary",
"duration_ms": 1,
"probe_count": 1,
"body_truncated": false,
"source_version": "example",
"last_verified": "2026-08-27",
"rubric_version": "example",
"max_probes": 1
}
}
Lichaamsparameters
| Parameter | Type | vereist |
|---|---|---|
| url | string | vereist |
| mode |
string
Toegestane waarden
standardresilientrenderedrendered_resilient
Standaard
standard
|
optioneel |
| output |
string
Toegestane waarden
htmltextmarkdown
Standaard
html
|
optioneel |
Antwoordvelden
| Veld | Type |
|---|---|
data |
object |
data.url |
string |
data.final_url |
string |
data.status |
integer | null |
data.outcome |
string |
data.content_type |
string | null |
data.content |
string |
data.bytes |
integer |
data.truncated |
boolean |
data.redirect_count |
integer |
data.attempt_count |
integer |
data.duration_ms |
integer |
data.fetched_at |
string |
data.headers |
object |
data.rendered |
boolean |
billing |
object |
billing.credits_charged |
integer |
billing.credits_refunded |
integer |
billing.credits_per_item |
integer |
billing.credits_net |
integer |
billing.policy |
string |
Voorbeeldverzoek
curl -X POST "https://domscan.net/v1/scrape" \
-H "Content-Type: application/json" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-d '{
"url": "https://example.com/",
"mode": "standard",
"output": "markdown"
}'
Voorbeeldantwoord
{
"data": {
"url": "https://example.com",
"final_url": "https://example.com",
"status": 1,
"outcome": "success",
"content_type": "domain",
"content": "example",
"bytes": 1,
"truncated": false,
"redirect_count": 1,
"attempt_count": 1,
"duration_ms": 1,
"fetched_at": "2026-08-27T12:00:00Z",
"headers": {},
"rendered": false
},
"billing": {
"credits_charged": 1,
"credits_refunded": 1,
"credits_per_item": 1,
"credits_net": 1,
"policy": "effort_based"
}
}
Lichaamsparameters
| Parameter | Type | vereist |
|---|---|---|
| mode |
string
Toegestane waarden
standardresilientrenderedrendered_resilient
Standaard
standard
|
optioneel |
| output |
string
Toegestane waarden
htmltextmarkdown
Standaard
html
|
optioneel |
| urls | unknown[] | vereist |
Antwoordvelden
| Veld | Type |
|---|---|
job |
object |
job.id |
string |
job.status |
string |
job.mode |
string |
job.output |
string |
job.total |
integer |
job.counts |
object |
job.counts.pending |
integer |
job.counts.processing |
integer |
job.counts.succeeded |
integer |
job.counts.failed |
integer |
job.billing |
object |
job.billing.credits_charged |
integer |
job.billing.credits_refunded |
integer |
job.billing.credits_per_item |
integer |
job.billing.credits_net |
integer |
job.billing.policy |
string |
job.status_url |
string |
job.results_url |
string |
job.poll_after_ms |
integer | null |
job.created_at |
string |
job.started_at |
string | null |
job.completed_at |
string | null |
job.updated_at |
string |
job.processing_deadline_at |
string |
job.results_expires_at |
string |
idempotent_replay |
boolean |
Voorbeeldverzoek
curl -X POST "https://domscan.net/v1/scrape/jobs" \
-H "Content-Type: application/json" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-d '{
"mode": "resilient",
"output": "text",
"urls": [
"https://example.com/",
{
"url": "https://example.org/",
"reference": "page-2"
}
]
}'
Voorbeeldantwoord
{
"job": {
"id": "example-id",
"status": "queued",
"mode": "standard",
"output": "html",
"total": 1,
"counts": {
"pending": 1,
"processing": 1,
"succeeded": 1,
"failed": 1
},
"billing": {
"credits_charged": 1,
"credits_refunded": 1,
"credits_per_item": 1,
"credits_net": 1,
"policy": "effort_based"
},
"status_url": "https://example.com",
"results_url": "https://example.com",
"poll_after_ms": 1,
"created_at": "2026-08-27T12:00:00Z",
"started_at": "2026-08-27T12:00:00Z",
"completed_at": "2026-08-27T12:00:00Z",
"updated_at": "2026-08-27T12:00:00Z",
"processing_deadline_at": "2026-08-27T12:00:00Z",
"results_expires_at": "2026-08-27T12:00:00Z"
},
"idempotent_replay": false
}
Queryparameters
| Parameter | Type | vereist |
|---|---|---|
| job_id | string | vereist |
Antwoordvelden
| Veld | Type |
|---|---|
job |
object |
job.id |
string |
job.status |
string |
job.mode |
string |
job.output |
string |
job.total |
integer |
job.counts |
object |
job.counts.pending |
integer |
job.counts.processing |
integer |
job.counts.succeeded |
integer |
job.counts.failed |
integer |
job.billing |
object |
job.billing.credits_charged |
integer |
job.billing.credits_refunded |
integer |
job.billing.credits_per_item |
integer |
job.billing.credits_net |
integer |
job.billing.policy |
string |
job.status_url |
string |
job.results_url |
string |
job.poll_after_ms |
integer | null |
job.created_at |
string |
job.started_at |
string | null |
job.completed_at |
string | null |
job.updated_at |
string |
job.processing_deadline_at |
string |
job.results_expires_at |
string |
Voorbeeldverzoek
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/scrape/jobs/example"
Voorbeeldantwoord
{
"job": {
"id": "example-id",
"status": "queued",
"mode": "standard",
"output": "html",
"total": 1,
"counts": {
"pending": 1,
"processing": 1,
"succeeded": 1,
"failed": 1
},
"billing": {
"credits_charged": 1,
"credits_refunded": 1,
"credits_per_item": 1,
"credits_net": 1,
"policy": "effort_based"
},
"status_url": "https://example.com",
"results_url": "https://example.com",
"poll_after_ms": 1,
"created_at": "2026-08-27T12:00:00Z",
"started_at": "2026-08-27T12:00:00Z",
"completed_at": "2026-08-27T12:00:00Z",
"updated_at": "2026-08-27T12:00:00Z",
"processing_deadline_at": "2026-08-27T12:00:00Z",
"results_expires_at": "2026-08-27T12:00:00Z"
}
}
Queryparameters
| Parameter | Type | vereist |
|---|---|---|
| job_id | string | vereist |
| limit |
integer
Standaard
20
|
optioneel |
| offset |
integer
Standaard
0
|
optioneel |
Antwoordvelden
| Veld | Type |
|---|---|
job |
object |
job.id |
string |
job.status |
string |
job.mode |
string |
job.output |
string |
job.total |
integer |
job.counts |
object |
job.counts.pending |
integer |
job.counts.processing |
integer |
job.counts.succeeded |
integer |
job.counts.failed |
integer |
job.billing |
object |
job.billing.credits_charged |
integer |
job.billing.credits_refunded |
integer |
job.billing.credits_per_item |
integer |
job.billing.credits_net |
integer |
job.billing.policy |
string |
job.status_url |
string |
job.results_url |
string |
job.poll_after_ms |
integer | null |
job.created_at |
string |
job.started_at |
string | null |
job.completed_at |
string | null |
job.updated_at |
string |
job.processing_deadline_at |
string |
job.results_expires_at |
string |
results[] |
object[] |
results[] |
object |
results[].index |
integer |
results[].url |
string |
results[].reference |
string |
results[].status |
string |
results[].data |
object |
results[].data.url |
string |
results[].data.final_url |
string |
results[].data.status |
integer | null |
results[].data.outcome |
string |
results[].data.content_type |
string | null |
results[].data.content |
string |
results[].data.bytes |
integer |
results[].data.truncated |
boolean |
results[].data.redirect_count |
integer |
results[].data.attempt_count |
integer |
results[].data.duration_ms |
integer |
results[].data.fetched_at |
string |
results[].data.headers |
object |
results[].data.rendered |
boolean |
results[].billing |
object |
results[].billing.credits_charged |
integer |
results[].billing.credits_refunded |
integer |
results[].billing.credits_per_item |
integer |
results[].billing.credits_net |
integer |
results[].billing.policy |
string |
pagination |
object |
Voorbeeldverzoek
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/scrape/jobs/example/results?limit=25&offset=0"
Voorbeeldantwoord
{
"job": {
"id": "example-id",
"status": "queued",
"mode": "standard",
"output": "html",
"total": 1,
"counts": {
"pending": 1,
"processing": 1,
"succeeded": 1,
"failed": 1
},
"billing": {
"credits_charged": 1,
"credits_refunded": 1,
"credits_per_item": 1,
"credits_net": 1,
"policy": "effort_based"
},
"status_url": "https://example.com",
"results_url": "https://example.com",
"poll_after_ms": 1,
"created_at": "2026-08-27T12:00:00Z",
"started_at": "2026-08-27T12:00:00Z",
"completed_at": "2026-08-27T12:00:00Z",
"updated_at": "2026-08-27T12:00:00Z",
"processing_deadline_at": "2026-08-27T12:00:00Z",
"results_expires_at": "2026-08-27T12:00:00Z"
},
"results": [
{
"index": 1,
"url": "https://example.com",
"reference": "example",
"status": "pending",
"data": {
"url": "https://example.com",
"final_url": "https://example.com",
"status": 1,
"outcome": "success",
"content_type": "domain",
"content": "example",
"bytes": 1,
"truncated": false,
"redirect_count": 1,
"attempt_count": 1,
"duration_ms": 1,
"fetched_at": "2026-08-27T12:00:00Z",
"headers": {},
"rendered": false
},
"billing": {
"credits_charged": 1,
"credits_refunded": 1,
"credits_per_item": 1,
"credits_net": 1,
"policy": "effort_based"
}
}
],
"pagination": {}
}

