Entwickler-Referenz

Tech-Stack-Erkennung

Entdecken Sie die API-Dokumentation zu Tech-Stack-Erkennung, Anfrageparameter, Antwortfelder, Codebeispiele und Fehlerbehandlung für DomScan-Integrationen.

Tech-Stack-Erkennung

Ermitteln Sie mit schneller HTTP-Prüfung, JavaScript-Rendering in einer Sandbox und begrenzter Analyse von Seiten desselben Ursprungs, was eine öffentliche Website antreibt. Nutzen Sie synchrone Bulk-Scans oder persistente asynchrone Aufträge für größere Ziellisten.

GET /v1/tech

Abfrageparameter

ParameterTypBeschreibung
url optional string Vollständige öffentliche HTTP(S)-URL zur Analyse. Wenn sowohl URL als auch domain angegeben sind, hat URL Vorrang.
domain optional string Öffentliche Domain oder HTTP(S)-URL zur Analyse. Geben Sie entweder URL oder domain an.
mode optional string
Zulässige Werte fastrendereddeep
Standard fast
Scanmodus: fast kostet 3 Credits, rendered kostet 6 Credits und deep kostet 9 Credits.
max_pages optional integer
Standard 3
Maximale Anzahl von Seiten desselben Ursprungs, die im Modus deep analysiert werden, von 1 bis 5. Der Standardwert ist 3.
skip_cache optional string
Zulässige Werte 1
Setzen Sie auf 1, um den Cache zu umgehen und eine neue Prüfung zu erzwingen. Dies gilt nur für den schnellen Modus, da rendered und deep Ergebnisse nie zwischengespeichert werden.

Technologie-Kategorien

KategorieBeispiele
cdnCloudflare, Fastly, Akamai, CloudFront
cmsWordPress, Drupal, Shopify, Squarespace
analyticsGoogle Analytics, Mixpanel, Segment
frameworkReact, Vue.js, Angular, Next.js
servernginx, Apache, IIS, LiteSpeed
hostingAWS, Google Cloud, Azure, Vercel
platformGitHub, Medium, Substack, GitBook

Beispielanfrage

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")

Beispielantwort

{
  "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
  }
}

Antwort-Felder

Feld Typ
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

Schnelle Bulk-Erkennung

POST /v1/tech/bulk führt bis zu 10 schnelle Scans in der angegebenen Reihenfolge aus. Gültige Ziele kosten jeweils 3 Credits, ungültige Ziele kosten nichts, und Fehler bei vorgelagerten Diensten werden pro Element erstattet.

POST /v1/tech/bulk
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 Scan-Aufträge

POST /v1/tech/jobs akzeptiert bis zu 100 Ziele im Modus fast, rendered oder deep. Aufträge unterstützen idempotente Erstellung, Statusabfragen mit Zugriff nur für den Eigentümer, signierte Ergebnispaginierung, Abbruch und Erstattungen pro Element. Vollständige Ergebnisse verfallen nach 48 Stunden.

POST /v1/tech/jobs
GET /v1/tech/jobs
GET /v1/tech/jobs/:job_id
GET /v1/tech/jobs/:job_id/results
DELETE /v1/tech/jobs/:job_id
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"
Hinweis: Job-Auflistungen und Job-Ergebnisse werden mit einem undurchsichtigen signierten Cursor paginiert. Lesen Sie next_cursor aus einer Antwort und übergeben Sie ihn als cursor-Parameter, um die nächste Seite abzurufen. Cursors sind an Ihr Konto und einen einzelnen Job gebunden, daher können sie nicht bearbeitet oder anderswo wiederverwendet werden.
GET /v1/hosting

Abfrageparameter

Parameter Typ erforderlich
domain string erforderlich

Antwort-Felder

Feld Typ
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

Beispielanfrage

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/hosting?domain=example.com"

Beispielantwort

{
  "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
}
POST /v1/hosting/bulk

Body-Parameter

Parameter Typ erforderlich
domains string[] erforderlich

Antwort-Felder

Feld Typ
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

Beispielanfrage

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"
  ]
}'

Beispielantwort

{
  "results": [
    {
      "input": "example",
      "data": {}
    }
  ],
  "meta": {
    "total": 1,
    "succeeded": 1,
    "failed": 1,
    "max_items": 10,
    "credits_per_item": 1,
    "duration_ms": 1
  }
}
GET /v1/parking

Abfrageparameter

Parameter Typ erforderlich
domain string erforderlich

Antwort-Felder

Feld Typ
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

Beispielanfrage

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/parking?domain=example.com"

Beispielantwort

{
  "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
}
GET /v1/agent-readiness

Abfrageparameter

Parameter Typ erforderlich
url string optional
domain string optional
skip_cache string
Zulässige Werte 1
optional

Antwort-Felder

Feld Typ
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

Beispielanfrage

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"

Beispielantwort

{
  "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
  }
}
POST /v1/scrape

Body-Parameter

Parameter Typ erforderlich
url string erforderlich
mode string
Zulässige Werte standardresilientrenderedrendered_resilient
Standard standard
optional
output string
Zulässige Werte htmltextmarkdown
Standard html
optional

Antwort-Felder

Feld Typ
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

Beispielanfrage

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"
}'

Beispielantwort

{
  "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"
  }
}
POST /v1/scrape/jobs

Body-Parameter

Parameter Typ erforderlich
mode string
Zulässige Werte standardresilientrenderedrendered_resilient
Standard standard
optional
output string
Zulässige Werte htmltextmarkdown
Standard html
optional
urls unknown[] erforderlich

Antwort-Felder

Feld Typ
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

Beispielanfrage

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"
    }
  ]
}'

Beispielantwort

{
  "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
}
GET /v1/scrape/jobs/:job_id

Abfrageparameter

Parameter Typ erforderlich
job_id string erforderlich

Antwort-Felder

Feld Typ
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

Beispielanfrage

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/scrape/jobs/example"

Beispielantwort

{
  "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"
  }
}
GET /v1/scrape/jobs/:job_id/results

Abfrageparameter

Parameter Typ erforderlich
job_id string erforderlich
limit integer
Standard 20
optional
offset integer
Standard 0
optional

Antwort-Felder

Feld Typ
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

Beispielanfrage

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/scrape/jobs/example/results?limit=25&offset=0"

Beispielantwort

{
  "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": {}
}

Wird von Menschen in großartigen Unternehmen verwendet

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeMotionElementsLLM Pulse