API reference
Hosted testing, Guardian, and Compliance Guard are in beta. Watchline and Cloud Coordinator are planned. Every request uses the same four states. Submit records the request. It does not launch a live scan.
The policy behind each step is in the Authorized Testing Policy.
Request states
01
Awaiting ownership
The token sits on the target you named.
02
Awaiting scope
A signed PDF, with the signer and attestation.
03
Ready
The credit cost is visible before you spend.
04
Queued
Credits debit. A queue reference is kept. No live scan starts.
Ownership comes first
A run cannot start until you prove the named target is yours. Place a random token in DNS TXT at _pentforge-verify.your-domain, or in /.well-known/pentforge-verify.txt. The account that places the token is the customer of record for that request.
One legal path
The request moves from awaiting ownership, to awaiting scope, to ready, to submitted. Nothing skips a step. A signed scope PDF is required. Cancel is available only before submit.
APIs for your own rows
Create an assessment request, verify ownership, upload scope, submit, cancel, and read the credit ledger. Each call returns only your account's rows.
From signup to queue
Create the account
A new account receives 150 starter credits. The dashboard intro shows the same gated path.
Name an owned target
External web is 40 credits, an API is 50, a network is 60, and cloud config is 35. The cost is shown before you spend.
Prove the target is yours
Place the token in DNS TXT at _pentforge-verify.your-domain, or in the well-known file on that host. Private, loopback, and metadata addresses are refused.
Queue the signed request
After the signed scope PDF is accepted, submit debits the credits and keeps a queue reference on the request. That does not start a live scan.
Targets you can name
Four kinds. The credit cost is the one in your account before you submit. Signup starts with 150 credits. An illustrative name such as app.example.com is not a customer.
40 credits
External web
A site you own, checked only after the token matches.
50 credits
API
An interface you own, under the same signed scope.
60 credits
Network
A network range you own. Private and metadata addresses are refused.
35 credits
Cloud config
Configuration you can prove is yours, still inside the signed scope.
Assessment APIs
Session required. Rows from another account are not returned. A request stays in the EU or US partition of the site you are using, and the other partition is not returned.
- POST
/api/assessment-requestsCreate the request and receive the ownership token. - GET
/api/assessment-requestsList only your requests. - GET
/api/assessment-requests/:idDetail, proof instructions, and scope metadata. - POST
/api/assessment-requests/:id/verify-ownershipDNS TXT or well-known file. Private addresses are refused. - POST
/api/assessment-requests/:id/scopeUpload the signed scope PDF. - POST
/api/assessment-requests/:id/submitDebit credits and queue. No live scan. - POST
/api/assessment-requests/:id/cancelStop from any state before submit. - GET
/api/me/ledgerYour credit ledger only.