Check pentest logins
Copy page
Check pentest logins
Checks whether Hacktron can sign in to each of the draft’s login_targets with the saved login instructions. Every login check must pass before the pentest can start. You need the member role or above.
A successful check is valid for one hour. Start the pentest within that time or run the check again.
Hacktron skips checks that are already running or that passed within the last hour, unless the site or login instructions have changed.
Set
wait_secondsto wait up to 50 seconds for the checks. Without it, the endpoint returns while checks arepending. You can call again withwait_secondsto wait for the results. Each call retries failed logins, so correct wrong instructions before calling again.
Each entry in login_targets has a login_check status: pending or running while the check is in progress, succeeded after a successful sign-in, or failed if Hacktron couldn’t sign in.
A failed check includes a failure_reason without login details. Correct the instructions with PATCH /pentests/{id}, then run the check again.
Request
POST /pentests/{id}/login-checks
Send an API key
with the write scope
in the X-Api-Key header.
Path parameters
| Parameter | Description |
|---|---|
id string, required |
Query parameters
| Parameter | Description |
|---|---|
wait_seconds integer | Wait up to this many seconds for the work to finish before answering. Default 0. At least 0. At most 50. |
Responses
200 OK
| Field | Description |
|---|---|
scan_id string (uuid), required | Stable pentest id; task_id changes when it starts. |
status string, required | One of pending, running, completed, failed, stopped, cancelled, skipped, pending_verification, pending_triage, draft, estimating, or estimated. |
repos array of object, required | |
repos[]. array of string | Whitebox scope: gitignore-style globs (relative to the repo root) that narrow the scan to matching paths. Empty means the whole repository. |
repos[]. array of string | Whitebox scope: gitignore-style globs removed from the scan after include_paths is applied; use *.md to drop a file type. |
repos[]. string | One of connected, public, or upload. |
repos[]. string, read-only | Resolved by the server at scan start; ignored on input. One of github, gitlab, bitbucket, or azure. |
repos[]. string | Repository URL. |
repos[]. string | Branch name, tag name, or commit SHA. |
repos[]. string | How branch was selected (UI hint for draft re-use). One of branch, tag, or sha. |
repos[]. string | Scan archive ID. |
repos[]. number | GitHub App installation ID (connected repos only). |
target_urls array of string, required | |
login_targets array of object, required | |
login_targets[]. string, required | |
login_targets[]. string, required | Whether Hacktron could sign in with the login the site has now. A pass lasts an hour, and changing the site or login makes it unverified. One of unverified, pending, running, succeeded, failed, cancelled, or expired. |
login_targets[]. string, required, nullable | Why the check failed, without credentials. |
custom_context string, required, nullable | |
application_id string (uuid), required, nullable | |
cost_estimation_id string (uuid), required, nullable | |
triage_enabled boolean, required, nullable | |
credits_used number, required, nullable |
400 Bad Request
The pentest has no login targets.