Skip to main content
An assessment runs in the background for minutes to hours after you start it. Poll its progress until status is Completed. About 3 minutes later its automatic report starts generating when the assessment has data for it, and you track the report from there. Availability: Attack Surface Reports or Targeted Attack Surface Reports. Either one opens the list, progress and queue, for full and targeted assessments alike. Cost: no metered allowance. Each poll is one API call: it counts toward your per-second rate limit and, with an API key, toward your monthly API Calls allowance when it returns 2xx. Without either plan feature, or when your license is not in force, these endpoints return 403 with {"detail": "This feature is not included in your plan."}.

Assessment statuses

Completed, Cancelled and Failed are final.

Poll progress

GET /api/hackerview/scans/{scan_id}/progress/ returns the status, every phase, a summary and the queue state. Pass the uid from the start response as scan_id.
This example is shortened. The response lists every phase, and every source within a phase:
  • status — the assessment status. It reads Running while any module is still running, even after the assessment list already shows Completed. Wait for Completed here before you request a report yourself.
  • elapsed_seconds — seconds since the assessment was created, queue time included. It keeps counting after the assessment ends. For the run time of a finished assessment, read elapsed_time_seconds from the list.
  • phases — one entry per phase, in the order below.
  • summary — counts for a progress bar. total_domains_found is the hosts discovered so far and lookups_completed the hosts resolved to an IP address. The modules_* counts cover every phase, source and module, the always-on checks included. lookups_failed is always 0.
  • queue — the same block the queue endpoint returns.
Poll every 30 seconds. An assessment can run for hours, and a 2-hour assessment polled every 30 seconds uses 240 API calls. Stop when status is Completed, Cancelled or Failed.

Phases

Each phase has name, status, started_at, completed_at and duration_seconds. A phase that collects from several sources adds modules, one entry per source, with total_results, modules_completed and modules_total. A skipped phase adds reason. Phase and module statuses are pending, running, completed, failed or skipped. A failed module adds error. Modules such as look-alike domains, employee emails and the always-on checks run alongside these phases. Follow them in the modules list of domain_enrichment and in the summary counts.

Read the queue

Your organization runs one assessment at a time. While it runs, further starts wait as Queued, up to 10 open assessments. The platform also caps how many assessments run at once across all organizations. When a slot opens, queued assessments start in fair-share order: one from each waiting organization in turn, oldest first within each organization. A Finalizing assessment does not hold your slot, so your next queued one can start while it finishes. GET /api/hackerview/scans/{scan_id}/queue/ returns the queue state on its own. Progress already includes it under queue, so you need this call only when you want nothing else.
  • waiting — true while the assessment is Queued.
  • queue_position — the assessment’s place in the platform-wide fair-share order, starting at 1. null unless the assessment is Queued.
  • queue_length — queued assessments across the platform.
  • queue_reason — org_concurrency_limit when your organization already has one running, global_capacity when the platform is full. deploy_interrupted on a Failed assessment. null otherwise.
  • max_concurrent_scans and global_running — how many assessments the platform runs at once, and how many are running now.
  • dispatch_policy — always fair_share.

List assessments

GET /api/hackerview/scans/ returns your organization’s assessments, newest first, including the ones started in the dashboard.
Page by raising page until next is null. The next and previous URLs point at the internal assessment service, not at client-api.leak.center, so don’t call them.
  • domain — the domain assessed. With swap_to_primary it can differ from the one you sent, which is then in original_domain.
  • scan_domains — the domains the assessment covers, when domain detection ran.
  • ip — the IP address the domain resolved to.
  • completed_at and elapsed_time_seconds — when the assessment ended, and its run time in seconds from creation. Both are null while it runs, and stay null for a Cancelled assessment.
  • servers_with_unusual_ports_count and servers_with_vulns_count — hosts with unusual open ports and hosts with known vulnerabilities, counted when the assessment finishes.
  • email_domain_info — what domain detection found about the organization’s email domains.
  • params — the options the assessment was started with. This example is shortened: params holds every module flag, domain_mode and the report options. active_scope_namespaces is the final active scope.
A targeted assessment has auto_generate_report set to false and its report_type as the only entry of auto_report_types. A full assessment has auto_generate_report set to true and an empty auto_report_types.

How long it takes

Time depends on the modules, the domain mode and the size of the domain. With every module flag off, an assessment typically takes 5 to 15 minutes. With every module on and domain_mode set to all, plan for 2 to 4 hours. These modules take longest: Queue time comes on top. Every assessment ends, whatever happens:
  • No progress for 60 minutes: discovery stops, and the assessment finishes with the results found so far. The limit is 120 minutes with dual_domain, or with all when it covers more than one domain.
  • 4 hours after it was created: a Running assessment stops discovery and finishes with what it has. The limit is 8 hours with dual_domain, or with all when it covers more than one domain.
  • 4 hours in Finalizing: the assessment is set to Completed, and the modules still running are marked failed.
A cut-short assessment still ends Completed, and its report covers what was found.

Errors

Handle API errors covers each status in more detail.

Endpoints