Справочник разработчика

Определение технологического стека

Изучите документацию API Определение технологического стека, параметры запросов, поля ответов, примеры кода и обработку ошибок для интеграций DomScan.

Определение технологического стека

Узнайте, какие технологии обеспечивают работу общедоступного сайта, с помощью быстрой проверки HTTP, изолированного рендеринга JavaScript и ограниченного многостраничного анализа одного источника. Для больших списков целей используйте синхронное массовое сканирование или сохраняемые асинхронные задания.

GET /v1/tech

Параметры запроса

ПараметрТипDescription
url опционально string Полный общедоступный URL с HTTP(S) для анализа. Если указаны и URL, и domain, приоритет имеет URL.
domain опционально string Общедоступный domain или URL с HTTP(S) для анализа. Укажите либо URL, либо domain.
mode опционально string
Допустимые значения fastrendereddeep
По умолчанию fast
Режим сканирования: fast стоит 3 кредита, rendered стоит 6 кредитов, deep стоит 9 кредитов.
max_pages опционально integer
По умолчанию 3
Максимальное количество страниц того же источника для анализа в режиме deep, от 1 до 5. Значение по умолчанию: 3.
skip_cache опционально string
Допустимые значения 1
Установите значение 1, чтобы обойти кэш и принудить свежий скан. Применяется только к fast mode, так как rendered и deep результаты никогда не кэшируются.

Категории технологий

CategoryExamples
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

Пример запроса

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

Пример ответа

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

Поля ответа

Поле Тип
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

Быстрое массовое определение

POST /v1/tech/bulk запускает до 10 сканирований fast с сохранением порядка. Каждая допустимая цель стоит 3 кредита, недопустимая цель стоит 0 кредитов, а сбои вышестоящих сервисов возмещаются отдельно для каждого элемента.

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

Асинхронные задания сканирования

POST /v1/tech/jobs принимает до 100 целей в режиме fast, rendered или deep. Поддерживаются идемпотентное создание, опрос только владельцем, подписанная пагинация результатов, отмена и возмещение для каждого элемента. Полные результаты истекают через 48 часов.

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"
Примечание: Списки job и результаты job разбиваются на страницы с непрозрачным подписанным cursor. Прочитайте next_cursor из ответа и передайте его как параметр cursor для получения следующей страницы. Cursors привязаны к вашей учетной записи и к одному job, поэтому их нельзя редактировать или повторно использовать в других местах.
GET /v1/hosting

Параметры запроса

Параметр Тип обязателен
domain string обязателен

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

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

Параметры тела запроса

Параметр Тип обязателен
domains string[] обязателен

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

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

Параметры запроса

Параметр Тип обязателен
domain string обязателен

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

{
  "domain": "example.com",
  "is_parked": true,
  "is_for_sale": true,
  "parking_provider": "string",
  "aftermarket_listings": [
    {
      "platform": "string",
      "detected_via": "dns"
    }
  ],
  "signals": [
    {
      "type": "string",
      "detail": "string",
      "provider": "string"
    }
  ],
  "confidence": 1,
  "checked_at": "2026-04-15T12:00:00Z",
  "check_duration_ms": 1
}
POST /v1/scrape

Параметры тела запроса

Параметр Тип обязателен
url string обязателен
mode string
Допустимые значения standardresilientrenderedrendered_resilient
По умолчанию standard
опционально
output string
Допустимые значения htmltextmarkdown
По умолчанию html
опционально

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

{
  "data": {
    "url": "https://example.com",
    "final_url": "https://example.com",
    "status": 1,
    "outcome": "success",
    "content_type": "string",
    "content": "string",
    "bytes": 1,
    "truncated": true,
    "redirect_count": 1,
    "attempt_count": 1,
    "duration_ms": 1,
    "fetched_at": "2026-04-15T12:00:00Z",
    "headers": {},
    "rendered": true
  },
  "billing": {
    "credits_charged": 1,
    "credits_refunded": 1,
    "credits_per_item": 1,
    "credits_net": 1,
    "policy": "effort_based"
  }
}
POST /v1/scrape/jobs

Параметры тела запроса

Параметр Тип обязателен
mode string
Допустимые значения standardresilientrenderedrendered_resilient
По умолчанию standard
опционально
output string
Допустимые значения htmltextmarkdown
По умолчанию html
опционально
urls unknown[] обязателен

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

{
  "job": {
    "id": "string",
    "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-04-15T12:00:00Z",
    "started_at": "2026-04-15T12:00:00Z",
    "completed_at": "2026-04-15T12:00:00Z",
    "updated_at": "2026-04-15T12:00:00Z",
    "processing_deadline_at": "2026-04-15T12:00:00Z",
    "results_expires_at": "2026-04-15T12:00:00Z"
  },
  "idempotent_replay": true
}
GET /v1/scrape/jobs/:job_id

Параметры запроса

Параметр Тип обязателен
job_id string обязателен

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

{
  "job": {
    "id": "string",
    "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-04-15T12:00:00Z",
    "started_at": "2026-04-15T12:00:00Z",
    "completed_at": "2026-04-15T12:00:00Z",
    "updated_at": "2026-04-15T12:00:00Z",
    "processing_deadline_at": "2026-04-15T12:00:00Z",
    "results_expires_at": "2026-04-15T12:00:00Z"
  }
}
GET /v1/scrape/jobs/:job_id/results

Параметры запроса

Параметр Тип обязателен
job_id string обязателен
limit integer
По умолчанию 20
опционально
offset integer
По умолчанию 0
опционально

Поля ответа

Поле Тип
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

Пример запроса

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

Пример ответа

{
  "job": {
    "id": "string",
    "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-04-15T12:00:00Z",
    "started_at": "2026-04-15T12:00:00Z",
    "completed_at": "2026-04-15T12:00:00Z",
    "updated_at": "2026-04-15T12:00:00Z",
    "processing_deadline_at": "2026-04-15T12:00:00Z",
    "results_expires_at": "2026-04-15T12:00:00Z"
  },
  "results": [
    {
      "index": 1,
      "url": "https://example.com",
      "reference": "string",
      "status": "pending",
      "data": {
        "url": "https://example.com",
        "final_url": "https://example.com",
        "status": 1,
        "outcome": "success",
        "content_type": "string",
        "content": "string",
        "bytes": 1,
        "truncated": true,
        "redirect_count": 1,
        "attempt_count": 1,
        "duration_ms": 1,
        "fetched_at": "2026-04-15T12:00:00Z",
        "headers": {},
        "rendered": true
      },
      "billing": {
        "credits_charged": 1,
        "credits_refunded": 1,
        "credits_per_item": 1,
        "credits_net": 1,
        "policy": "effort_based"
      }
    }
  ],
  "pagination": {}
}

Используется сотрудниками известных компаний

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel